必何也 2021-09-16 12:59 采纳率: 100%
浏览 626
已结题

c++ 模拟实现猜拳游戏

编写程序模拟实现以下游戏:
现有两人玩猜拳游戏,每人可用拳头表示3种物体(石头、剪刀、布)中的一种,游戏胜负规则如下:
1)石头对剪刀:石头赢;
2)剪刀对布:剪刀赢;
3)布对石头:布赢。
做成”人机对战“模式,使用随机数

  • 写回答

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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月16日

悬赏问题

  • ¥15 CARSIM前车变道设置
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败