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:
Maksymilian Wilczyński committed 2025-05-08 18:21:29 +02:00
1 parent f4a3463df1
commit 9c3a7669b2
2 files changed
+18 -13

No files matched your search

+14 -7
View File
@@ -48,7 +48,12 @@ std::vector<Card> createDeck() {
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;
}
@@ -139,7 +144,6 @@ int main() {
char input;
std::cin >> input;
if (input == 'd' || input == 'D') {
playerHand.push_back(drawCard(deck));
Card drawn = drawCard(deck);
playerHand.push_back(drawn);
fmt::print("You drew: ");
@@ -147,6 +151,7 @@ int main() {
fmt::print("\nPress Enter to continue...");
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cin.get();
std::cin.putback('\n');
playerTurn = false;
continue;
}
@@ -158,11 +163,14 @@ int main() {
std::cin >> input;
if (input == "d" || input == "D") {
playerHand.push_back(drawCard(deck));
fmt::print("You drew a card. ");
fmt::print("Press Enter to continue...");
Card drawn = drawCard(deck);
playerHand.push_back(drawn);
fmt::print("You drew: ");
drawn.print();
fmt::print("\nPress Enter to continue...");
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cin.get();
std::cin.putback('\n');
playerTurn = false;
break;
}
@@ -211,8 +219,7 @@ int main() {
}
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();
playerTurn = true;
+4 -6
View File
@@ -37,7 +37,7 @@
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
@@ -50,7 +50,7 @@
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -98,7 +98,7 @@
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp23</LanguageStandard>
<AdditionalOptions>/source-charset:utf-8 /execution-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@@ -107,7 +107,6 @@
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>fmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -138,7 +137,7 @@
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp23</LanguageStandard>
<AdditionalOptions>/source-charset:utf-8 /execution-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@@ -147,7 +146,6 @@
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>fmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemGroup>