资源简介
用c++类设计的21点小游戏,支持7个玩家同时进行,有分牌,双倍,存储等功能。命令行界面。
代码片段和文件信息
#include “stdafx.h“
BlackJack::BlackJack(Player *List[] House *PHouse int Num) //数据成员初始化
{
PlayerNum = Num;
Boss = PHouse;
for(int i=0; i {
if(List[i] == NULL)
continue;
PlayerList[i] = List[i];
PlayerList[i]->Hit_stand = HIT;
}
}
BlackJack::~BlackJack()
{
}
void BlackJack::ComparePoint(int Num) //比较点数大小,判断输赢
{
int Money = 0;
int H_Point = Boss->CalcuPoint();
int P_Point = PlayerList[Num]->CalcuPoint();
if (H_Point > P_Point) //庄家赢,玩家清算赌金,庄家现金增加
{
cout<yerList[Num]->GetName()<<“ lose.“< Money = PlayerList[Num]->Reset(LOSE);
Boss->ChangeCash(Money); //庄家现金增加
}
else if(H_Point < P_Point) //玩家赢
{
cout<yerList[Num]->GetName()<<“ win!“< Money = PlayerList[Num]->Reset(WIN);
Boss->ChangeCash(Money);
}
else //平局
{
cout<yerList[Num]->GetName()<<“ and House are Push!“< Money = PlayerList[Num]->Reset(PUSH);
Boss->ChangeCash(Money);
}
}
int BlackJack::JudgeWinner(Poker &p)
{
int Flag_Point;
int Flag_All_S;
int count = 0;
int ITemp[15];
Player *PTemp[15];
Player *Temp;
int i = 0;
int Choose = 0;
Boss->GetPoker(p); //庄家抽牌
Boss->CalcuPoint(); //计算庄家点数
Boss->DisplayInfo(); //显示玩家当前牌
cout<<“ player\t cards\t \tTotal Point“<
//循环进行玩家抽牌,计算点数,显示玩家信息
while(1)
{
if( PlayerList[i] == NULL )
{
if(i < PlayerNum - 1)
i++;
else
i = 0;
continue;
}
PlayerList[i]->GetPoker(p); //玩家获得一张牌
Flag_Point = PlayerList[i]->CalcuPoint(); //计算当前点数,返回当前点,BLACKJACKBUST等
PlayerList[i]->DisplayInfo();
if(Flag_Point==BUST || Flag_Point==BLACKJACK || Flag_Point==21) //若出现爆牌或者黑杰克,则直接庄家比较,判断输赢
{
switch(Flag_Point)
{
case BUST:
ComparePoint(i);
PlayerList[i]->Hit_stand = STAND;
PlayerList[i] = NULL; //出局的玩家标记为NULL
break;
case BLACKJACK:
ComparePoint(i);
PlayerList[i]->Hit_stand = STAND;
PlayerList[i] = NULL; //出局的玩家标记为NULL
break;
case 21:
PTemp[count] = PlayerList[i]; //停牌的玩家当做出局,暂存入数组,最后再还原
ITemp[count] = i;
PlayerList[i]->Hit_stand = STAND;
PlayerList[i] = NULL;
count++;
break;
}
}
else
{
switch(PlayerList[i]->PMenu()) //判断玩家选项,分别输出DOUBLESPLIT等选项
{
case NORMAL:
cout << “<1.HIT 2.STAND 5.QUIT> : “;
break;
case DOUBLE:
cout << “<1.HIT 2.STAND 3.DOUBLE 5.QUIT> : “;
break;
case SPLIT:
cout << “<1.HIT 2.STAND 4.SPLIT 5.QUIT> : “;
break;
}
while(1)
{
int flag = 0;
scanf(“%d“&Choose);
if (Choose == 1)
PlayerList[i]->Hit_stand = HIT;
else if(Choose == 2) //停牌的玩家当做出
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5073 2010-03-22 00:37 BlackJack\BlackJack.cpp
文件 4817 2010-03-21 18:00 BlackJack\BlackJack.dsp
文件 526 2010-03-05 06:17 BlackJack\BlackJack.dsw
文件 496 2010-03-21 23:16 BlackJack\BlackJack.h
文件 11288 2010-03-22 00:36 BlackJack\Game.cpp
文件 7979 2010-03-04 17:31 BlackJack\main.cpp
文件 7301 2010-03-22 00:35 BlackJack\Participant.cpp
文件 3143 2010-03-21 23:16 BlackJack\Participant.h
文件 921 2010-03-22 00:31 BlackJack\Poker.cpp
文件 580 2010-03-21 22:59 BlackJack\Poker.h
文件 208896 2010-03-22 00:37 BlackJack\Release\BlackJack.exe
文件 33 2010-03-22 00:40 BlackJack\Release\save.dat
文件 8097452 2010-03-05 16:09 BlackJack\Release\游戏插曲小版.wav
文件 1371 2010-03-21 17:58 BlackJack\stdafx.h
目录 0 2010-03-22 00:40 BlackJack\Release
目录 0 2010-03-22 00:39 BlackJack
----------- --------- ---------- ----- ----
8349876 16
- 上一篇:停车场管理系统(vc MFC实现)
- 下一篇:高速上手 C++ 11 14 17
相关资源
- 高速上手 C++ 11 14 17
- C++程序编写的打地鼠游戏
- c++ 代码重用教程
- C_C++程序员面试宝典 文字版 非扫描
- 求图中任意两点的最短路径和全部路
- Design Patterns in Modern C++-Apress(2018)
- Visual C++ 2010 Express 中文版安装文件 器
- 0-9手写数字识别C++实现
- 在线考试系统 + C++ +access
- C++ MFC 编写的聊天室软件源码
- C++编程思想C++编程思想
- linux libstdc++.so.6库
- C++语言程序设计学生用书[aOkREm]
- C++经典程序100例
- Problem Solving with C++ 10th Global Edition
- WIN32程序的C++编程
- C++编写五子棋带AI,mfc,附教程
- C++遗传算法解决柔性作业车间调度附
- 基于VC++的包过滤防火墙论文+源码
- C++程序设计思想与方法课后答案
- C++调用C#dll代码
- 网络编程\\编程实现收发电子邮件
- GDAL2.1.0 X86和X64编译好的库 C++
- 《Essential C++》.pdf
- 传奇源代码cpp版本.zip
- C#调用C++的dll,回调函数,string和in
- Borland C++ 5.5 编译器
- C++dll生成给C#调用
- 社区发现中的GN算法C++实现
- 大漠7.1933VIP所有工具+VC++新手注册安装
评论
共有 条评论