#include<iostream>
#include<ctime>
#include<Windows.h>
using namespace std;
int judgeCardNum(int a) {
int b = a % 13;
if (b <= 10 && b >= 1)
{
return b;
}
else if (b >= 11 && b <= 13)
{
return 10;
}
else if (b == 0)
{
return 10;
}
return -1;
}
char readCard(int a) {
int b = a % 13;
if (b <= 9 && b >= 2)
{
return b+'0';
}
else if (b==10)
{
return 'T';
}
else if (b == 11)
{
return 'J';
}
else if (b == 12)
{
return 'Q';
}
else if (b == 0)
{
return 'K';
}
else if (b == 1)
{
return 'A';
}
return -1;
}
//int calculatePlayerSum(int a,int b)
int main() {
bool haveGet=false;
int deck[350] = {};int cardRemained = 0;
int temCard=0;
int cardnum;
int randomi=0;
int choice = 0;
int chip;
int blind;
int mult;
int banker_card[10] = { 0 }; int banker_i = 0;
int player_card[10] = { 0 }; int player_i = 0;
int playersum = 0;
int bankersum = 0;
#pragma region 赌场图片
printf(" ^ |~ \n"
" ^ ^ ^ _|__|__|_ ^ ^ \n"
" ___________ _| | | |_ ___________ ^ \n"
" (__IXIXIXIXI___|_|__|_|__|_|___IXIXIXIXI__) \n"
" (__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__) \n"
" (__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__) \n"
" (__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__) \n"
" (__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__) \n"
" (__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__) \n"
" /)(__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__) \n"
"_/ )(__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__)_/)_ \n"
" ~^^(__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__) ~~^ \n"
"^~~ (__|\" | \"|\" | \"| [=][=] [=] [=][=] |\" | \"|\" | \"|__)~~^ \n"
"\"\"\"\"\"IXI~IXI~IXI~IXI~= I = I = I = I = ~IXI~IXI~IXI~IXI\"\"\"\"\" \n"
" \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"| |\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" \n"
" \n");
#pragma endregion
Sleep(2000);
cout << endl;
cout << "*********************************************************"<<endl;
cout << "*****************欢迎来到威尼斯人皇家赌场*****************"<<endl;
cout << "*********************************************************"<<endl<<endl;
Sleep(3000);
//显示荷官图片
#pragma region 展示荷官
printf(" ______ __ \n"
" ___,---'......`-./ \--. \n"
" /_/,.::::::::::::.`--/.:.\_ \n"
" '.'|:::::::::::::::::::::..\ \n"
" .':| ;|::::::;::;::::::|.::::.\ \n"
" ':|| `|;|::|; __...:::::|.::::.\ \n"
" /.'::\_______.::::::::::::|.::::.| \n"
" ..|.|:::::::::::::::::::::::|.:::.| \n"
" |.|:.|:|.:|:|\:|.|:|.:|:::::|.::::.| \n"
" .'.::.||:|\:.|.:|: ::\\.:|::::|.:::.| \n"
" |.::::|:..||_||`-|\--;`\--:|:::.:::.| \n"
" |.:::::,--''___ ___ |-.:::.::.| \n"
" |.:|:::.\ ` YD 'lYD` |\|:::||:.' \n"
" |.::::::.| `P `P', |/|:::'|:| \n"
" `.|.::::.| --- _ --- | /::|:'.' \n"
" \|\.:::.` \' |';;;||;| \n"
" `|;_|::_\ ':.::.::' \n"
" \;/.=. o _/::::::|| \n"
" | -.'\_ -- / .\|:|:|' \n"
" _._| `'-`-.__,--' |'\---'-.-. \n"
" /. `-._ \ \ / |. | |\ `. \n"
" / \ |. .`., ,| _/ /..| :| \ \n"
" / \ |.. ./ .'.-' / ..| ', ' : \n"
" : | ../ |-. /|.. | : | \n"
" | |..| |/Dn\ .' |...| | | \n"
" | |./\ ; lH \' |. .| ' | \n"
" / |/ `- '' lH |..../ | \n"
" | _/ / lH |. ../ | \n"
" | / \ / `H |... | | \n"
" | .' /`- ' | U | ... | \n"
" | ' ,' ; |__________|.../ | \n"
" | ,'| | . ... ... ... .' \n"
" |./ .' | ... ... ... | | \n"
" `| | | .... ... .| .' \n"
" | | .' .. ........; | \n"
" | .' |,---.__,--._| | \n"
" / | | \-._ : \n"
" | ' .' | ` ` \n"
" / | \. / \n"
" \ .' ` / \n"
" ' .' / \n"
" \ ' \n"
" \n");
#pragma endregion
srand(time(0));
cout << "\\我是荷官编号" << rand() << "号,很高兴为您服务。/" << endl;
Sleep(1200);
cout << "请问您希望这场牌局使用几副牌?(1-6)" << endl;
cin >> cardnum; cardnum *= 52; cardRemained = cardnum;
cout << "请问您带了多少筹码?" << endl;
cin >> chip;
cout << "请问您希望底注是多少?" << endl;
cin >> blind;
#pragma region 准备工作
for (int i = 0; i < 10; i++)
{
banker_card[i] = 0;
player_card[i] = 0;
}
for (int i = 0; i < cardnum; i++)
{
deck[i] = 1;
}
deck[cardnum + 1] = -1;
mult = 1;
playersum = 0;
bankersum = 0;
#pragma endregion
while (chip > 0) {
cout << "牌堆剩余牌数:" << cardRemained << endl;
srand(time(0));
haveGet = false;
mult = 1;
playersum = 0;
bankersum = 0;
for (int i = 0; i < 10; i++)
{
banker_card[i] = 0;
player_card[i] = 0;
}
if (cardRemained>cardnum/5)
{
Sleep(1200); cout << "现在开始派牌..." << endl;
}
else
{
cout << "牌堆剩余牌数不足1/5...重新洗牌";
for (int i = 0; i < cardnum; i++)//洗牌
{
deck[i] = 1;
}
deck[cardnum + 1] = -1;
Sleep(1200); cout << "...";
Sleep(1200); cout << "...";
Sleep(1200); cout << "..." << endl;
cout << "开始派牌..." << endl;
}
//开始发牌
//庄家发牌
while (banker_card[0] == 0) {
srand(time(0) + randomi);
randomi = rand();
randomi = randomi % cardnum;
if (deck[randomi] != 0)
{
banker_card[0] = judgeCardNum(randomi);
deck[randomi] = 0;
cardRemained -= 1;
}
}
Sleep(1200); cout << "庄家明牌是:" << readCard(randomi) << endl;
//玩家发牌
player_i = 2;
Sleep(1200); cout << "你的手牌是:";
for (int i = 0; i < 2; i++)
{
while (player_card[i] == 0) {
srand(time(0) + randomi);
randomi = rand();
randomi = randomi % cardnum;
if (deck[randomi] != 0)
{
player_card[i] = judgeCardNum(randomi);
playersum += player_card[i];
deck[randomi] = 0;
cardRemained -= 1;
cout << readCard(randomi) << " ";
}
}
}
Sleep(1200);
if ((player_card[0]==1|| player_card[1] == 1)&&playersum==11)
{
cout << "翻牌21点!"<< endl;
mult *= 2;
goto playerFlopWin;
}
cout << "点数总和为:" << playersum << endl;
loop1: cout << "请选择:1停牌,2要牌,3加注要牌:";
cin >> choice;
if (choice == 1)
{
;
}
else if (choice == 2)
{
haveGet = true;
while (player_card[player_i] == 0) {
srand(time(0) + randomi);
randomi = rand();
randomi = randomi % cardnum;
if (deck[randomi] != 0)
{
player_card[player_i] = judgeCardNum(randomi);
playersum += player_card[player_i];
deck[randomi] = 0;
cardRemained -= 1;
cout << readCard(randomi) << " ";
}
}
player_i++;
cout << "你的点数总和为:" << playersum << endl;
if (playersum > 21)
{
Sleep(1200); cout << "你爆牌了!" << endl;
goto bankerWin;
}
goto loop1;
}
else if (choice == 3)
{
if (h
没有合适的资源?快使用搜索试试~ 我知道了~
C++ 21点游戏BlackJack模拟器
共23个文件
tlog:6个
pdb:2个
vcxproj:1个
需积分: 0 0 下载量 90 浏览量
2024-04-10
19:31:45
上传
评论
收藏 30.32MB ZIP 举报
温馨提示
C++ 21点BlackJack模拟器。和电脑二人对战,可多副牌,有筹码计算,筹码归零后游戏结束。玩家21点会翻倍。可以加倍要牌。庄家开始抽牌后,点数和大于等于17才会停止。牌堆剩余数量不足五分之一后会重新洗牌。J,Q,K在计算点数时记为10点,A可以当作1也可以当作11。庄家先派牌,轮到玩家时,玩家有三个选择1结束拿牌(停牌),2拿一张牌(要牌),3赌注翻倍并拿一张牌(加注要牌),要牌以后不能再加注。玩家起手拿到黑杰克(一张A和一张点数为10的牌)可以直接结算并且下注翻倍。
资源推荐
资源详情
资源评论
收起资源包目录
BlackJack.zip (23个子文件)
BlackJack
BlackJack.sln 1KB
.vs
BlackJack
v16
Browse.VC.db 37.04MB
.suo 32KB
ipch
AutoPCH
1b78dc3ea3163926
Դ.ipch 71.94MB
BlackJack
BlackJack.vcxproj.user 168B
BlackJack.vcxproj.filters 965B
BlackJack.vcxproj 7KB
Դ.cpp 10KB
Debug
Դ.obj 104KB
BlackJack.log 4KB
vc142.idb 363KB
vc142.pdb 468KB
BlackJack.tlog
CL.write.1.tlog 456B
BlackJack.lastbuildstate 164B
CL.command.1.tlog 750B
link.command.1.tlog 1KB
link.read.1.tlog 3KB
link.write.1.tlog 460B
CL.read.1.tlog 41KB
BlackJack.ilk 599KB
BlackJack.exe.recipe 295B
Debug
BlackJack.pdb 2.34MB
RoyalCasino_点击即玩!.exe 63KB
共 23 条
- 1
资源评论
Skylinezk
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功