目錄
1.猜數字游戲的運行邏輯
1.先列印出選單供用戶選擇
2.構建游戲的邏輯
2.1創建并呼叫一個GAME函式
2.2系統出一個亂數
2.3用戶輸入資料,判斷資料對錯
2.使用到的函式
1.輸入輸出函式
2.亂數函式
明白這些就可以讓代碼飛起來了
1.1先列印出選單供用戶選擇
首先要自己創建一個選單(MENU)函式
選單必須實作選單的功能例如是開始游戲還是退出游戲而且要做到每次游戲結束都要詢問一次
所以在這里我們用到do while()回圈來實作每次的詢問及選擇
#include <stdio.h>
void MENU()
{
printf("*******************\n");
printf("**1.play***2.exit**\n"); //列印出選單供用戶選擇1為玩游戲0為退出
printf("*******************\n");
}
int main()
{
int input=0;
do
{
MENU(); //呼叫這個函式列印出選單
scanf("%d",&input); //用戶選擇開始游戲或者退出游戲
switch(input) //判斷用戶輸入的內容
{
case 1:
{
printf("游戲開始,請輸入猜的數字\n");
break;
}
case 0:
{
printf("游戲結束\n")
break;
}
default:
{
printf("輸入錯誤,請重新輸入")
}
}while(input) //這里是判斷如果為0就結束回圈如果為非0就繼續回圈
}
}
1.2構建游戲邏輯
1.2.1 創建并呼叫建一個game函式
#include <stdio.h>
void GAME()//創建一個函式
{
}
void MENU()
{
printf("*******************\n");
printf("**1.play***2.exit**\n");
printf("*******************\n");
}
int main()
{
int input=0;
do
{
MENU();
scanf("%d",&input);
switch(input)
{
case 1:
{
printf("游戲開始,請輸入猜的數字\n");
GAME();//呼叫一個GAME函式
break;
}
case 0:
{
printf("游戲結束\n")
break;
}
default:
{
printf("輸入錯誤,請重新輸入")
}
}while(input)
}
}
1.2.2 讓系統出一個亂數(rand()函式是出一個亂數)
注意:用rand呼叫的出的亂數在每次執行程式的時候出來的“亂數”都相同(偽亂數)所以要通過呼叫srand()函式來初始化一個亂數而srand所需要的引數是一個無符號亂數,無符號的亂數從哪來呢?這就不得不引出時間戳的概念 頭檔案#include <stdlib.h>
時間戳:是現在的時間與計算機誕生的時間的差值轉換成的數字,隨著時間一秒一秒的變化時間戳也在不停的變化,所以符合srand()的引數(由于srand()函式需要一個無符號的整型所以要將時間戳強制轉換)用time呼叫,頭檔案#include <time.h>
#include <stdio.h>
void GAME()
{
int r= rand();//呼叫一個隨機函式,用r存起來方便以后的判斷
}
void MENU()
{
printf("*******************\n");
printf("**1.play***2.exit**\n");
printf("*******************\n");
}
int main()
{
srand((unsigned int)time(null));//將隨機函式初始化
int input=0;
do
{
MENU();
scanf("%d",&input);
switch(input)
{
case 1:
{
printf("游戲開始,請輸入猜的數字\n");
GAME();
break;
}
case 0:
{
printf("游戲結束\n")
break;
}
default:
{
printf("輸入錯誤,請重新輸入")
}
}while(input)
}
}
1.2.3用戶輸入所猜的數并判斷
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void GAME()
{
int r = rand()%100;//%100是將隨機的數字限制在100以內縮小范圍
int i = 0;
while (1)//因為不可能一次性猜對,所以如果猜錯需要進入回圈繼續猜,猜對則跳出回圈
{
scanf("%d", &i); //輸入用戶輸入所猜的數
if (i > r)//判斷用戶所猜的數,并給出結果
{
printf("猜大了\n");
}
else if (i == r)
{
printf("恭喜你,猜對了\n");
break;
}
else
{
printf("猜小了\n");
}
}
}
void MENU()
{
printf("*******************\n");
printf("**1.play***2.exit**\n");
printf("*******************\n");
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
MENU();
scanf("%d", &input);
switch (input)
{
case 1:
{
printf("游戲開始,請輸入猜的數字\n");
GAME();
break;
}
case 0:
{
printf("游戲結束\n");
break;
}
default:
{
printf("輸入錯誤,請重新輸入");
}
}
} while (input);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342312.html
標籤:其他
