石头剪刀布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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DataGrid的ItemDataBound事件

    DataGrid的ItemDataBound事件DataGrid之ItemCommand事件如下代码是将e.Item.Cells[3].Text;的值传个下一个跳出的页面,这个格式要记住它支持ItemCommand事件,给DataGrid添加这

    2022年7月2日
    28
  • struts2标签具体解释

    struts2标签具体解释

    2021年12月15日
    41
  • QT中this指针

    QT中this指针一:this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子: void Date::setMonth( int mn) { month=mn; // 这三句是等价的 this->month=mn; (*this).month=mn; }1.this只能在成员函数中使用。全局函数,静态函数都不能使用th

    2022年5月17日
    143
  • Java安全之Commons Collections2分析

    Java安全之CommonsCollections2分析首发:Java安全之CommonsCollections2分析0x00前言前面分析了CC1的利用链,但是发现在CC1的利用链中是有版

    2021年12月12日
    49
  • 什么是代码_大专程序员有人要吗

    什么是代码_大专程序员有人要吗什么是代码,什么是数据。代码是能够处理其他数据的数据,而数据是储存信息的数据。数据有时能够变成代码,代码也可以变成数据。甚至,一段数据中某一段,都可以单独拿出来,通过执行器执行(执行器,比如exe的执

    2022年8月1日
    5
  • 常见的关系型数据库和非关系型数据及其区别是什么_mysql数据库数据类型

    常见的关系型数据库和非关系型数据及其区别是什么_mysql数据库数据类型&#13; 一、关系型数据库&#13;&#13; &#13;关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1、易于维护:都是使用表结构,格式一致;2、使用方便:SQL语言通用,可用于复杂查询;3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。缺点:1、读写性能比较差,尤其是海量数据的高效率读写;2、固定的表结构,灵活…

    2025年8月12日
    2

发表回复

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

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