编写程序模拟实现以下游戏:
现有两人玩猜拳游戏,每人可用拳头表示3种物体(石头、剪刀、布)中的一种,游戏胜负规则如下:
1)石头对剪刀:石头赢;
2)剪刀对布:剪刀赢;
3)布对石头:布赢。
做成”人机对战“模式,使用随机数
c++ 模拟实现猜拳游戏
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- zkkis 2021-09-16 20:49关注
可以参考一下下面的代码
#include <stdio.h> #include <stdlib.h> #include <time.h> //随机数头文件 int main() { char gamer; // 玩家出拳 int computer; // 电脑出拳 int result; // 比赛结果 // 为了避免玩一次游戏就退出程序,可以将代码放在循环中 while (1){ printf("这是一个猜拳的小游戏,请输入你要出的拳头:\n"); printf("A:剪刀\nB:石头\nC:布\nD:不玩了\n"); scanf("%c%*c",&gamer); switch (gamer){ case 65 | 97: // A | a gamer=4; break; case 66 | 98: // B | b gamer=7; break; case 67 | 99: // C | c gamer=10; break; case 68 | 100: // D | d return 0; default: printf("你的选择为 %c 选择错误,退出...\n",gamer); getchar(); system("cls"); // 清屏 return 0; break; } srand((unsigned)time(NULL)); // 随机数种子 computer=rand()%3; // 产生随机数并取余,得到电脑出拳 result=(int)gamer+computer; // gamer 为 char 类型,数学运算时要强制转换类型 printf("电脑出了"); switch (computer) { case 0:printf("剪刀\n");break; //4 1 case 1:printf("石头\n");break; //7 2 case 2:printf("布\n");break; //10 3 } printf("你出了"); switch (gamer) { case 4:printf("剪刀\n");break; case 7:printf("石头\n");break; case 10:printf("布\n");break; } if (result==6||result==7||result==11) printf("你赢了!"); else if (result==5||result==9||result==10) printf("电脑赢了!"); else printf("平手"); system("pause>nul&&cls"); // 暂停并清屏 } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用 1
悬赏问题
- ¥15 Opencv配置出错
- ¥15 模电中二极管,三极管和电容的应用
- ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
- ¥15 气象网格数据与卫星轨道数据如何匹配
- ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
- ¥15 微软账户问题不小心注销了好像
- ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
- ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
- ¥20 关于web前端如何播放二次加密m3u8视频的问题
- ¥15 使用百度地图api 位置函数报错?