#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define HUMANWIN 0
#define COMPUTERWIN 1
int get_computer(void)
{
int computer;
srand((unsigned)time(NULL));
computer = rand() % 3 + 1;
return computer;
}
int get_human(void)
{
int human;
printf("请出拳(1剪刀/2石头/3布/0退出)-> ");
scanf("%d", &human);
while (human < 0 || human > 3)
{
printf("出拳错误,请重新出拳(只需要输入数字即可)-> ");
scanf("%d", &human);
}
return human * 3;
}
void welcome(void)
{
printf("\n########################\n");
printf("# 欢迎来到猜拳小游戏! #\n");
printf("########################\n\n");
}
void gameover(int winner)//这里和main中这个的关系是什么,winner是电脑或人胜利者就触发吗,那为什么还有else
{
if (winner)
{
printf("\n#########################################################################\n");
printf("# #\n");
printf("# ## ## #### ## ## ## #### ###### ######## #\n");
printf("# ## ## ## ## ## ## ## ## ## ## ## #\n");
printf("# #### ## ## ## ## ## ## ## ## ## #\n");
printf("# ## ## ## ## ## ## ## ## ###### ####### #\n");
printf("# ## ## ## ## ## ## ## ## ## ## #\n");
printf("# ## ## ## ## ## ## ## ## ## ## #\n");
printf("# ## #### ##### ####### #### ###### ######## #\n");
printf("# #\n");
printf("#########################################################################\n");
}
else
{
printf("\n##########################################################################\n");
printf("# #\n");
printf("# ## ## #### ## ## ## ## ###### ## ## #\n");
printf("# ## ## ## ## ## ## ## ## ## ## ### ## #\n");
printf("# #### ## ## ## ## ## #### ## ## ## # ## #\n");
printf("# ## ## ## ## ## ## ## ## ## ## ## # ## #\n");
printf("# ## ## ## ## ## ## ## ## ## ## ## # ## #\n");
printf("# ## ## ## ## ## ### ### ## ## ### #\n");
printf("# ## #### ##### # # ###### ## ## #\n");
printf("# #\n");
printf("##########################################################################\n");
}
}
int main(void)
{
int human, computer; // 1、2、3分别代表剪刀石头和布
int result;
int human_win = 0;
int computer_win = 0;
welcome();
while (1)
{
human = get_human();
computer = get_computer();
// 用户输入0表示退出游戏
if (human == 0)
{
break;
}
printf("你出");
switch (human)
{
case 3: printf("剪刀,"); break;
case 6: printf("石头,"); break;
case 9: printf("布,"); break;
}
printf("我出");
switch (computer)
{
case 1: printf("剪刀,"); break;
case 2: printf("石头,"); break;
case 3: printf("布,"); break;
}
result = human + computer;
// 你出剪刀,电脑出布:3 + 3 == 6
// 你出石头,电脑出剪刀:6 + 1 == 7
// 你出布,电脑出石头:9 + 2 == 11
// 以上三种情况算你赢~
if (result == 6 || result == 7 || result == 11)
{
printf("你赢了!\n\n");
human_win++;
}
else if (result == 5 || result == 9 || result == 10)
{
printf("我赢了!\n\n");
computer_win++;
}
else
{
printf("咱打平!\n\n");
}
}
// 打平也算人类
if (human_win >= computer_win)//这里任意一个都可以出发winner吗
{
gameover(HUMANWIN);
}
else
{
gameover(COMPUTERWIN);
}
}
多了一个 ]}void gameover(int winner)//这里和main中这个的关系是什么,winner是电脑或人胜利者就触发吗,那为什么还有else
|