猜拳游戏(函数调用)

//打印选项,提示用户选择;

//可以让用户连续猜拳,直到输入‘q’退出;

//退出之前显示进行了几次游戏和得分;


//流程:

/*

 1、打印选项菜单

 2、接收用户输入

 3、判断用户的选择,并且执行相应操作

 4、如果赢了,得分加10,如果输了,得分减5,游戏次数加1

 如果是退出,则执行相应退出操作

 5、只要不是退出,以上的所有操作,都需要循环

 6、执行退出操作,在退出之前,打印游戏次数和得分;

 */


#include <stdio.h>   //标准输入输出

#include <time.h>    //time

#include <stdlib.h>  //srand


char printMenu();    //声明打印菜单函数

void panduan(char user);    //声明选择判断函数

int flag = 1;   //判断是否退出的值

int count = 0; //局数

int score = 0;  //积分

int main(int argc, const char * argv[]) {

    char ch;

    while(flag)

    {

        ch = printMenu();    //调用打印菜单函数

        panduan(ch);         //调用选择判断函数

    }

    return 0;

}


void panduan(char user){     //定义选择判断函数

    

    int sys = 0;  //系统出拳

    

    srand((unsigned) time (NULL));  //根据时间随机数播种子

    sys = rand()%3 +1;  //系统取1~3之间的随机数

    

    switch (user) {     //用户选择的4个案例

        case '1':         //用户出剪刀

            if (sys == 1) {       //系统出剪刀

                count++;          //局数加1

                printf("电脑出剪刀。平局\n");

            }else if(sys == 2){

                count++;

                printf("电脑出石头。你输了\n");

                score-=5;         //得分减5

            }else if(sys == 3){

                count++;

                printf("电脑出。你赢了\n");

                score+=10;        //得分加10

            }

            break;                //跳出switch

        case '2':

            if (sys == 2) {

                count++;

                printf("电脑出石头。平局\n");

            }else if(sys == 3){

                count++;

                printf("电脑出。你输了\n");

                score-=5;

            }else if(sys == 1){

                count++;

                printf("电脑出剪刀。你赢了\n");

                score+=10;

            }

            break;

        case '3':

            if (sys == 3) {

                count++;

                printf("电脑出。平局\n");

            }else if(sys == 1){

                count++;

                printf("电脑出剪刀。你输了\n");

                score-=5;

            }else if(sys == 2){

                count++;

                printf("电脑出石头。你赢了\n");

                score+=10;

            }

            break;

        case 'q':      //用户选择退出

            printf("一共玩了%d局,得分:%d\n",count,score);   //输出得分

            flag = 0;      //使判断为0

            break;

        default:printf("输入错误\n");   //如果输入的不是0123,提示错误

    }

}


char printMenu(){        //定义打印菜单的函数

    char ch = '\0';

    printf("1:剪刀\n2:石头\n3:布\nq:退出\n");

    printf("请选择:\n");

    scanf("%c",&ch);

    getchar();

    return ch;        //char类型函数要有返回值

}



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值