• 大小: 2.62MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-12
  • 语言: C/C++
  • 标签: 21点游戏  c++  

资源简介

用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


评论

共有 条评论