C语言实现与电脑玩剪刀石头布游戏

 更新时间:2022年11月03日 09:41:15   作者:糜渊  
这篇文章主要为大家详细介绍了如何通过C语言实现和电脑玩剪刀石头布游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

C语言实现与电脑进行剪刀石头布

游戏解析:

1.导入头文件

2.游戏菜单

3.开始游戏并对电脑输入数据

4.为电脑随机生成一个数据

5.判断输赢并输出结果

1.导入头文件

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

2.游戏菜单

void menu()//游戏菜单
{
    printf("  1.play   \n");
    printf("  0.exit   \n");
}
int main()
{
    int a;
    srand((unsigned int)time(NULL));//随机种子,让电脑可以随机生成一个值
    
    do
    {
        menu();
        scanf("%d", &a);
        switch (a)
        {
        case 1:
            game();
        case 0:
            break;
 
        default:
            printf("输入错误,请重新输入。\n");
        }
    } while (a);
 
 
    return 0;
}

利用do while循环语句,在游戏结束时可以再次选择是否继续。switch语句选择游戏的开始与否

3.开始游戏并对电脑输入数据

游戏次数次数过的时候,屏幕上内容过多,所以在每次游戏开始的时候做一个清屏处理

void game()//游戏模块
{
    system("cls");//做了一个清屏处理,每次开始新游戏时,清除上一次游戏记录。
    int b, c;
    printf("游戏:剪刀石头布\n");
    printf("请选择你要出的手势>:\n");
    printf("1.石头 2.剪刀 3.布\n");
    scanf("%d", &c);
    b = rand() % 3 + 1;//产生1、2、3之间的一个随机值
    //printf("%d\n", b);//调试过程中以确保b的值对应且随机

4.判断输赢并输出结果

选用if分支语句对根据不同的情况来输出结果

if (c == b)//开始判断输赢
        printf("电脑和你出了一样的手势,本局平局。\n");
    else if ((b - c + 3) % 3 == 1)
    {
        if (b == 1)
            printf("你赢了,电脑出了石头。\n");
        else if (b == 2)
            printf("你赢了,电脑处了剪刀。\n");
        else
            printf("你赢了,电脑出了布。\n");
 
    }
    else
    {
        if (b == 1)
            printf("你输了,电脑出了石头。\n");
        else if (b == 2)
            printf("你输了,电脑处了剪刀。\n");
        else
            printf("你输了,电脑出了布。\n");
    }

5.全代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
void menu()//游戏菜单
{
    printf("  1.play   \n");
    printf("  0.exit   \n");
}
 
void game()//游戏模块
{
    system("cls");//做了一个清屏处理,每次开始新游戏时,清除上一次游戏记录。
    int b, c;
    printf("游戏:剪刀石头布\n");
    printf("请选择你要出的手势>:\n");
    printf("1.石头 2.剪刀 3.布\n");
    scanf("%d", &c);
    b = rand() % 3 + 1;//产生1、2、3之间的一个随机值
    //printf("%d\n", b);//调试过程中以确保b的值对应且随机
    if (c == b)//开始判断输赢
        printf("电脑和你出了一样的手势,本局平局。\n");
    else if ((b - c + 3) % 3 == 1)
    {
        if (b == 1)
            printf("你赢了,电脑出了石头。\n");
        else if (b == 2)
            printf("你赢了,电脑处了剪刀。\n");
        else
            printf("你赢了,电脑出了布。\n");
 
    }
    else
    {
        if (b == 1)
            printf("你输了,电脑出了石头。\n");
        else if (b == 2)
            printf("你输了,电脑处了剪刀。\n");
        else
            printf("你输了,电脑出了布。\n");
    }
 
 
 
}
 
int main()
{
    int a;
    srand((unsigned int)time(NULL));//随机种子,让电脑可以随机生成一个值
    
    do
    {
        menu();
        scanf("%d", &a);
        switch (a)
        {
        case 1:
            game();
        case 0:
            break;
 
        default:
            printf("输入错误,请重新输入。\n");
        }
    } while (a);
 
 
    return 0;
}

到这简单的一个石头剪刀布,就完成了。欢迎各位大佬来点评点评!这对还处于小白的我,帮助是非常大的。  

到此这篇关于C语言实现与电脑玩剪刀石头布游戏的文章就介绍到这了,更多相关C语言剪刀石头布游戏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VSCode插件开发全攻略之package.json详解

    VSCode插件开发全攻略之package.json详解

    这篇文章主要介绍了VSCode插件开发全攻略之package.json的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • C++控制台实现简单注册登录

    C++控制台实现简单注册登录

    这篇文章主要为大家详细介绍了C++控制台实现简单注册登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • c++动态内存管理详解(new/delete)

    c++动态内存管理详解(new/delete)

    作为一名编程初学者,通常学习中,发生内存错误是件非常麻烦的事情,下面这篇文章主要给大家介绍了关于c++动态内存管理new/delete的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • C++中的按位与&、按位与或|、按位异或^运算符详解

    C++中的按位与&、按位与或|、按位异或^运算符详解

    这篇文章主要介绍了C++中的按位与&、按位与或|、按位异或^运算符,是C++入门学习中的基础知识,需要的朋友可以参考下
    2016-01-01
  • 使用C语言操作树莓派GPIO的详细步骤

    使用C语言操作树莓派GPIO的详细步骤

    今天抽空给大家普及使用C语言操作树莓派GPIO的详细步骤,本文大概分五步给大家介绍树莓派GPIO安装步骤,首先需要安装GPIO库然后进行一步步设置,具体操作方法跟随小编一起学习吧
    2021-06-06
  • 原码, 反码与补码基础知识详细介绍

    原码, 反码与补码基础知识详细介绍

    这篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法,需要的朋友可以参考下
    2016-12-12
  • C/C++运用WMI接口实现查询系统信息

    C/C++运用WMI接口实现查询系统信息

    Windows Management Instrumentation(WMI)是一种用于管理和监视Windows操作系统的框架,本文主要介绍了如何运用WMI接口实现查询系统信息,感兴趣的可以了解下
    2023-11-11
  • 深入解析C++中的auto自动类型推导

    深入解析C++中的auto自动类型推导

    C++标准委员会在C++11标准中改变了auto关键字的语义,使它变成一个类型占位符,允许在定义变量时不必明确写出确切的类型,让编译器在编译期间根据初始值自动推导出它的类型,下面我们就来看看auto自动类型推导的推导规则吧
    2024-04-04
  • Qt读取和写入配置(ini)文件

    Qt读取和写入配置(ini)文件

    ini文件在windows系统中可以存储需要持久保存的配置信息,本文主要介绍了Qt读取和写入配置(ini)文件,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • 一篇文章带你入门C++的异常处理

    一篇文章带你入门C++的异常处理

    C++ 提供了异常机制,让我们能够捕获运行时错误,本文就详细的介绍了C++异常处理入门,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论