一、概念
/*
#include <stdlib.h>
arc4random_uniform(3); // arc4random_uniform 方法会根据传入的整数 生成一个随机数
生成的值 就是 0~[N-1]的值
0~2
*/
二、代码
#include <stdio.h>
#include <stdlib.h> // 随机数的一个库
int main()
{
/*
有两个角色 : 玩家(我), 电脑
两个角色都可以出 0 == 石头/ 1 == 剪刀/ 2 == 布
由于我们不知道玩家 和 电脑到底出的什么拳, 所以我们用 0、1、2 来代替 石头 / 剪刀 / 布
玩家的出拳 可以让用户自己输入
电脑的出拳 必须生成一个 随机数, 如何生成一个随机数?
将玩家出拳 和 电脑的出拳进行比较, 得到比赛结果
*/
// 石头 > 剪刀 / 剪刀 > 布 / 布 > 石头
#pragma 1. 随机数 (导入 <stdlib.h> )
// 1. 生成电脑的出拳
// arc4random_uniform(3); // 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);
// 3.比较玩家 和 电脑的出拳
/*
if (玩家石头 电脑剪刀 ||
玩家剪刀 电脑布 ||
玩家布 电脑石头)
{
printf("玩家获胜");
}
else if (电脑石头 玩家剪刀 ||
电脑剪刀 玩家布 ||
电脑布 玩家石头)
{
printf("电脑获胜");
}
else
{
printf("和局");
}
*/
// 4.输出结果
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");
}
printf("玩家出拳 %i,电脑出拳 %i\n",player,cmp);
return 0;
}