为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

骰子游戏源代码

2017-09-19 10页 doc 61KB 233阅读

用户头像

is_633423

暂无简介

举报
骰子游戏源代码7.1 程序的源代码 ★Main()文件:                  // 文件路径名:dice_game\main.cpp #include "utility.h"                // 实用程序软件包 #include "dice_game.h"            // 骰子游戏 int main(void)                    // 主函数main(void) {     DiceGame objGame;                // 骰子游戏对象     objGam...
骰子游戏源代码
7.1 程序的源代码 ★Main()文件:                  // 文件路径名:dice_game\main.cpp #include "utility.h"                // 实用程序软件包 #include "dice_game.h"            // 骰子游戏 int main(void)                    // 主函数main(void) {     DiceGame objGame;                // 骰子游戏对象     objGame.Game();                // 运行游戏        system("PAUSE");                // 调用库函数system()     return 0;                        // 返回值0, 返回操作系统 } ★dice_game.h文件:            // 文件路径名: dice_game\dice_game.h #ifndef __DICE_GAME_H__            // 如果没有定义__DICE_GAME_H__ #define __DICE_GAME_H__            // 那么定义__DICE_GAME_H__ typedef enum{WIN, LOSE, TIE} GameStatus;    // WIN:赢,LOSE:输,TIE:平局 // 骰子游戏类DiceGame声明 class DiceGame { private: // 数据成员:       int numOfWin;                  // 胜利数次       int numOfLose;                  // 失败数次       int numOfTie;                    // 平局数次 // 辅助函数       int RollDice();                    // 模拟投掷一次骰子       void Help();                    // 获得帮助       void Show();                    // 显示统计结果 public: // 方法声明:       DiceGame();                        // 无参数的构造函数       virtual ~DiceGame(){}            // 析构函数       void Game();                    // 模拟游戏 }; // 骰子游戏类DiceGame的实现部分 DiceGame::DiceGame()                    // 初始化骰子游戏 {     numOfWin = 0;                        // 胜利数次     numOfLose = 0;                    // 失败数次     numOfTie = 0;                          // 平局数次     cout << "游戏开始" << endl; } int DiceGame::RollDice()          // 模拟投掷一次骰子,返回值为所投掷的两颗骰子向上一面的点数之和 {        int numOfDice1;                  // 所投掷的第1颗骰子向上一面的点数     int numOfDice2;                  // 所投掷的第2颗骰子向上一面的点数     int sum;                        // 所投掷的两颗骰子向上一面的点数之和     numOfDice1 = 1 + Rand::GetRand(6);    // 模拟所投掷骰子1的点数     numOfDice2 = 1 + Rand::GetRand(6);    // 模拟所投掷骰子2的点数 sum = numOfDice1 + numOfDice2;    // 计算所投掷两颗骰子向上一面的点数之和 cout << "选手掷骰子:" << numOfDice1 << "+" << numOfDice2 << "=" << sum << endl;     return sum;                        // 返回所掷骰子向上一面点数之和 } void DiceGame::Help()                    // 获得帮助 {     cout << "    游戏者每次投掷两颗骰子,每个骰子是一个正方体,有" << endl;     cout <<    "6面上面分别标有1、2、3、4、5、6个圆点,当骰子停止时" << endl;     cout <<    ",将每个骰子朝上的点的数相加,在第一次投掷骰时, 如果" << endl; cout << "所得到的和为7或11,那么游戏者为赢得胜利; 如果所得到" << endl; cout <<    "的和为2、3或12,那么游戏者为输掉了;如果和为4、5、6" << endl; cout <<    "、8、9或10,那么为游戏者的点数;如要想赢得胜利,必"  << endl; cout <<    "须继续投掷骰子,直到取得自已的点数为止, 但是如果投" << endl; cout <<    "掷出的和为7或投掷6次仍未赚到该点数,则游戏者为输了." << endl << endl; }     void DiceGame::Show()                    // 显示统计结果 {     cout << "选手游戏统计:" << endl;     cout <<    "获胜" << numOfWin << "次" << endl;     cout <<    "失败" << numOfLose << "次" << endl;     cout << "平局" << numOfTie << "次" << endl; } void DiceGame::Game()                // 模拟游戏 {     int select = 1;     int sum, myPoint;     GameStatus status;                // 游戏状态     Rand::SetRandSeed();                // 设置当前时间为随机数种子     Help();                            // 获得帮助 while(select!=3) {         cout << endl << endl << "请选择:" << endl;         cout << "1. 获得帮助" << endl;         cout << "2. 玩一手游戏" << endl;         cout << "3. 退出游戏" << endl;         cin >> select;                // 输入选择 if(select!=1&&select!=2&&select!=3) //若输入不是 1,2,3 重新输入         {             cout<<"请用1,2,3回答"<标准
库头文件 #include                     // 标准串和操作 #include                 // 标准流操作 #include                     // 极限 #include                       // 数据函数 #include                   // 文件输入输出 #include                   // 字符处理 #include                       // 日期和时间函数 #include                   // 标准库 #include                     // 标准输入输出 #include                   // 输入输出流格式设置    #include                   // 支持变长函数参数    #include                     // 支持断言 #else                                    // 其它版本的Visual C++ // ANSI C++标准库头文件 #include                         // 标准串和操作 #include                     // 标准流操作 #include                         // 极限 #include                         // 数据函数 #include                     // 文件输入输出 #include                         // 字符处理 #include                       // 日期和时间函数 #include                     // 标准库 #include                     // 标准输入输出 #include                   // 输入输出流格式设置    #include                   // 支持变长函数参数    #include                   // 支持断言 using namespace std;                  // 标准库包含在命名空间std中 #endif                                  // _MSC_VER == 1200 #else                                  // 非Visual C++ // ANSI C++标准库头文件 #include                       // 标准串操作 #include                   // 标准流操作 #include                       // 极限 #include                       // 数据函数 #include                   // 文件输入输出 #include                       // 字符处理 #include                     // 日期和时间函数 #include                     // 标准库 #include                       // 标准输入输出 #include                     // 输入输出流格式设置    #include                     // 支持变长函数参数    #include                     // 支持断言 using namespace std;                  // 标准库包含在命名空间std中 #endif                                  // _MSC_VER // 实用函数 char GetChar(istream &inStream = cin); // 从输入流inStream中跳过空格及制表符获取一字符 bool UserSaysYes();                // 当用户肯定回答(yes)时, 返回true, 用户否定回答(no)时,返回false // 函数模板 template void Swap(ElemType &e1, ElemType &e2);    // 交换e1, e2之值 template void Display(ElemType elem[], int n);    // 显示数组elem的各数据元素值 // 实用类 class Timer;                        // 计时器类Timer class Error;                        // 通用异常类 class Rand;                        // 随机数类Rand char GetChar(istream &in)        // 从输入流in中跳过空格及制表一字符 {     char ch;                          // 临时变量         while ((ch = in.peek()) != EOF    // 文件结束符(peek()函数从输入流中接受1                                     // 字符,流的当前位置不变)     && ((ch = in.get()) == ' '    // 空格(get()函数从输入流中接受1字符,流                                     // 的当前位置向后移1个位置)     || ch == '\t'));                // 制表符     return ch;                        // 返回字符 } bool UserSaysYes() // 当用户肯定回答(yes)时, 返回true, 用户否定回答(no)时,返回false {     char ch;                        // 用户回答字符     bool initialResponse = true; // 初始回答     do     {                              // 循环直到用户输入恰当的回答为止         if (initialResponse) cout << "(y, n)?"; // 初始回答         else cout << "用y或n回答:";            // 非初始回答 while ((ch = GetChar()) == '\n');      // 跳过空格,制表符及换行符获取一字符         initialResponse = false;                    // 非初始回答     } while (ch != 'y' && ch != 'Y' && ch != 'n' && ch != 'N');     while (GetChar() != '\n');                  // 跳过当前行后面的字符         if (ch == 'y' || ch == 'Y') return true;    // 肯定回答返回true     else return false;                            // 否定回答返回false } template void Swap(ElemType &e1, ElemType &e2)          // 交换e1, e2之值 {     ElemType temp;                              // 临时变量     temp = e1; e1 = e2; e2 = temp;        // 循环赋值实现交换e1, e2 } template void Show(ElemType elem[], int n)        // 显示数组elem的各数据元素值 {     for (int i = 0; i < n; i++)     {    // 显示数组elem         cout << elem[i] << "  ";          // 显示elem[i]     }     cout << endl;                          // 换行 } // 计时器类Timer class Timer { private: // 数据成员     clock_t startTime; public: //  方法声明     Timer(){ startTime = clock(); }            // 构造函数, 由当前时间作为开始时间构造对象     double ElapsedTime() const                // 返回已过的时间     {           clock_t endTime = clock();                // 结束时间         return (double)(endTime - startTime) / (double)CLK_TCK; // 计算已过时间     }     void Reset(){ startTime = clock(); }      // 重置开始时间 }; // 通用异常类Error                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  #define MAX_ERROR_MESSAGE_LEN 100 class Error { private: // 数据成员     char message[MAX_ERROR_MESSAGE_LEN];    // 异常信息 public: //  方法声明       Error(char mes[] = "一般性异常!"){ strcpy(message, mes); }    // 构造函数     void Show() const{ cout << message << endl; }        // 显示异常信息 };                                      // 随机数类Rand class Rand { public: //  方法声明     static void SetRandSeed(){ srand((unsigned)time(NULL)); }    // 设置当前时间为随机数种子     static int GetRand(int n){ return rand() % n; } // 生成0 ~ n-1之间的随机数     static int GetRand(){ return rand(); }    // 生成0 ~ n-1之间的随机数 }; #endif 文档已经阅读完毕,请返回上一页!
/
本文档为【骰子游戏源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索