C语言day03-18石头剪刀布

pragma mark 石头剪刀布

/**
 *  随机数(函数库 stdlib.h)
 *  arc4random_uniform(n)  生成 的值就是 0~(n-1)的值
 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
    /*
     有两个角色 : 玩家(我)、电脑
     两个角色 都可以出 0 == 石头/ 1 == 剪刀/ 2 == 布
     由于我们不知道玩家和电脑到底出的是什么拳,所以我们用0,1,2来代替石头/剪刀/布
     
     玩家的出拳可以让用户输入
     电脑的出拳必须 生产 一个随机数, 如何生成随机数?
     将玩家的出拳和电脑的出拳进行比较, 得到比赛结果
     
      石头 > 剪刀
      剪刀 > 布
      布 > 石头
     */
    
    // 1. 生成 电脑的出拳
    // arc4random_uniform方法会根据传入的整数 生成一个随机数
    // 生成 的值就是 0~(N-1)的值
    int cmp = arc4random_uniform(3);
//    printf("cmp = %i\n",cmp);
    
    // 2. 接收玩家的出拳
    // 2.1 定义变量保存玩家的出拳
    int player = - 1;
    // 2.2 利用scanf 接收
    printf("请输入出拳,0代表石头, 1代表剪刀,2代表布\n");
    scanf("%i",&player);
    /*
    if (玩家石头 电脑剪刀 ||
        玩家剪刀 电脑布 ||
        玩家布 电脑石头)
    {
        printf("玩家 胜利");
    }
    else if (电脑石头 玩家剪刀 ||
        电脑剪刀 玩家布 ||
        电脑布 玩家石头)
    {
        printf("电脑获胜");
    }
    else
    {
        printf("平局");
    }
     */
    // 3. 比较玩家和电脑的出拳
    if (((0==player)&& (1==cmp)) ||
        ((1==player)&& (2==cmp)) ||
        ((2==player)&& (0==cmp)))
    {
        printf("玩家 胜利\n");
    }
    else if (((0==cmp)&& (1==player)) ||
             ((1==cmp)&& (2==player)) ||
             ((2==cmp)&& (0==player)))
    {
        printf("电脑 胜利\n");
    }
    else
    {
        printf("平局\n");
    }
    // 4. 输出结果
    printf("player %i, cmp %i\n",player,cmp);
    return 0;
}
    原文作者:liyuhong165
    原文地址: https://www.jianshu.com/p/dda5802c0b59
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞