在C语言中使用switch语句实现猜拳游戏

一、程序要求

游戏项目:猜拳
游戏规则:石头克制剪刀,剪刀克制布,布克制石头。
项目要求
1.编写玩游戏函数,实现玩家和电脑对战。

2.电脑随机出拳(运用随机函数srand()、rand()和time(NULL)产生随机数,需要包含头文件stdlib.h和time.h);

3.玩家输入“石头/剪刀/布”进行出拳(需要定义石头剪刀布的枚举类型来记录);

4.玩家和电脑可以循环多次猜拳,判断猜拳的结果,如果玩家赢了则输出“玩家赢了”,如果玩家输了则输出“玩家输了”,如果是平局则输出“平局”。

二、项目分析

(1)我们可以先通过枚举类型来表示电脑和玩家去的所有游戏选择可能,先声明枚举类型,然后分别定义电脑和玩家的枚举变量。

(2)那我们应该怎么样去编写电脑的随机出拳呢?
我们可以通过rand()函数赋值电脑随机值rand%3可以得到0,1,2这三种选择,分别对应枚举类型中的石头,剪刀,布,这样就可以做到电脑的随机出拳(顺序无所谓,注意后续程序与之对应)

(3)接下来就很简单了,从键盘输入值给到玩家,根据指定值与电脑的随机值,对其进行匹配,就可以得到结果啦。

(4)各位可以先自己试试看,然后再看代码演示。

三、代码演示

#include<stdio.h>

#include<stdlib.h>//引入rand函数

#include<time.h>//引入time函数

enum game { 石头, 剪刀,};//通过枚举类型来表示电脑和玩家去的所有游戏选择可能,石头=0,剪刀=1,布=2

int main()

{

    enum game computer;//电脑

    enum game player;//玩家

    srand((unsigned)time(NULL));//更换随机源,播下随机种子,否则后面rand的返回值不会变化

    while (1)//也可以通过for(;;)实现

    {

        printf("\n\n猜拳游戏开始:\n\n");

        computer = (enum game)rand() % 3;//给电脑0~2的随机值

        printf("0为石头 1为剪刀 2为布\n");

        printf("请玩家猜拳:");

        scanf("%d", &player);

        switch (player)

        {

        case 石头:printf("玩家出的石头\n");//当我们出的是石头的时候,接下来与电脑的随机值相匹配然后输出结果

            switch (computer)//对电脑的值做出判断

            {

            case 石头:

                printf("电脑出的石头\n");

                printf("平局!\n");

                break;

            case 剪刀:

                printf("电脑出的剪刀\n");

                printf("玩家赢了!\n");

                break;

            case:

                printf("电脑出的布\n");

                printf("玩家输了!\n");

                break;

            }

            break;

        case 剪刀:printf("玩家出的剪刀\n");//同上

            switch (computer)

            {

            case 石头:

                printf("电脑出的石头\n");

                printf("玩家输了!\n");

                break;

            case 剪刀:

                printf("电脑出的剪刀\n");

                printf("平局!\n");

                break;

            case:

                printf("电脑出的布\n");

                printf("玩家赢了!\n");

                break;

            }

            break;

        case:printf("玩家出的布\n");//同上

            switch (computer)

            {

            case 石头:

                printf("电脑出的石头\n");

                printf("玩家赢了!\n");

                break;

            case 剪刀:

                printf("电脑出的剪刀\n");

                printf("玩家输了了!\n");

                break;

            case:

                printf("电脑出的布\n");

                printf("平局!\n");

                break;

            }

            break;

        }

    }

    return 0;

}

这样就可以实现猜拳游戏了

结尾

作者刚刚入门C语言,还有许多不足的地方,如果有问题,请大家及时提出来,如果有更好的方法大家可以提出来。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C语言,`switch` case分支语句是一种用于根据不同的条件执行不同代码块的控制结构。它允许您根据一个变量的值选择执行不同的代码块。 下面是`switch` case分支语句的基本语法: ```c switch (expression) { case constant-1 : // 代码块 1 break; case constant-2 : // 代码块 2 break; ... default : // 默认代码块 } ``` 在上面的语法,`expression`是一个表达式,它的值将被与`case`后面的常量进行比较。如果表达式的值与某个`case`后面的常量相匹配,那么就会执行该`case`后面的代码块。如果没有匹配的`case`,就会执行`default`代码块(如果有的话)。每个`case`后面可以有一个或多个代码块,它们按顺序执行,直到遇到`break`语句为止。 下面是一个简单的示例,演示了如何使用`switch` case分支语句: ```c #include <stdio.h> int main() { int day = 3; switch (day) { case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); break; case 3: printf("Wednesday\n"); break; default: printf("Invalid day\n"); } return 0; } ``` 在上面的示例,变量`day`的值是3。根据它的值,程序将执行与常量3对应的代码块,即输出"Wednesday"。如果没有匹配的常量,程序将执行默认代码块(如果有的话)。在这个例子,没有使用`break`语句,因此程序将继续执行下一个`case`后面的代码块。 需要注意的是,每个`case`后面必须有一个`break`语句,否则程序将继续执行下一个`case`后面的代码块,直到遇到`break`语句为止。如果没有使用`break`语句,程序可能会进入无限循环。另外,每个`case`后面的代码块必须以分号结束。 希望这可以帮助您理解如何在C语言使用`switch` case分支语句
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值