C++炸金花课程设计报告源代码
C++炸金花课程设计报告源代码
(1)当双方进行对抗时,玩家可根据自身的牌点决定赢牌的把握,例如拿到A,则把握增大,反映在分数上每次输赢不是一分。
(2)将双方牌点的比较扩大为两张牌点之和,若出现一组对子,则对子牌点大于任何单牌,若双方均为对子,则比较牌点之和。
(3)要求自行设计不少以上5种以上的对抗规则,用于游戏中。
(4)在主程序中,设计程序运行的友好界面,以便用户操作,并增加提示信息。
以下程序仅供参考
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#define MAX 13 //牌的最大点为13
class War
{
int plyr, comp;//plyr玩者的牌点, comp计算机的牌点
static int Score;//玩者的分数,当分数为0或50时游戏结束
static int Loop;//出牌次数,游戏结束时给出总的出牌次数
public:
int Player();//返回玩者的牌点
int Computer();//返回计算机的牌点
void Initialize();//给出玩者和计算机的牌点
int CheckScore();//返回玩者分数
void GameOver();
War();//缺省构造函数,初始化对象
static int Increase();//分数增加
static int Decrease();//分数减少
static int Loops();//出牌次数增加
};
int War::Score = 26; //初始分数
int War::Loop = 0;//比赛轮数
int War::Increase()//增分,每轮赢一分
{
++Score;
return Score;
} 论文范文http://www.chuibin.com
int War::Decrease()//减分,每轮输一分
{
--Score;
return Score;
}
int War::Loops()//双方出牌一次,为一轮
{
Loop++;
return Loop;
}
War::War()//构造函数,初始双方牌点为0
{
plyr, comp = 0;
}
int War::Player()//返回玩者牌点
{
return plyr;
}
int War::Computer()//返回计算机的牌点
{
return comp;
}
void War::Initialize()//随机产生双方牌点
{
// srand ( time (NULL) );
plyr = rand()%MAX+2;//牌点为2-14,14点为A
comp = rand()%MAX+2;
}
int War::CheckScore()//返回玩者分数
{
return Score;
}
void War::GameOver()//游戏结束时的相关信息
{
cout << endl << "游戏结束! 谢谢参与." << endl;
cout << "你用了 " << War::Loops() << " 轮." << endl;
}
void main()
{
War Play;
int x;
cout << endl << "准备开始!" << endl << endl;
Play.Initialize();//随机产生双方牌点
Play.Loops();//轮次增加
cout << "你的牌是一张";
if(Play.Player() == 11)
cout << "J" << endl;
else if(Play.Player() == 12)
cout << "Q" << endl;
else if (Play.Player() == 13)
cout << "K" << endl;
else if (Play.Player() == 14)
cout << "A" << endl;
else
cout << Play.Player() << endl;
cout << "计算机有一张";
if(Play.Computer() == 11)
cout << "J" << endl;
else if(Play.Computer() == 12)
cout << "Q" << endl;
else if (Play.Computer() == 13)
cout << "K" << endl;
else if (Play.Computer() == 14)
cout << "A" << endl;
else
cout << Play.Computer() << endl;
if (Play.Player() > Play.Computer()) //判断双方牌点的大小,决定分数的增减
Play.Increase();
else if (Play.Player() < Play.Computer())
Play.Decrease();
else
cout << "势均力敌!" << endl;
Play.CheckScore();//返回分数
cout << endl << "你的分数是: " << Play.CheckScore() << endl;
switch (Play.CheckScore())
{
case 0:
case 52:
Play.GameOver(); break;//分数为0或52则游戏结束
default:
cout << endl <<"继续 1 [退出 0]" << endl;//选择游戏是否继续进行
cin >> x;
if (x == 1) main(); //若是递归调用主函数
break; //否则退出系统 } }