C++做石头剪刀布

运作原理

程序里1代表石头;2代表布;3代表剪刀,然后让计算机随机从1~3抽一个数,再来判断。

界面

        std::cout << "    === 石头剪刀布 === \n";
        std::cout << "=== Rock Paper Scissors === \n";
        std::cout << "  1.石头 \n";
        std::cout << "  2.布 \n";
        std::cout << "  3.剪刀 \n"

随机数

用srand(time(0));来进行随机数

int getRand(int min, int max);
 
int main() {
 
    srand(time(0));
 
    for (int i=0; i<1; i++) {
        int r = getRand(1,3);
        std::cout << r << std::endl;
    }
 
    return 0;
}
int getRand(int min, int max) {
    return ( rand() % (max - min + 1) ) + min ;
}

 for (int i = 0; i < 1; i++) {
   是输出一个数

  int r = getRand(1, 3); 范围1~3

用户输入和判断

        int a;
        std::cin >> a;
        if (r == 1 && a == 1) {
            std::cout << "机器人出了石头 \n";
            std::cout << "平局 \n";
        }
        if (r == 1 && a == 2) {
            std::cout << "机器人出了石头 \n";
            std::cout << "你赢了 \n";
        }
        if (r == 1 && a == 3) {
            std::cout << "机器人出了石头 \n";
            std::cout << "你输了 \n";
        }
        if (r == 2 && a == 1) {
            std::cout << "机器人出了布 \n";
            std::cout << "你输了 \n";
        }
        if (r == 2 && a == 2) {
            std::cout << "机器人出了布 \n";
            std::cout << "平局 \n";
        }
        if (r == 2 && a == 3) {
            std::cout << "机器人出了布 \n";
            std::cout << "你赢了 \n";
        }
        if (r == 3 && a == 1) {
            std::cout << "机器人出了剪刀 \n";
            std::cout << "你赢了 \n";
        }
        if (r == 3 && a == 2) {
            std::cout << "机器人出了剪刀 \n";
            std::cout << "你输了 \n";
        }
        if (r == 3 && a == 3) {
            std::cout << "机器人出了剪刀 \n";
            std::cout << "平局 \n";
        }

这里用了9个判断(以后可以稍微优化一下)

完整代码

#include <iostream>
#include <ctime>
#include <cstdlib>
//1=石头;2=布;3=剪刀
int getRand(int min, int max);

int main() {

    srand(time(0));

    for (int i = 0; i < 1; i++) {
        int r = getRand(1, 3);
        //r=随机 
        std::cout << "    === 石头剪刀布 === \n";
        std::cout << "=== Rock Paper Scissors === \n";
        std::cout << "  1.石头 \n";
        std::cout << "  2.布 \n";
        std::cout << "  3.剪刀 \n";
        int a;
        std::cin >> a;
        if (r == 1 && a == 1) {
            std::cout << "机器人出了石头 \n";
            std::cout << "平局 \n";
        }
        if (r == 1 && a == 2) {
            std::cout << "机器人出了石头 \n";
            std::cout << "你赢了 \n";
        }
        if (r == 1 && a == 3) {
            std::cout << "机器人出了石头 \n";
            std::cout << "你输了 \n";
        }
        if (r == 2 && a == 1) {
            std::cout << "机器人出了布 \n";
            std::cout << "你输了 \n";
        }
        if (r == 2 && a == 2) {
            std::cout << "机器人出了布 \n";
            std::cout << "平局 \n";
        }
        if (r == 2 && a == 3) {
            std::cout << "机器人出了布 \n";
            std::cout << "你赢了 \n";
        }
        if (r == 3 && a == 1) {
            std::cout << "机器人出了剪刀 \n";
            std::cout << "你赢了 \n";
        }
        if (r == 3 && a == 2) {
            std::cout << "机器人出了剪刀 \n";
            std::cout << "你输了 \n";
        }
        if (r == 3 && a == 3) {
            std::cout << "机器人出了剪刀 \n";
            std::cout << "平局 \n";
        }
        char playAgain;
        std::cout << "是否再玩一局?(输入y继续,其他键退出) \n";
        std::cin >> playAgain;
        if (playAgain == 'y' || playAgain == 'Y') {
            i--;
        }
        else {
            break;
        }
    }

    return 0;
}
int getRand(int min, int max) {
    return (rand() % (max - min + 1)) + min;
}

(代码可能不大好看)

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的石头剪刀布游戏C++代码示例: ```c++ #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int playerScore = 0; int computerScore = 0; int roundNumber = 1; cout << "欢迎来到石头剪刀布游戏!" << endl; while (true) { int playerChoice; cout << "第 " << roundNumber << " 回合,请输入你的选择(1:石头,2:剪刀,3:布):"; cin >> playerChoice; if (playerChoice < 1 || playerChoice > 3) { cout << "无效的选择,请重新输入!" << endl; continue; } int computerChoice = rand() % 3 + 1; cout << "你的选择是:"; switch (playerChoice) { case 1: cout << "石头" << endl; break; case 2: cout << "剪刀" << endl; break; case 3: cout << "布" << endl; break; } cout << "电脑的选择是:"; switch (computerChoice) { case 1: cout << "石头" << endl; break; case 2: cout << "剪刀" << endl; break; case 3: cout << "布" << endl; break; } if (playerChoice == computerChoice) { cout << "这一回合平局。" << endl; } else if ((playerChoice == 1 && computerChoice == 2) || (playerChoice == 2 && computerChoice == 3) || (playerChoice == 3 && computerChoice == 1)) { cout << "你赢了这一回合!" << endl; playerScore++; } else { cout << "电脑赢了这一回合。" << endl; computerScore++; } cout << "当前得分:你 " << playerScore << " - " << computerScore << " 电脑" << endl; char playAgain; cout << "是否再玩一局?(Y/N):"; cin >> playAgain; if (playAgain == 'N' || playAgain == 'n') { break; } roundNumber++; } cout << "游戏结束,最终得分:你 " << playerScore << " - " << computerScore << " 电脑" << endl; return 0; } ``` 这个程序使用了一个while循环来实现多轮游戏的功能。在每个回合中,它会提示玩家输入选择,然后生成一个随机数来模拟电脑的选择。接下来,程序会比较玩家和电脑的选择,并根据胜负情况来更新得分。最后,程序会询问玩家是否想再次玩游戏,如果是则进入下一轮游戏,否则结束游戏

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值