剛學了C語言的一些知識,想嘗試著寫一個猜數字的小游戲,可能不太完善,有錯誤的地方還請大佬指出,
目錄
1.選單
2.選擇
3.game
4.全部代碼如下
1.選單
主函式不用寫過多的內容,一般寫出布局,具體的交給函式來進行即可,
既然是游戲,那就要有一個選單來讓玩家進行選擇,因此可以寫一個menu函式來實作
void menu()
{
printf("**********************\n");
printf("**** 1.開始游戲 ****\n");
printf("**** 0.退出游戲 ****\n");
printf("**********************\n");
}
因為不需要回傳值,所以可以直接用void,
2.選擇
玩家可以根據選單來選擇,所以需要用scanf讓玩家輸入,然后根據輸出的值進入下一步,
do
{
menu();
printf("請輸入:>");
scanf("%d", &x);//輸入選擇
switch (x)
{
case 1: game();//game函式實作玩法
break;
case 0:printf("已關閉游戲");
break;
default: printf("輸入錯誤,請重新輸入\n");
}
if (x == 0)
break;//退出游戲
} while (1);
因為有多種輸入可能,所以可以用switch來進行判斷,其中game實作怎么玩,
3.game
下面來寫game函式,既然是猜數字,那就要隨機產生一個數字供玩家猜測,這里涉及了一個函式-rand(),該函式可以隨機產生一個數字
printf("%d\n", rand());

但是經過測驗會發現,無論怎么產生亂數,再來一次總是重復這幾個數字這就需要在rand前參考srand函式,但是srand函式又需要一個隨機值才能讓rand生成隨機值這時可以用時間戳來實作;至于時間戳,不懂得可以百度一下,它產生的數字總是在變化,所以可以放入srand中,
srand((unsigned int)time());

為了可以得到1到100的數字,可以取余100加1實作;
printf("%d\n", rand()%100+1);

既然已經找到了可以產生亂數的方法,接下來就可以寫玩法了,其實很簡單,可以用if判斷來實作,
void game()
{
int x, num;
x = rand()%100+1;//產生亂數
//進行猜測
do
{
printf("請輸入:>");
scanf("%d", &num);
if (num > x)
printf("猜大了\n");
else if (num < x)
printf("猜小了\n");
else
{
printf("恭喜你,猜對了\n");
break;
}
} while (1);
}
4.全部代碼如下
//猜1-100之間的數字
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("**********************\n");
printf("**** 1.開始游戲 ****\n");
printf("**** 0.退出游戲 ****\n");
printf("**********************\n");
}
void game()
{
int x, num;
x = rand()%100+1;//產生亂數
//進行猜測
do
{
printf("請輸入:>");
scanf("%d", &num);
if (num > x)
printf("猜大了\n");
else if (num < x)
printf("猜小了\n");
else
{
printf("恭喜你,猜對了\n");
break;//退出回圈,回到主函式
}
} while (1);
}
int main()
{
int x;
srand((unsigned int)time(NULL));//用于產生亂數字,在rand前
do
{
menu();
printf("請選擇:>");
scanf("%d", &x);//輸入選擇
switch (x)
{
case 1: game();//game函式實作玩法
break;
case 0:printf("已關閉游戲");
break;
default: printf("輸入錯誤,請重新輸入\n");
}
if (x == 0)
break;//退出游戲
} while (1);
return 0;
}
當然,為了美觀一些;也可以用system(“cls”)和sleep()等方法來構造更完美的程式,
初學C語言,如有錯誤還請大佬指正,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413637.html
標籤:其他
上一篇:C語言小專案之猜數字
