资源简介
用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
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- LINUX下命令行界面的C语言细胞游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
评论
共有 条评论