/* 博弈掷骰子的模拟啊哈哈哈哈哈哈哈哈哈哈哈哈 掷双骰游戏: 玩家掷两个骰子。每个骰子有六面,分别含有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++内容ppt教程并附课程模板
C++_MFC_基础教程_(初学者) ppt
8. 实际应用:除了基础和理论知识,教程可能还会涉及C++在实际项目中的应用,例如游戏开发、系统编程等。 接下来,通过标签中的信息,我们可以总结出这些关键词: - C++:指明了教程的主旨,即C++编程语言。 - ...
程序设计基础8 结构体共用体和枚举类型(2015春).ppt
openGL编程实例教程 介绍编程环境实例
尽管已经过去多年,Visual C++这个IDE依然不过时,熟练使用它最好的方式就是通过大量的实战,《Visual C++ 6.0开发实例大全_基础卷》从visual c++6.0和C++语法讲起,一步一步带你成为C++大神。
计算机程序设计(C++):第05_06章_01New结构、枚举与联合.ppt
Visual C++简介”介绍了Visual C++ 5.0的新增特性, Microsoft Developer Studio集成开发环境的使用和定制,以及如何 从Visual C++ 5.0的在线文档中获得所需的资料和信息。通过这一 章,读者可以对Visual C++及其所...
Visual C++ 6.0 实例教程 从入门 应用 实例都有!欢迎下载!
Borland_C++_Builder6.0简易实例教程.
C++大学简明教程--实例程序设计-随书光盘,有所以程序的源代码
《C++教程_谭浩强》是清华大学著名计算机教育家谭浩强教授编著的一本经典C++入门教材,以其易懂、实用的特点深受广大编程初学者的喜爱。这本书旨在帮助那些对编程一窍不通的读者逐步掌握C++语言,通过深入浅出的讲解...
《小游戏开发实例教程 c++版》是一本专为C++初学者和游戏爱好者设计的教程,旨在通过实际的游戏开发案例,帮助读者掌握C++编程语言在游戏开发中的应用。教程覆盖了从基本的C++语法到游戏编程的核心概念,包括图形...
c++基础实例教程,非常好用。
C++基础实例教程,讲述一些简单的基础例子,供入门初学者学习参考~
《C++编程实例100篇》是一本深入浅出的C++编程教程,它以实践为主导,通过丰富的实例帮助学习者掌握C++语言的基础和核心概念。这本书的每个实例都精心设计,旨在帮助初学者和有经验的开发者巩固和提升C++编程技能。 ...
在VC++编程环境中,开发与串口通信相关的应用程序时,我们常常需要枚举系统中所有可用的串口,以便选择合适的设备进行数据传输。本文将详细介绍如何在VC++中实现这个功能,以及如何利用给定的文件进行操作。 首先,...
C++大学教程(第九版)。电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍。
Visual C++MFC编程实例 教程Visual C++MFC编程实例 教程Visual C++MFC编程实例 教程Visual C++MFC编程实例 教程Visual C++MFC编程实例 教程Visual C++MFC编程实例 教程Visual C++MFC编程实例 教程Visual C++MFC编程...
《Visual C++ DirectX 3D游戏开发实例教程》是一本专为希望利用Microsoft的Visual C++和DirectX库进行3D游戏开发的学习者所编写的教程。教程涵盖了从基础概念到高级技术,旨在帮助读者掌握3D游戏编程的核心技能。 ...