【发布时间】:2022-01-09 12:10:01
【问题描述】:
我对 c++ 非常陌生,而且真的是一般的编程。为了学习如何使用该语言,我正在尝试创建一个非常简单的二十一点游戏。
我目前有下面的代码,它定义了卡片是什么,并在引入一些定义这些变量可能性的数组之前添加了卡片所需的变量。
#include <iostream>
#include <ctime>
#include <stdio.h>
#include <string>
using std::string;
using std::cout;
using std::cin;
using std::endl;
struct DefineCard {
char cardSuit;
int cardFace;
int cardValue;
int cardStatus;
} Deck[53];
int main()
{
string cardSuits[4] = { "clubs", "spades", "hearts", "diamonds" };
string cardFaces[13] = { "ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "jack", "queen", "king" };
string cardStatus[3] = { "in play", "in deck", "discarded" };
int cardValue[13] = { 11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10 };
}
从这段代码中,假设我正确,我将如何随机抽取一张包含所有这些变量的随机卡片,然后确保同一张卡片不会被抽两次?
感谢所有的帮助,对于我的任何明目张胆的误解,我很抱歉 :)
【问题讨论】:
-
把你的 52 张牌放在一个 std::vector 中,然后使用 std::shuffle 洗牌。然后,deck[0] 是下一张要选择的牌。
-
Ace 值为 11... 或 1
标签: c++ arrays random struct blackjack