#include
#include
#include
#include
void printMenu(void)
{
printf("\t\t -------------------------------------------\n");
printf("\t\t| 石头剪刀布游戏 |\n");
printf("\t\t| ---------------------------- |\n");
printf("\t\t| |\n");
printf("\t\t| 说明: |\n");
printf("\t\t| 此小游戏是用C语言实现的结构化程序 |\n");
printf("\t\t| 设计,能够实现用户和电脑相互对玩的 |\n");
printf("\t\t| 过程,其中用户的出拳在下面有说明 |\n");
printf("\t\t| |\n");
printf("\t\t| 用户操作: |\n");
printf("\t\t| |\n");
printf("\t\t| 1-石头 2-剪刀 3-布 4-退出 |\n");
printf("\t\t -------------------------------------------\n\n\n");
}
int main(void)
{
char ch,Computer;
int win=0,lose=0,he=0; //分别统计赢、输、平手的次数
srand(time(NULL));//用系统时间来初始化随机数发生器
printMenu();
while(1)
{
printf("\t\t您的选择(1、2、3):");
while(1)
{
ch = getch();
if(ch=='1'||ch=='2'||ch=='3'||ch=='4')
{ //这里对输入做了限制,只能输入1到4之间的整数
printf("%c\t",ch);
break;
}
}
if(ch=='4') //如果按了4,则退出游戏。
break;
switch(ch)
{ //显示玩家选择的手型
case '1': printf("石头 VS ");
break;
case '2': printf("剪刀 VS ");
break;
case '3': printf("布 VS ");
break;
}
Computer = rand()%3+1+48;
//电脑随机产生1到3之间的整数,后面加上48的目的是将整数转换成字符
switch(Computer)
{
//显示电脑随机产生的手型
case '1':
printf("石头");
break;
case '2':
printf("剪刀");
break;
case '3':
printf("布");
break;
}
switch(ch-Computer)
{
//这里是比较输赢,通过计算0表示平手,-1和2表示胜利,1和-2表示输了。
case 0:
printf("\t平手!\n");
he++; break;
case -1: case 2:
printf("\t你赢了!\n");
win++;
break;
case 1: case -2:
printf("\t你输了!\n");
lose++;
break;
}
}
//如果游戏退出,则打印统计的结果
printf("\n\n\n");
printf("\t\t -------------------TOTAL-------------------\n");
printf("\t\t| 您一共玩了%d次 |\n",win+lose+he);
printf("\t\t ---------------------|-------------------- \n");
printf("\t\t| 胜利 | %d 次 |\n",win);
printf("\t\t ---------------------|-------------------- \n");
printf("\t\t| 失败 | %d 次 |\n",lose);
printf("\t\t ---------------------|-------------------- \n");
printf("\t\t| 平手 | %d 次 |\n",he);
printf("\t\t ---------------------|-------------------- \n");
return 0;
}