目錄
- 一、選單
- 二、選擇
- 三、猜數字
- 三、全部代碼如下
前言
該怎樣實猜數字游戲,接下來跟著我一步一步來看
一、選單
我們居然是猜數字游戲肯定選單是少不了的,具體怎樣實作,來,看過來,不用過多的東西,我們用一個函式來實作
代碼如下
void mevc()
{
printf("********************\n");
printf("****** 1.play ******\n");
printf("****** 0.quit ******\n");
printf("********************\n");
}
這里是直接列印選單在螢屏上所以不用回傳值
玩家想玩游戲就選擇1,不想玩就選擇0
二、選擇
玩家可以根據自已來選擇,所以需要用scanf讓玩家輸入,然后根據輸出的值進入下一步
代碼如下:
int main()
{
mevc();
do
{
printf("請選擇游戲->");
scanf("%d", &input);
switch (input)
{
case 1:
play();
break;
case 0:
printf("退出游戲\n");
break;
default:
printf("選擇錯誤,繼續!!\n");
break;
}
} while (input);
return 0;
}
這里有多種選擇,所以用switch()陳述句來實作,知道玩游戲登進,都會有一次選擇,想玩或者不玩直接退出,所以do-while陳述句來實作
三.猜數字
接下來是主要實作猜數字游戲,這里我們定義一個函式來實作猜數字的代碼play()函式,選擇1我們就進入猜游戲中,既然是猜數字,那就要隨機產生一個數字供玩家猜測,這里涉及了一個函式rand(),該函式可以隨機產生一個數字,它回傳是一個整型0-32767的數字
代碼如下(示例):
void play()
{
int a = 0;
int ret = rand() % 100 + 1; //因為這里要實作1-100的亂數,所以%100-1就是1-100的數
while (1)
{
printf("請猜數字->");
scanf("%d",&a);
if (a<ret)
{
printf("猜小了,繼續\n");
}
else if (a>ret)
{
printf("猜大了,繼續\n");
}
else
{
printf("恭喜你,猜對了\n");
break; //猜對我們就跳出,重新選擇,break跳出整個回圈
}
}
}
這里我們有人經常范的錯誤就是把int ret = rand() % 100 + 1放在while回圈里,這樣的話每次猜數字都在變,就很難猜的對數字,要放外面
注意
這里用亂數要用到這個
srand((unsigned int)time(NULL));

經過測驗會發現,無論怎么產生亂數,再來玩一次總是重復這幾個數字,所以需要在rand前參考srand函式,但是srand函式又需要一個隨機值才能讓rand生成隨機值這時可以用時間戳來實作;至于時間戳,不懂得可以百度一下,它產生的數字是隨著時間在變化
四.全部代碼如下
//實作猜1-100的數字游戲
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
//選單
void mevc()
{
printf("********************\n");
printf("****** 1.play ******\n");
printf("****** 0.quit ******\n");
printf("********************\n");
}
//猜數字
void play()
{
int a = 0;
int ret = rand() % 100 + 1; //產生一個1-100的數字
//判斷
while (1)
{
printf("請猜數字->");
scanf("%d",&a);
if (a<ret)
{
printf("猜小了,繼續\n");
}
else if (a>ret)
{
printf("猜大了,繼續\n");
}
else
{
printf("恭喜你,猜對了\n");
break;
}
}
}
int main()
{
mevc();
int input = 0;
srand((unsigned int)time(NULL)); //時間戳
do
{
printf("請選擇游戲->");
scanf("%d", &input);
switch (input)
{
case 1:
play();
break;
case 0:
printf("退出游戲\n");
break;
default:
printf("選擇錯誤,繼續!!\n");
break;
}
} while (input);
return 0;
}
好了,就先到這,有興趣自己去玩下哈哈,如有什么建議下面評論哦,以上內容那里不懂也可以在下面評論,如有那里有錯多多包涵和指出,再見了大家!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413634.html
標籤:其他
上一篇:HENAU 冬令營 數學專題
