**
C++程序设计21点纸牌游戏系统的设计与实现
**
一个单人游戏的类,一个多人游戏的类,并且由多人派生出单人游戏的类。
代码
#include<iostream>
#include<windows.h>
#include<cstring>
#include<time.h>
#include<fstream>
#include<iomanip>
#define N 10
using namespace std;
void StartMenu(); //类的声明和函数的声明。
int Menu();
void Exit();
char PokeColor[4] = {
3,4,5,6};
char PokeNum[13] = {
'2','3','4','5','6','7','8','9','I','J','Q','K','A'};
int n,stake,h=0,flag=0; //玩家总数 //记录庄家姓名
extern int n,flag; //局外变量。
class Game{
protected:
int color[N][N];
int num[N][N];
int currentOdds[N];
char name[N][20] ;
int money[N];
int score[N];
int visit[N];
int hands[N];
int e[N];
public:
Game(){
//构造函数
for(int i=0;i<N;i++){
//初始化
money[i]=1000;
score[i]=0;
e[i]=0;
hands[i]=0;
visit[i]=0;
currentOdds[i]=0;
}
}
~Game(){
}
void Help(); //帮助
void ShowPoke(char,char); //显示单个扑克函数
void Show(int); //显示函数
bool GetCard(int,int); //发牌函数
bool choice(); //信息筛选函数
void SetOdds(int); //加注函数
void InitUser(); //初始化输入函数
void Save(); //保存记录函数
int Judge(int); //判断函数
void Continue(); //继续游戏函数,读取文件
virtual void begin(int); //重新开始函数,用虚函数实现
void Result(int); //计算结果函数
};
class game:public Game
{
public:
bool computer();
virtual void begin(int);
void Save();
void Continue();
game():Game(){
}
};
void StartMenu() //游戏起始界面,基类game
{
char load[]="▋☆☆★☆☆█";
cout<<"\t╔═════════════════════════════════════╗\t\n";
cout<<"\t ≧▂≦ 欢迎来到二十一点纸牌游戏 ≧▂≦\t\n\t\t";
cout<<"\n\t╚═════════════════════════════════════╝\n"<<endl;
cout<<"Loading success!"<<endl;
}
int Menu() //菜单显示
{
char ch[5];
while(1){
cout<<"┏┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┓\n";
cout<<setw(15)<<" "<<"菜单"<<endl;
cout<<setw(25)<<"0:继续上次游戏"<<endl;
cout<<setw(22)<<"1:单人游戏\n";
cout<<setw(22)<<"2:多人游戏\n";
cout<<setw(18)<<"3:帮助\n";
cout<<setw(18)<<"4:退出\n";
cout<<"┗┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┛\n";
cout<<"请选择:";
while(cin>>ch){
if('0'<=ch[0]&&ch[0]<='4') break;
else cout<<"选择无效!,请重新输入:";
}
switch(ch[0]){
case '0':return 0;
case '1':return 1;
case '2':return 2;
case '3':return 3;
case '4':return -1;
}
}
}
void Game::Help(){
//帮助函数,