better card shuffling, fixed needing double enter press after player card draw and ai play, after manually drawing a card the player can see what card they drew
This commit is contained in:
1 parent
f4a3463df1
commit
9c3a7669b2
2 files changed
+18
-13
No files matched your search
@@ -48,7 +48,12 @@ std::vector<Card> createDeck() {
|
|||||||
if (n != 0) deck.push_back({ static_cast<Color>(c), n });
|
if (n != 0) deck.push_back({ static_cast<Color>(c), n });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::shuffle(deck.begin(), deck.end(), std::mt19937{ std::random_device{}() });
|
std::random_device rd;
|
||||||
|
std::mt19937 g(rd()); // Mersenne Twister random number generator
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; ++i) {
|
||||||
|
std::shuffle(deck.begin(), deck.end(), g);
|
||||||
|
}
|
||||||
return deck;
|
return deck;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +144,6 @@ int main() {
|
|||||||
char input;
|
char input;
|
||||||
std::cin >> input;
|
std::cin >> input;
|
||||||
if (input == 'd' || input == 'D') {
|
if (input == 'd' || input == 'D') {
|
||||||
playerHand.push_back(drawCard(deck));
|
|
||||||
Card drawn = drawCard(deck);
|
Card drawn = drawCard(deck);
|
||||||
playerHand.push_back(drawn);
|
playerHand.push_back(drawn);
|
||||||
fmt::print("You drew: ");
|
fmt::print("You drew: ");
|
||||||
@@ -147,6 +151,7 @@ int main() {
|
|||||||
fmt::print("\nPress Enter to continue...");
|
fmt::print("\nPress Enter to continue...");
|
||||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
||||||
std::cin.get();
|
std::cin.get();
|
||||||
|
std::cin.putback('\n');
|
||||||
playerTurn = false;
|
playerTurn = false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -158,11 +163,14 @@ int main() {
|
|||||||
std::cin >> input;
|
std::cin >> input;
|
||||||
|
|
||||||
if (input == "d" || input == "D") {
|
if (input == "d" || input == "D") {
|
||||||
playerHand.push_back(drawCard(deck));
|
Card drawn = drawCard(deck);
|
||||||
fmt::print("You drew a card. ");
|
playerHand.push_back(drawn);
|
||||||
fmt::print("Press Enter to continue...");
|
fmt::print("You drew: ");
|
||||||
|
drawn.print();
|
||||||
|
fmt::print("\nPress Enter to continue...");
|
||||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
||||||
std::cin.get();
|
std::cin.get();
|
||||||
|
std::cin.putback('\n');
|
||||||
playerTurn = false;
|
playerTurn = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -211,8 +219,7 @@ int main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fmt::print("Press Enter to continue...");
|
fmt::print("Press Enter to continue...");
|
||||||
if (played)
|
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
||||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
|
||||||
std::cin.get();
|
std::cin.get();
|
||||||
|
|
||||||
playerTurn = true;
|
playerTurn = true;
|
||||||
|
|||||||
+4
-6
@@ -37,7 +37,7 @@
|
|||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v143</PlatformToolset>
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v143</PlatformToolset>
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<LanguageStandard>stdcpp23</LanguageStandard>
|
<LanguageStandard>stdcpp23</LanguageStandard>
|
||||||
<AdditionalOptions>/source-charset:utf-8 /execution-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -107,7 +107,6 @@
|
|||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>fmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>fmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
@@ -138,7 +137,7 @@
|
|||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<LanguageStandard>stdcpp23</LanguageStandard>
|
<LanguageStandard>stdcpp23</LanguageStandard>
|
||||||
<AdditionalOptions>/source-charset:utf-8 /execution-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -147,7 +146,6 @@
|
|||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>fmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>fmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in new issue
Block a user