在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语言,还有许多不足的地方,如果有问题,请大家及时提出来,如果有更好的方法大家可以提出来。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值