資源簡介
用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? {
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?yerNum?-?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
評論
共有 條評論