目錄
- 傳統藝能😎
- 過渡區🤣
- 正片開始👀
- 基本思路👏
- 整活!👏
- 優化👏
- 細節強調👏
- rand隨機值函式👏
- 時間戳👏
傳統藝能😎
小編是大一菜鳥不贅述,歡迎大佬指點江山(QQ:1319365055)
此前博客點我!點我!請搜索博主 【知曉天空之藍】點我!點我!請搜索博主 【知曉天空之藍】或掃碼進入!
喬喬的gitee代碼庫(打灰人 )歡迎訪問,點我!

(https://blog.51cto.com)感謝支持!
過渡區🤣
現在是北京時間10:38,普普通通的一天,忙的飛起,外加嚴重的感冒;上午的線代課剛完一個人回宿舍肝博客,下午滿課還要刷黨課,枯了……

正片開始👀
基本思路👏
顧名思義,猜字游戲就是指系統給出一個隨機值,我們去猜值,猜大猜小系統都會提示直到我們猜對,今天我們要去實作一個100以內的猜數字游戲,
我們首先要明確需要用到什么方法去實作:
1.C語言判斷句:判斷結果
2.回圈陳述句:實作多次猜值
3.亂數函式:系統分配亂數
4.自義定函式:實作游戲主體部分運行
整活!👏
# define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("------------------------------------\n");
printf("------------------------------------\n");
printf("-------1.P L A Y-----------\n");
printf("-------2.E X I T-----------\n");
printf("------------------------------------\n");
printf("------------------------------------\n");
}
void game()
{
int ret = rand() % 100 + 1;
int num = 0;
while (1)
{
printf("請猜數字:>");
scanf("%d", &num);
if (num == ret)
{
printf("猜對咯\n");
break;
}
else if (num > ret)
{
printf("踏實做人,猜大咯\n");
}
else
{
printf("格局打開,猜小了\n");
}
}
}
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;
}
運行結果如下:

優化👏
我們對于猜字游戲可以加上次數限制來增加游戲趣味性,改變我們的函式部分:
void game()
{
int ret = rand() % 100 + 1;
int num ,count= 0;
while (1)
{
if(count<11)
{
int tag = 10 - count;
printf("請猜數字,你還有%d次機會:>",tag);
scanf("%d", &num);
if (num == ret)
{
printf("猜對咯,你用了%d次\n",count+1);
break;
}
else if (num > ret)
{
printf("踏實做人,猜大咯\n");
count++;
}
else
{
printf("格局打開,猜小了\n");
count++;
}
}
else
{
printf("次數用盡,請重來!");
break;
}
}
}
我們把函式部分改成如上,就能成功的將次數 count限制在我們設定范圍內,并且還能附上一位計資料🤔,
細節強調👏
rand隨機值函式👏
需使用**#include<stdlib.h>**頭檔案
這里我們說的隨機值其實是偽隨機值,因為不管怎么說計算機要得到隨機值,總得代碼給它一個取值的標準,我們這里只是取了一個看似是隨機值的變數而已,
這里引入一個隨機值函式: int rand(void) 回傳一個范圍在 0 到 RAND_MAX 之間的偽亂數,RAND_MAX 是一個常量,它的默認值在不同的實作中會有所不同,但是值至少是 32767,
我們如果直接使用rand,會發現只會輸出一個特定值,這里又要引入一個srand函式:初始化亂數發生器,其基本格式如下:
void srand((unsigned int seed) time(&t));
rand()
這里的seed(種子)是一個整型值,它初始化隨機種子,會提供一個種子,這個種子會對應一個亂數,seed用于偽亂數生成演算法播種,上面的猜數字游戲就是把時間戳作為亂數的生成標準,
時間戳👏
這是什么玩意兒呢?
時間戳是指格林威治時間自1970年1月1日(00:00:00 GMT)至當前時間的總秒數,它也被稱為Unix時間戳(Unix Timestamp),通俗的講,時間戳是一份能夠表示一份資料在一個特定時間點已經存在的完整的可驗證的資料,
我們在猜數字游戲中用時間戳來給隨機值做參照,要使用頭檔案 #include<time.h>
我們這里取空值 time(NULL)來設定亂數標準,他的用法還有很多很復雜,具體情況我們日后再作分析,
今天就到這里吧家人們,摸了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342310.html
標籤:其他
