/* 博弈掷骰子的模拟啊哈哈哈哈哈哈哈哈哈哈哈哈 掷双骰游戏: 玩家掷两个骰子。每个骰子有六面,分别含有1、2、3、4、5和6个点。 掷完骰子后,就计算两个朝上的点数之和。如果首次投掷的点数综合等于7或者11的话 玩家胜利;如果首次投掷的点数之和是2、3或12的话,那么玩家输; 如果首次投掷的点数之和是4、5、6、8、9或10,那么这个和就成为玩家的 “点数”,想要继续赢的话,玩家必须连续掷骰子知道这个点数同这个目标点数相同为止。 即得到了“点数”,但是如果在得到点数之前,掷到的是7,那么就会输掉这盘游戏 */ #include <iostream> using std::cin; using std::cout; using std::endl; #include <ctime> using std::time; #include <cstdlib> using std::rand; using std::srand; int rollDice();//掷骰子,计算骰子的和,并且输出结果 int main() { //,枚举类型,存储玩家当前所处的状态 enum Status{ CONTINUE , WON , LOST }; int myPoint;//玩家的“点数” Status gameStatus ;//创建一个游戏中的枚举对象 //为了获取随机数字时不用每次都输入种子,获取自己的时钟来得到种子值 srand(time(0)); int sumOfDice = rollDice();//第一次掷骰子得到的值 switch(sumOfDice) { case 7: case 11: gameStatus = WON; //玩家第一次掷骰子就获胜的情况 ,赋值语句!!! break; case 2: case 3: case 12: gameStatus = LOST; break; default: myPoint = sumOfDice; gameStatus = CONTINUE; cout << "Point is " << myPoint << endl; break; } //while循环继续进行掷骰子游戏,并且进一步判断玩家是输还是赢 while(gameStatus == CONTINUE) //如果gameStatus仍然是CONTINUE,则循环继续,,,, { sumOfDice = rollDice(); if(sumOfDice == myPoint) //玩家赢得时候 gameStatus = WON; if(sumOfDice == 7)//玩家输的时候 gameStatus = LOST; } if(gameStatus == WON) //不是赋值语句啊,少个等号你看看!!! cout << "Player wins " << endl; else cout << "Player loses" << endl; system("pause >> cout "); return 0; } int rollDice() { //掷骰子所得的两个点数 int die1 = 1 + rand()%6 ; int die2 = 1 + rand()%6 ; int sum = die1 + die2;//骰子点数和 cout << "Player rolled " << die1 << " + " << die2 << " = " << sum <<endl; return sum; }
//计算这个游戏获胜的概率?? #include <iostream> #include <ctime> #include <cstdlib> #define NUMBER 10000000 using namespace std; int rollDice();//掷骰子计算骰子的和 int main() { enum Status{ CONTINUE , WON , LOST };//玩家当前所处的状态 int myPoint ;//玩家的“点数”,用于保存第一次玩家得到的点数!!第一次啊第一次 int winFrequency = 0;//玩家赢的次数 int loseFrequency = 0;//玩家输的次数 Status gameStatus ; int sumOfDice;//玩家每次掷骰子得到的两面骰子总和 srand(time(0));//如果把这条语句写进for循环语句,则会出现永远为0的情况 //进行NUMBER次游戏,得到输赢次数,进而计算频率 for(int i=0;i<NUMBER;i++) { sumOfDice = rollDice(); switch(sumOfDice) { case 2: case 3: case 12: gameStatus = LOST; break; case 7: case 11: gameStatus = WON; break; default: gameStatus = CONTINUE; myPoint = sumOfDice; break; }//end switch //在第一次没赢没输的情况下游戏一直进行下去循环直到分出输赢 while(gameStatus == CONTINUE) { sumOfDice = rollDice(); if(sumOfDice == myPoint) gameStatus = WON; if(sumOfDice == 7) gameStatus = LOST; }//end while //计算输赢次数 if(gameStatus == WON) winFrequency++; else loseFrequency++; }//end for cout << "玩家在" << NUMBER << "次游戏中获胜的次数为:" << winFrequency << " , 输掉的次数为:" << loseFrequency << endl; cout << "这个游戏的获胜概率大约为:" << static_cast<double>(winFrequency)/NUMBER << endl; system("pause >> cout"); return 0; } int rollDice() { int face1 = 1 + rand()%6; int face2 = 1 + rand()%6; int sum = face1 + face2; return sum; }
相关推荐
C++基础教程 本教程是对 C++语言的深入浅出的介绍,从基础知识到 ANSI-C++标准的最新功能,内容涵盖了从数组、类等基本概念到多态、模板等高级概念。本教程共分 6 章,每章分若干小节,每一小节都结合了可以工作的...
c++基础教程 c++内容ppt教程并附课程模板
C++_MFC_基础教程_(初学者) ppt
C++基础教程通常被设计为引导初学者掌握这种语言的基础知识,并逐步深入至高级主题。本教程由Juan Soulié编写,Jing Xu(aqua)翻译,并经过最新校对。它覆盖了从C++的基础概念到ANSI-C++标准中新增功能的广泛话题。 ...
【C++入门基础_30分钟入门教程】这篇教程旨在为初学者和有一定技术基础的人提供快速理解并深化C++知识的途径。C++是一种广泛应用的编程语言,它结合了过程化编程和面向对象编程,适用于操作系统、设备控制、数据库、...
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
程序设计基础8 结构体共用体和枚举类型(2015春).ppt
《C++大学教程(第9版)C++ How to Program 9E 源码》是一本深入浅出介绍C++编程语言的经典教材,适用于大学计算机科学与技术专业的学生以及自学者。本书由Paul Deitel和Harvey Deitel合著,他们在IT教育领域有着丰富...
总结来说,`C++ SerialEnum 串口枚举实例`涉及到的主要知识点包括串口通信的基本概念、Windows WinAPI或Linux的串口操作方法,以及如何在C++中实现串口枚举的类设计。通过理解和应用这些知识,开发者可以有效地管理...
openGL编程实例教程 介绍编程环境实例
C++_MFC基础教程(初学者)_
尽管已经过去多年,Visual C++这个IDE依然不过时,熟练使用它最好的方式就是通过大量的实战,《Visual C++ 6.0开发实例大全_基础卷》从visual c++6.0和C++语法讲起,一步一步带你成为C++大神。
计算机程序设计(C++):第05_06章_01New结构、枚举与联合.ppt
Visual C++ 6.0 实例教程 从入门 应用 实例都有!欢迎下载!
Borland_C++_Builder6.0简易实例教程.
《C++教程_谭浩强》是清华大学著名计算机教育家谭浩强教授编著的一本经典C++入门教材,以其易懂、实用的特点深受广大编程初学者的喜爱。这本书旨在帮助那些对编程一窍不通的读者逐步掌握C++语言,通过深入浅出的讲解...
《小游戏开发实例教程 c++版》是一本专为C++初学者和游戏爱好者设计的教程,旨在通过实际的游戏开发案例,帮助读者掌握C++编程语言在游戏开发中的应用。教程覆盖了从基本的C++语法到游戏编程的核心概念,包括图形...
【Borland C++ Builder 6.0 简易实例教程】 Borland C++ Builder 6.0 是一款由Interprise(Borland)公司推出的基于C++语言的快速应用程序开发(Rapid Application Development,简称RAD)工具。这款强大的开发环境...
c++基础实例教程,非常好用。
C++基础实例教程,讲述一些简单的基础例子,供入门初学者学习参考~