石头剪刀布c++实现

石头剪刀布c++实现问题描述:编写一个程序,玩“石头”“剪刀”“布”的游戏,在这个游戏中,两位玩家通时说出“石头”“剪刀”“布”如果一位玩家所选的对象击败了另一个玩家所选的对象,那么前者就是赢家,规则是:布吃石头,石头吃剪刀剪刀吃布,为选择的对象和最终的结果使用枚举,使用标准头文件中定义的ran()函数,为计算生成随机的选择。输入:chooseeitherrock,shear,cloth(R/

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述

问题描述:
编写一个程序,玩“石头”“剪刀”“布”的游戏,在这个游戏中,两位玩家通时说出“石头”“剪刀”“布”
如果一位玩家所选的对象击败了另一个玩家所选的对象,那么前者就是赢家,规则是:布吃石头,石头吃剪刀
剪刀吃布,为选择的对象和最终的结果使用枚举,使用标准头文件中定义的ran()函数,为计算生成随机的选择。
输入:
choose either rock,shear,cloth(R/S/P):S
输出:
I chose Rock.
I won
设计思路:
产生result的两个人,设计程序为你选你的(switch随机选),我产生我的(rand()函数随机产生对3求余,switch实现产生我的三种结果),
然后将你选的和我随机产生做比较,对产生的结果做判断,当然了本题也可以是两个人的结果都随机产生,然后作比较 。

#include<iostream>
#include<cstdlib>
using namespace std;
enum Choice {rock,shear,cloth};//分别代表石头,剪刀,布
enum Result {you,me,tie};//其中结果为你赢,我赢,平局
int main()
{
	Choice yours,mine;
	Result winner=you;
	cout<<"Dfsfsd";
	cout<<"choose either rock,shear,cloth(R/S/P):";
	string s;
	cin>>s;
	switch(s[0]){
		case 'R': case 'r': yours=rock;   break;
		case 'S': case 's': yours=shear;  break;
		case 'C': case 'c': yours=cloth;  break;
		default: yours=rock; 
	}
	int n=rand();//得到一个随机数
	switch(n%3){
		case 0:mine=cloth; cout<<"I chose cloth.\n"; break;
		case 1:mine=shear; cout<<"I chose shear.\n"; break;
		case 2:mine=rock; cout<<"I chose stone.\n";  
	}
	if(yours==mine) winner=tie;//对两人产生的结果进行比较
	if(mine==rock&&yours==shear||mine==shear&&yours==cloth||mine==cloth&&yours==rock){
		winner=me;
	}
	
	switch(winner){//产生winner
		case you: cout<<"you win!\n"; break;
		case me:  cout<<"I win!\n";   break;
		case tie: cout<<"It's tie!\n"; break;
	} 
	 
}

在这里插入图片描述
欢迎大家点赞和关注!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163862.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MSAgent 详细解说(上)「建议收藏」

    MSAgent 详细解说(上)「建议收藏」转:http://www.blueidea.com/tech/web/2004/1643.asp 作者windy_sk 邮箱:windy_sk@126.com下面是原文:本文完全原创,所有参考都是msdn.microsoft.com/library/en-us/msagent/agentstartpage_7gdh.asp引子:本来两年前就打算写了,结果拖了这么长时间,近日看到有朋友问及…

    2022年4月19日
    50
  • TCP标志:PSH和URG

    TCP标志:PSH和URGTCP 标头包含几个一位布尔字段 称为标志 用于影响 TCP 连接上的数据流 忽略 RFC3168 为拥塞通知添加的 CWR 和 ECE 标志 有六个 TCP 控制标志 下面列出的其中四个用于控制 TCP 连接的建立 维护和拆除 并且对于甚至进行了基本数据包分析的任何人都应该熟悉 SYN nbsp 启动连接 ACK nbsp 确认收到的数据 FIN nbsp 关闭连接 RST nbsp 中止连接以响应错误其他两个标志 PSH 推 和

    2025年10月17日
    3
  • 如何用 30 行代码实现微信自动回复机器人?「建议收藏」

    如何用 30 行代码实现微信自动回复机器人?「建议收藏」作者|Ahab责编|胡巍巍写在前面很多朋友对itchat非常感兴趣,近日又学到了itchat另一种有趣的玩法——微信自动回复机器人。程序很简单仅仅三十行代码左右,…

    2022年10月1日
    2
  • mysql锁机制_类加载机制的作用和过程

    mysql锁机制_类加载机制的作用和过程Mysql锁:在多线程当中如果想保证数据的准确性是如何实现的呢?没错,通过同步实现。同步就相当于是加锁。加了锁以后有什么好处呢?当一个线程真正在操作数据的时候,其他线程只能等待。当一个线程执行完毕后,释放锁。其他线程才能进行操作!那么我们的MySQL数据库中的锁的功能也是类似的,处理事务的隔离性中,可能会出现脏读、不可重复读、幻读的问题,所以,锁的作用也可以解决这些问题!在数据库中,数据是一种供许多用户共享访问的资源,如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,

    2022年9月28日
    2
  • backtrack3(BT3) usb版 激活成功教程WIFI无线网络密码详细步骤

    backtrack3(BT3) usb版 激活成功教程WIFI无线网络密码详细步骤好像很多朋友都在找这东西,我来发上来吧!软件BAIDU一下就有得下了!一、先开始制作启动U盘:将下载好的backtrack3(BT3)usb版(下载地址在文章末尾)文件bt3b141207.rar直接解压到U盘(1G以上容量)。把Boot和BT3两个文件夹放到U盘的根目录,打开BOOT文件夹双击运行”bootinst.bat”批处理文件。U盘里就会多出4个文件.”isolinux.b…

    2022年10月1日
    5
  • 单选按钮控件和复选框控件_单选按钮控件和复选框控件都具有

    单选按钮控件和复选框控件_单选按钮控件和复选框控件都具有Windows单按钮、复选框、分组框控件单选按钮(Radio Button)和复选框(Check Box)是常见的Windows控件,用于从给出的选项中选择一项或多项,如下图所示:单选钮与复选框单选按钮是互斥的,只能选择其中一项;而复选框没有限制,可以选择一项或多项。单选按钮和复选框都是一种特殊的按钮,窗口类名称都是button,只不过增加了一些特殊的窗口样式罢了。单选按钮的样式为BS_…

    2022年8月18日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号