目录
1.解题思路
解题:
电脑获得一个随机出拳,根据不同情况分为九种出拳情况和三种结果
computer:stone
player:stone(平局);player:scissors(输);P:cloth(赢)
computer:scissors
player:stone(赢);player:scissors(平局);player:scissors(输)
computer:paper
player:stone(输);player::scissors(赢);player:scissors(平局)
算法部分:
1:电脑获得一个随机拳
在C语言里没有list列表所以只能采用rand随机数函数来获得一个数字,再根据这个数字用switch语句让电脑获得随机拳
2.玩家手动输入数字(0代表石头,1代表剪刀,2代表布)
2.代码解析
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
enum game{ stone, scissors, cloth }; //0 1 2 默认代表石头剪刀布
int main()
{
enum game computer;
enum game player;
srand((unsigned)time(NULL)); //随机函数
while (1)
{
computer = rand() % 3; //种子 取 0-2之间的整数
printf("\n玩家请输入: ");
scanf("%d", &player);
switch (player)
{
case stone:
printf("玩家出石头\n");
switch (computer)
{
case stone:
printf("电脑出石头\n");
printf("平局\n");
break;
case scissors:
printf("电脑出剪刀\n");
printf("玩家胜利\n");
break;
case cloth:
printf("电脑出布\n");
printf("电脑胜利\n");
break;
}
break;
case scissors:
printf("玩家出剪刀\n");
switch (computer)
{
case stone:
printf("电脑出石头\n");
printf("电脑胜利\n");
break;
case scissors:
printf("电脑出剪刀\n");
printf("平局\n");
break;
case cloth:
printf("电脑出布\n");
printf("玩家胜利\n");
break;
}
break;
case cloth:
printf("玩家出布\n");
switch (computer)
{
case stone:
printf("电脑出石头\n");
printf("玩家胜利\n");
break;
case scissors:
printf("电脑出剪刀\n");
printf("电脑胜利\n");
break;
case cloth:
printf("电脑出布\n");
printf("平局\n");
break;
}
break;
}
}
system("pause");
return 0;
}