void menu()
{
printf("****************************\n");
printf("*** 1 . play 0 . exit ***\n");
printf("****************************\n");
}
void game()
{
printf("猜數字\n");
}
int main()
{
int input = 0;
do
{
menu();
printf("請選擇>:");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戲\n");
break;
default:
printf("選擇錯誤\n");
break;
}
}while(input);
return 0;
}
1.首先引入一個main主函式,然后引入子函式menu進行游戲開始界面設定,
2.然后進行do while回圈,如果玩家輸入1則進行游戲,跳出回圈,輸入0則結束游戲,而輸入其他數字則列印選擇錯誤并再次進入游戲界面,所以while()中我們可以放input,為真便進行回圈,
3.游戲界面如下:

4.我們首先輸入5,提示我們選擇錯誤,而我們選擇1后便進入游戲,0則退出游戲,
5.接下來我們便對游戲進行撰寫
6.首先我們需要產生一個亂數(用rand)
void game()
{
int ret=rand();
printf("%d\n",ret);
}`

7.通過多次實驗,我們發現每次都是相同的,那是因為我們在呼叫rand之前必須先呼叫srand
void game()
{
int ret=0;
srand(2);
ret=rand();
printf("%d\n",ret);
}

8.在使用srand后我們發現每次輸出亂數相同
9.這時我們需要將srand后面()內改為一個變化的值
void game()
{
int ret=0;
srand((unsigned int)time(NULL));
ret=rand();
printf("%d\n",ret);
}
10.這樣即可
void game()
{
int ret=0;
ret=rand()%100+1;
printf("%d\n",ret);
}
11.我們再次優化一下代碼,讓其生成1-100亂數
12.然后我們在通過if陳述句進行猜數字,總體代碼如下
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("****************************\n");
printf("*** 1 . play 0 . exit ***\n");
printf("****************************\n");
}
void game()
{
int ret=0;
int guess=0;
ret=rand()%100+1;
while(1)
{
printf("請猜數字:");
scanf("%d",&guess);
if(guess>ret)
{
printf("猜大了\n");
}
else if(guess<ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜對了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("請選擇>:");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戲\n");
break;
default:
printf("選擇錯誤\n");
break;
}
}while(input);
return 0;
}

這樣,我們就設計出了一款猜數字游戲,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277426.html
標籤:其他
上一篇:藍橋備戰準備記錄 1
