學技術,重在日拱一卒,一點一滴的積累。
今天,我們一起來分析C語言的算法:猜拳游戲
算法:這是一個簡單的猜拳游戲(剪刀、石頭、布),你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最后判斷勝負。
編程思路:用while語句嵌套switch語句實現。
程序范例
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char gamer; // 玩家出拳
int computer; //電腦出拳
int result; //比賽結果
/*為了避免玩一次游戲就退出程序,可以將代碼放在循環中*/
while (1)
{
printf("這是一個猜拳的小游戲,請輸入你要出的拳頭:\n");
printf("A:剪刀\nB:石頭\nC:布\nD:不玩了\n");
scanf("%c%*c",&gamer);
switch (gamer)
{
case 65: //A
case 97: //a
gamer=4;
break;
case 66: //B
case 98: //b
gamer=7;
break;
case 67: //C
case 99: //c
gamer=10;
break;
case 68: //D
case 100: //d
return 0;
default:
printf("你的選擇為 %c 選擇錯誤,退出...\n",gamer);
getchar();
system("cls"); // 清屏
return 0;
break;
}
/*隨機數種子*/
srand((unsigned)time(NULL));
/*產生隨機數并取余,得到電腦出拳*/
computer=rand()%3;
/*gamer為char類型,數學運算時要強制轉換類型*/
result=(int)gamer+computer;
printf("電腦出拳");
switch (computer)
{
case 0:printf("剪刀\n");break; //4 1
case 1:printf("石頭\n");break; //7 2
case 2:printf("布\n");break; //10 3
}
printf("你出了");
switch (gamer)
{
case 4:printf("剪刀\n");break;
case 7:printf("石頭\n");break;
case 10:printf("布\n");break;
}
if (result==6||result==7||result==11)
{printf("你贏了!");}
else if (result==5||result==9||result==10)
{printf("電腦贏了!");}
else
{printf("平手");}
/*暫停并清屏*/
system("pause>nul&&cls");
}
return 0;
}
程序運行結果
1.jpg (16.09 KB, 下載次數: 70)
下載附件
2022-9-21 09:44 上傳
2.jpg (15.68 KB, 下載次數: 61)
下載附件
2022-9-21 09:44 上傳
|