C语言实现的猜拳游戏代码分享

C语言实现的猜拳游戏代码分享

1. 概述

本文将介绍C语言实现的猜拳游戏的代码分享,该游戏采用了简单的命令行交互界面,玩家与计算机进行猜拳游戏。

2. 猜拳游戏规则

猜拳游戏的规则非常简单,玩家和计算机各出一招,谁胜利就由出招的手势确定。具体规则如下:

  • 石头胜剪刀
  • 剪刀胜布
  • 布胜石头

3. 代码实现

下面是C语言实现的猜拳游戏的代码:

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

int main()
{
    int player_choice, computer_choice;
    int player_win_count = 0, computer_win_count = 0;
    int round_count = 0;

    srand((unsigned)time(NULL));

    while (1) {
        printf("请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布): \n");
        scanf("%d", &player_choice);
        if (player_choice == -1) {
            break;
        }

        computer_choice = rand() % 3 + 1;

        if (player_choice == computer_choice) {
            printf("平局!\n");
        } else if (player_choice == 1 && computer_choice == 2 ||
            player_choice == 2 && computer_choice == 3 ||
            player_choice == 3 && computer_choice == 1) {
            printf("你赢了!\n");
            player_win_count++;
        } else {
            printf("计算机赢了!\n");
            computer_win_count++;
        }

        round_count++;
    }

    printf("游戏结束!\n");
    printf("你赢了%d局,计算机赢了%d局,平局%d局\n", player_win_count, computer_win_count, round_count - player_win_count - computer_win_count);

    return 0;
}

代码实现过程比较简单,主要分为三个部分:

3.1 设置变量和随机数种子

定义了一些变量,包括玩家出的招,电脑出的招,玩家胜利的场数,电脑胜利的场数和比赛的轮数。同时,通过使用 srand 函数生成一个随机数种子,用于生成电脑出招的随机数字。

int player_choice, computer_choice; // 玩家和计算机选择的招
int player_win_count = 0, computer_win_count = 0; // 玩家胜利场数和计算机胜利场数
int round_count = 0; // 比赛的轮数

srand((unsigned)time(NULL)); // 初始化随机数种子

3.2 进行猜拳游戏

通过一个 while 循环来进行猜拳游戏,每进行一轮游戏,就会跳出询问玩家出招,同时生成电脑出招的随机数。接着会计算比赛结果,并累计场数。

while (1) {
    printf("请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布): \n");
    scanf("%d", &player_choice);
    if (player_choice == -1) {
        break;
    }

    computer_choice = rand() % 3 + 1;

    if (player_choice == computer_choice) {
        printf("平局!\n");
    } else if (player_choice == 1 && computer_choice == 2 ||
        player_choice == 2 && computer_choice == 3 ||
        player_choice == 3 && computer_choice == 1) {
        printf("你赢了!\n");
        player_win_count++;
    } else {
        printf("计算机赢了!\n");
        computer_win_count++;
    }

    round_count++;
}

在这个例子中,当玩家输入 -1 时,游戏循环会被打破,整个游戏结束,并输出比赛结果。

3.3 输出比赛结果

当游戏结束时,通过 printf 函数输出比赛结果。

printf("游戏结束!\n");
printf("你赢了%d局,计算机赢了%d局,平局%d局\n", player_win_count, computer_win_count, round_count - player_win_count - computer_win_count);

4. 示例说明

下面提供两个对这个猜拳游戏代码的示例说明。

4.1 示例1

当玩家依次输入 123121 时,可得到如下的输出结果:

请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布):
1
你赢了!
请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布):
2
你赢了!
请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布):
3
计算机赢了!
请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布):
1
你赢了!
请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布):
2
你赢了!
请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布):
1
你赢了!
请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布):
-1
游戏结束!
你赢了4局,计算机赢了1局,平局1局

4.2 示例2

当玩家输入 -1 时,游戏会立即结束

请输入出拳的数字(1 - 石头,2 - 剪刀,3 - 布):
-1
游戏结束!
你赢了0局,计算机赢了0局,平局0局

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现的猜拳游戏代码分享 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • C语言中while(1)和while(0)的区别

    下面我会详细讲解 C 语言中 while(1) 和 while(0) 的区别,并且提供两个示例来说明它们的不同之处。 while(1) 和 while(0) 的区别 在 C 语言中,while(1) 和 while(0) 分别表示一个无限循环和一个循环不执行的语句。但是,它们实际上有一些细微的差别。 while(1) while(1) 可以被认为是一个无限循…

    C 2023年5月10日
    00
  • C 程序 查找数组元素的总和

    C程序 查找数组元素的总和 简介 本程序通过输入一个包含n个数的整型数组,求出数组中所有元素的总和。 使用攻略 编译环境 本程序使用C语言编写,建议使用gcc编译器,在Linux环境下执行。 输入数组 程序使用scanf函数从标准输入中读入数组元素,用户需输入n个整型数值,以空格或换行符分隔。 示例输入: 5 1 2 3 4 5 程序设计 本程序使用for循…

    C 2023年5月9日
    00
  • C++操作json文件以及jsoncpp配置详解

    首先我们来讲解一下C++如何操作JSON文件。JSON是一种轻量级数据交换格式,通常用于前后端数据交互。而JSON格式的数据在C++中可以通过JSONCPP库进行解析和操作。下面是操作JSON文件的完整攻略: 1. 安装jsoncpp库 在进行JSON格式的数据操作之前,需要先下载安装jsoncpp库。在Windows平台上,可以在官网(https://gi…

    C 2023年5月23日
    00
  • PHP高精确度运算BC函数库实例详解

    PHP高精确度运算BC函数库实例详解 本文将详细讲解PHP中高精度运算的实现方式,主要使用的是BC函数库。BC函数库是PHP中一个集成了多种精度运算的工具,拥有高精度计算、小数位控制等功能,可以帮助我们方便地完成高精度计算。 安装和使用 安装BC函数库非常简单,只需要在PHP中开启bcmath扩展即可。具体安装方式可以参考官方文档。 在开启扩展后,我们就可以…

    C 2023年5月22日
    00
  • Python hashlib和hmac模块使用方法解析

    Python hashlib和hmac模块使用方法解析 简介 哈希算法(HASH),又称散列算法,是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。当输入的消息内容一样时,计算出来的消息摘要也相同,不同输入的消息内容计算出来的消息摘要也不同。哈希算法广泛应用于数字签名、消息认证码、随机映射等领域。 Python的hashlib模块提供了多种哈希算法的…

    C 2023年5月23日
    00
  • 淘宝直播间进不去怎么回事?怎么做?

    淘宝直播间进不去怎么回事?怎么做? 淘宝直播是淘宝平台上的一项直播服务,为商家提供直播卖货的渠道,吸引了大量用户。但是,用户在使用淘宝直播时,有时遇到无法进入直播间的问题,接下来我们将为大家介绍如何解决。 一、检查网络连接 首先,我们需要检查一下自己的网络连接是否正常。可以打开其他网站试试看,如果其他网站打得开,那就是淘宝平台的问题,如果其他网站也打不开,那…

    C 2023年5月23日
    00
  • C语言版五子棋游戏的实现代码

    下面给出 C 语言版五子棋游戏的实现代码的完整攻略,包括代码实现过程、技术要点和示例说明。 1. 思路梳理 实现五子棋游戏的代码实现思路如下: 创建游戏窗口,并设置窗口大小; 绘制游戏地图(棋盘); 实现鼠标交互功能,即用户点击某个格子时向这个格子上放置相应的棋子; 判断游戏是否结束,即判断某个玩家是否连成了 5 颗棋子; 实现悔棋功能; 实现人机对战功能。…

    C 2023年5月24日
    00
  • Go Java算法之Excel表列名称示例详解

    Go Java算法之Excel表列名称示例详解 概述 Excel中的列名称由大写字母组成,从”A”开始,到”Z”为止,然后是”AA”,”AB”…依此类推。本文将详细说明如何将数字转换为相应的Excel表列名称。 算法分析 可将数字转换为Excel表列名称的基本思路是将10进制数转换为26进制数,并将每个数字转换为相应的大写字母。 将给定数字减1,以便找出…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部