黑马程序员技术交流社区

标题: 剪刀石头布游戏 退出死循环问题 [打印本页]

作者: lclofty    时间: 2015-6-17 16:00
标题: 剪刀石头布游戏 退出死循环问题
本帖最后由 lclofty 于 2015-6-17 16:04 编辑

//石头剪刀布游戏
//制定游戏的规则
/*
输赢的规则:

剪刀 干掉 布

石头 干掉 剪刀

布   干掉 石头

规定:

0.剪刀    1.石头    2.布


思路:

计算机随机出一个拳(计算机如何随机出拳)

玩家自己选择一个拳

判断输赢

*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    //定义两个变量储存计算机和用户的出拳
    int computer = -1, player = -1;
    char turnOff;
   
    while (1){
        //计算机先出拳,产生随机数
        computer = arc4random_uniform(3);

        //提示并让用户输入
        printf("请出拳 0.剪刀    1.石头    2.布\n");
        scanf("%d", &player);
        
        //判断输赢
        if ((computer==0 && player==1) || (computer==1 && player==2) || (computer==2 && player==0)){
            printf("你赢了\n");
        }else if ((computer==1 && player==0) || (computer==2 && player==1) || (computer==0 && player==2)){
            printf("你输了\n");
        }else if ((computer==1 && player==1 ) || (computer==2 && player==2) || (computer==3 && player==3)){
            printf("平局\n");
        }
        
        //退出
        printf("按[y/Y]退出,按其他任意键继续游戏\n");
        scanf("%c", &turnOff);
        if (turnOff == 'y' || turnOff == 'Y'){
            break;
        }else{
            continue;
        }
    }

运行结果
请出拳 0.剪刀    1.石头    2.布
0
你赢了
按[y/Y]退出,按其他任意键继续游戏
请出拳 0.剪刀    1.石头    2.布


为什么提示退出判断后 还没有输入 就直接提示出拳了?拜托大家看看,是哪里错了呢?





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2