| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 726 人关注过本帖
标题:关于C++课程设计的编写
只看楼主 加入收藏
米纳多
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-9-17
收藏
 问题点数:0 回复次数:1 
关于C++课程设计的编写
程序简介:一个对抗游戏,根据随机产生的数字决定双方的输赢。
设计要求:1.当双方进行对抗时,游戏者可根据自身的牌点决定是否继续下注,例如拿到A,把握增大,则在计算机的拍点出现之前加大赌注,但不超过5点。
2.将双方牌点的比较扩大为两张牌点之和,若出现一组对子,则对子牌点大于任何单牌,若双方均为对子,这比较牌点之和。

源代码:

#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;
}
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(() == 11)
           cout << "J" << endl;
       else if(() == 12)
           cout << "Q" << endl;  
       else if (() == 13)
           cout << "K" << endl;
       else if (() == 14)
           cout << "A" << endl;
       else
           cout << () << endl;
       if (Play.Player() > ())    //判断双方牌点的大小,决定分数的增减
           Play.Increase();
       else if (Play.Player() < ())
           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;    //否则退出系统
    }
}
搜索更多相关主题的帖子: 课程 编写 设计 
2008-09-17 13:46
wxm198427
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:561
专家分:25
注 册:2008-6-30
收藏
得分:0 
哥们你的这个程序有问题吗?应该没有问题吧??我拷贝去看下了,我刚接触C++,多多指点………………
2008-10-25 15:51
快速回复:关于C++课程设计的编写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016945 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved