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; //否则退出系统   }   }

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有