用C++做一个石头剪刀布的游戏

今天,我想用电脑玩一个叫做石头剪刀布的游戏,因为平时也没人和我玩。所以我就打开的电脑,开始整活!

游戏规则及运作

在下面的程序里,输入1代表石头,输入2代表剪刀,输入3表示布,就这样,然后计算机根据时间生成一个随机数种子,然后根据这个随机数通过计算得到计算机出的手势,然后根据以下规则进行判断输赢。

界面

我们先

cout << "石头剪刀布游戏" << endl;
cout << "1. 石头" << endl;
cout << "2. 剪刀" << endl;
cout << "3. 布" << endl;

电脑的随机数

根据上面的描述,可知先用srand(time(0))来进行随机数种子的生成,然后,我们使用rand() % 3 + 1生成1到3的随机数。所以,计算机的随机数代码如下:

srand(time(0));//随机数种子
//在此放置其他代码
int computerChoice = rand() % 3 + 1;//本语句表示用computerChoice变量进行存储随机数数据,以便后面的计算和使用。
//最后面的比较判定代码

在这里,计算机随机出数字的代码就完成了。

玩家的选择输入

我们先在界面上显示游戏说明,以便玩家输入。

cout << "石头剪刀布游戏" << endl;
cout << "1. 石头" << endl;
cout << "2. 剪刀" << endl;
cout << "3. 布" << endl;

然后,我们需要一个变量g来存储玩家输入的数据,然后用switch-case进行比较,从而知道输入的是什么和输赢判定

代码如下:

// 玩家进行选择
cout << "请选择(输入数字1-3):";
cin >> playerChoice;
// 输出玩家和电脑的选择
cout << "玩家选择了:";
switch (playerChoice) {
case 1:
    cout << "剪刀" << endl;
    break;
case 2:
    cout << "石头" << endl;
    break;
case 3:
    cout << "布" << endl;
    break;
default:
    cout << "无效选择" << endl;
    return 0;
}
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 == 3) ||
(PlayerChoice == 2 && computerChoice == 1) ||
(playerChoice == 3 && computerChoice == 2)
) {
    cout << "你赢了" << endl;
}
else {
    cout << "你输了" << endl;
}

然后上完整代码:

#include <iostream>
#include <ctime>
using namespace std;

int main() {
    srand(time(0)); // 初始化随机数生成器

    int playerChoice;
    int computerChoice = rand() % 3 + 1; // 生成1到3之间的随机数

    // 输出游戏规则
    cout << "剪刀石头布游戏" << endl;
    cout << "1. 剪刀" << endl;
    cout << "2. 石头" << endl;
    cout << "3. 布" << endl;

    // 玩家进行选择
    cout << "请选择(输入数字1-3):";
    cin >> playerChoice;

    // 输出玩家和电脑的选择
    cout << "玩家选择了:";
    switch (playerChoice) {
    case 1:
        cout << "剪刀" << endl;
        break;
    case 2:
        cout << "石头" << endl;
        break;
    case 3:
        cout << "布" << endl;
        break;
    default:
        cout << "无效选择" << endl;
        return 0;
    }
    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 == 3) ||
        (playerChoice == 2 && computerChoice == 1) ||
        (playerChoice == 3 && computerChoice == 2)
        ) {
        cout << "你赢了" << endl;
    }
    else {
        cout << "你输了" << endl;
    }

    return 0;
}

好了,今天的文章到此为止,记得点赞加关注加粉丝。

河北工业大学计算机软件技术基础(VC) 课程设计任务书 题目:人机对战——石头剪刀 目的与要求 目的 通过编写该程序,培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计,并对Windows平台下的控制台进行深入的了解。 基本要求 要求用C++语言编程,在Visual C++环境下调试完成; 要求划分功能模块,各个功能分别使用函数来完成; 源代码程序要求必要的注释。 设计方法和基本原理 课题功能描述 编写一个人机进行石头剪刀的小游戏。要求能够进行完一轮猜拳后,显示统计信息。每一轮游戏的过程是首先由玩家选择要出的拳,然后计算机选择出拳,输出本轮游戏的胜负情况,然后输出统计信息(玩家胜利次数、计算机胜利次数和平局次数),然后每轮猜拳结束后,询问玩家是否要继续游戏游戏界面如下: 主要技术问题的描述 随机函数 随机函数名为rand(),使用时必须包含头文件stdlib.h。 创新要求 在基本要求达到后,进行创新设计: 程序要保证计算机的胜利次数至少是玩家胜利次数的1.5倍。 课程设计的考核方式及评分方法 考核方式 (1) 学生要提交书面课程设计报告(A4纸打印);并将设计报告的电子文档、.cpp源文件和.h头文件放到一个文件夹里上传到所对应班级的学生名称相应文件夹中。 (2) 课程设计结束时,在机房当场验收。教师提供测试数据,由学生运行所设计的系统,检查运行结果是否正确,并回答教师提出的有关问题。 评分方法 根据出勤率、课程设计期间纪律、课程设计运行结果、课程设计报告及答辩情况综合评分。 书写设计报告的要求(详细内容见“设计报告模板”) 课程设计的有关文档“设计报告模板”和“课程设计要求”请在下载任务书处下载。    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会叫的喵

这次是我第一次创作,多多鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值