用c++写一个21点游戏代码
时间: 2024-03-13 21:17:50 浏览: 188
以下是一个简单的 C++ 21 点游戏代码,仅供参考:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(0)); //设置随机数种子
int playerTotal = 0; //玩家手中牌的总点数
int dealerTotal = 0; //庄家手中牌的总点数
char hitOrStand = 'h'; //记录玩家选择是“要牌”('h')还是“停牌”('s')
//首先发两张牌给玩家和庄家
playerTotal += (rand() % 10 + 1); //发第一张牌给玩家
playerTotal += (rand() % 10 + 1); //发第二张牌给玩家
cout << "你手里的牌是:" << playerTotal << endl;
dealerTotal += (rand() % 10 + 1); //发第一张牌给庄家
dealerTotal += (rand() % 10 + 1); //发第二张牌给庄家
cout << "庄家手里的牌是:" << dealerTotal << endl;
//接下来开始游戏的主循环
while (hitOrStand == 'h' && playerTotal < 21)
{
cout << "要牌还是停牌?(h/s):";
cin >> hitOrStand;
if (hitOrStand == 'h') //如果选择要牌
{
int newCard = rand() % 10 + 1; //发一张新牌
playerTotal += newCard; //将新牌加入手中
cout << "你得到了一张" << newCard << "点的牌,现在总点数为:" << playerTotal << endl;
}
}
//接下来是庄家根据规则抽牌的过程
while (dealerTotal < 17)
{
int newCard = rand() % 10 + 1; //发一张新牌
dealerTotal += newCard; //将新牌加入手中
cout << "庄家得到了一张" << newCard << "点的牌,现在总点数为:" << dealerTotal << endl;
}
//最后根据双方手中牌的点数来判断输赢
if (playerTotal > 21)
{
cout << "你爆了!庄家赢了!" << endl;
}
else if (dealerTotal > 21)
{
cout << "庄家爆了!你赢了!" << endl;
}
else if (playerTotal > dealerTotal)
{
cout << "你赢了!" << endl;
}
else if (playerTotal < dealerTotal)
{
cout << "庄家赢了!" << endl;
}
else
{
cout << "平局!" << endl;
}
return 0;
}
```
阅读全文