C语言详细实现猜拳游戏流程
#include
#include
#include
int draw = 0;//统计平局数
int lose = 0;//统计失败数
int win = 0;//统计获胜数
int human = 0;//玩家手势
int comp = 0;//计算机手势
int is_winer = 0;//判断胜负
void menu()
{
printf("****************************************
");
printf("*************** 猜拳游戏 ***************
");
printf("****************************************
");
printf("*************** 1.play ****************
");
printf("*************** 0.exit ****************
");
printf("****************************************
");
}
void Displayer(int comp, int human)//展示计算机和玩家出拳的函数
{
printf("计算机出的是:");
switch (comp)
{
case 0:
printf("石头
");
break;
case 1:
printf("剪刀
");
break;
case 2:
printf("布
");
break;
}
printf("玩家出的是:");
switch (human)
{
case 0:
printf("石头
");
break;
case 1:
printf("剪刀
");
break;
case 2:
printf("布
");
break;
}
}
//判断输赢
void disp_result(is_winer)
{
switch (is_winer)
{
case 0:
printf("平局
");
draw++;//平局次数加1
break;
case 1:
printf("计算机赢
");
lose++;//失败次数加1
break;
case 2:
printf("玩家赢
");
win++;//获胜次数加1
break;
}
}
void game()
{
printf("(0)-石头,(1)-剪刀,(2)-布
");
printf("猜拳游戏开始!!!
");
int number = 0;//猜拳次数
printf("请选择猜拳次数:");
scanf("%d", &number);
while (number)
{
comp = rand() % 3;//计算机出拳
printf("玩家出拳:");
do
{
scanf("%d", &human);//玩家出拳
printf("-----------猜拳游戏-------------
");
if (human < 0 || human > 2)
{
printf("输入错误,重新输入
");
}
is_winer = (human - comp + 3) % 3;
disp_result(is_winer);//判断输赢的函数
Displayer(comp, human);//展示出拳
} while (human < 0 || human > 2);//控制玩家输出范围是0~2
number--;
}
}
int main()
{
srand((int)time(NULL));
int input = 0;
do
{
menu();
printf("选择玩游戏还是退出游戏!!!
");
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏
");
break;
default:
printf("选择错误,重新选择
");
break;
}
} while (input);
//展示玩家成绩
printf("a
%d平 %d败 %d胜
", draw, lose, win);
return 0;
}