關于簡易猜數字游戲的實作
對于今天的三子棋游戲,有以下幾個特性:
- 玩家通過輸入數字來選擇是否進行游戲或退出游戲,選錯時會提示并重新輸入
- 通過鍵盤輸入資料后,電腦會提示玩家所猜的資料過大或過小,若猜對則列印恭喜你,猜對了,然后讓玩家重新選擇是否重新進行游戲
- 亂數的范圍為1-100
廢話不多說,直接上代碼:>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void menu()
{
printf("**********************\n");
printf("****** 1.play *******\n");
printf("****** 0.exit *******\n");
printf("**********************\n");
}
void game()
{
int input2 = 0;
int ret = rand() % 100 + 1;//生成一個亂數;
while (1)
{
printf("請猜數字:>");
scanf("%d", &input2);
if (input2 < ret)
{
printf("猜小了\n");
}
else if (input2 > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜對了\n");
break;
}
}
}
int main()
{
int input1 = 0;
srand((unsigned int)time(NULL));//設定亂數的起點
do
{
menu();//此處的menu為選單函式
printf("請輸入數字:>");
scanf("%d", &input1);
switch(input1)
{
case 1:
printf("猜數字游戲\n");
game();
break;
case 0:
printf("退出程式\n");
break;
default:
printf("輸入錯誤,請重新輸入\n");
break;
}
} while (input1);
return 0;
}
各處代碼講解

關于主函式中的srand函式,為設定一個亂數起點,但若要生成一個亂數,還需要給他傳一個亂數,因此,我們想到了用時間來作為引數,并且強制轉換為(unsigned int)型別,來匹配srand的語法,
menu為我們自己創建的選單函式,用來輸出并提示玩家要輸入什么

關于do-while回圈:

因為游戲至少執行一次,因此用do while回圈來進行切入,其中的switch case用來判斷玩家輸入為幾來執行相應的結果
若選1.則進行游戲,若選0,則退出游戲,若選擇其他數字,則重新輸入
對game函式的講解:

game函式中,rand函式用來生成一個亂數,在while回圈中,玩家輸入的數字會與rand函式產生的亂數進行比較,如果輸入過小或過大,電腦都會進行提示,讓玩家重新輸入,若玩家猜對,則跳出回圈,讓玩家重新開始游戲或退出程式,
對于程式的一點變動

前面所列印的內容占了一部分螢屏,看起來好像不太爽,因此對程式進行以下改動:



這樣的話列印出來會變得漂亮一些(我個人是這么認為的)!,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/341982.html
標籤:其他
上一篇:Unity零基礎到進階 | Unity中的多執行緒的使用,普通創建Thread + 使用Loom插件創建
下一篇:利用C語言寫出簡單的猜數字小游戲
