C語言實(shí)現(xiàn)猜數(shù)字小游戲的示例代碼
一、猜數(shù)字小游戲
使用循環(huán)語句、分支語句和函數(shù)實(shí)現(xiàn),游戲內(nèi)容為輸入0~100之間的數(shù)字,根據(jù)提示信息判斷自己猜的數(shù)字和隨機(jī)生成的數(shù)字哪個(gè)大哪個(gè)小,并根據(jù)提示信息輸入合適的數(shù)字以便更快的通過游戲。
1.演示效果
2.完整代碼
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <time.h> #include <stdlib.h> void menu()//菜單 { printf("************************\n"); printf("**歡迎來到猜數(shù)字小游戲**\n"); printf("**** 1.開始游戲 *****\n"); printf("**** 2.結(jié)束游戲 *****\n"); printf("************************\n"); } void game() { int ret = rand() % 100 + 1;//生成0~100之間的隨機(jī)數(shù) int guess = 0; int i = 0; while (guess != ret)//當(dāng)猜的數(shù)字和rand隨機(jī)生成的數(shù)字相同時(shí),循環(huán)終止 { printf("請輸入你要猜的數(shù)字(0~100):"); scanf("%d", &guess); if (guess > ret) { printf("猜大了!\n"); } else if (guess < ret) { printf("猜小了!\n"); } else { printf("恭喜你,猜對了!\n"); break; } } } int main() { srand((unsigned int)time(NULL));//生成不同的數(shù)用來初始化rand的初始值 int input = 0; do { menu();//菜單函數(shù) printf("請選擇>:"); scanf("%d", &input); switch (input) { case 1: game();//調(diào)用game()函數(shù) break; case 2: printf("游戲結(jié)束!"); break; default: printf("選擇錯(cuò)誤,請重新選擇!\n"); break; } } while (input != 2); return 0; }
二、代碼解析
1.游戲主體函數(shù)
void game() { int ret = rand() % 100 + 1;//生成0~100之間的隨機(jī)數(shù) int guess = 0; int i = 0; while (guess != ret)//當(dāng)猜的數(shù)字和rand隨機(jī)生成的數(shù)字相同時(shí),循環(huán)終止 { printf("請輸入你要猜的數(shù)字(0~100):"); scanf("%d", &guess); if (guess > ret) { printf("猜大了!\n"); } else if (guess < ret) { printf("猜小了!\n"); } else { printf("恭喜你,猜對了!\n"); break; } } }
在C語言中,rand函數(shù)可以用來產(chǎn)生隨機(jī)數(shù),但并不是真正意義上的隨機(jī)數(shù),它是返回介于0~RAND_MAX之間的偽隨機(jī)整數(shù),但是在系統(tǒng)正常使用的情況下,產(chǎn)生的偽隨機(jī)整數(shù)是固定的。為了初始化的值不同,C語言提供了srand函數(shù)。
2.菜單函數(shù)
void menu()//菜單 { printf("************************\n"); printf("**歡迎來到猜數(shù)字小游戲**\n"); printf("**** 1.開始游戲 *****\n"); printf("**** 2.結(jié)束游戲 *****\n"); printf("************************\n"); }
3.頭文件以及主函數(shù)
#include <stdio.h> #include <time.h> #include <stdlib.h> int main() { srand((unsigned int)time(NULL));//生成不同的數(shù)用來初始化rand的初始值 int input = 0; do { menu();//菜單函數(shù) printf("請選擇>:"); scanf("%d", &input); switch (input) { case 1: game();//調(diào)用game()函數(shù) break; case 2: printf("游戲結(jié)束!"); break; default: printf("選擇錯(cuò)誤,請重新選擇!\n"); break; } } while (input != 2); return 0; }
srand((unsigned int)time(NULL))中調(diào)用srand函數(shù)需要頭文件<stdlib.h>,同時(shí)使用系統(tǒng)時(shí)間來初始化需要包含頭文件<time.h>,srand函數(shù)一般使用時(shí)間戳,采用系統(tǒng)時(shí)間來初始化,使用time函數(shù)來獲得系統(tǒng)時(shí)間,然后將time_t型數(shù)據(jù)轉(zhuǎn)化為(unsigned)型再傳給srand函數(shù)。這樣使用rand時(shí),每次產(chǎn)生的隨機(jī)數(shù)都不相同。
以上就是C語言實(shí)現(xiàn)猜數(shù)字小游戲的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C語言猜數(shù)字游戲的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C語言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn)
本文主要介紹了C語言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05C++標(biāo)準(zhǔn)庫bitset類型的簡單使用方法介紹
這篇文章主要介紹了C++標(biāo)準(zhǔn)庫bitset類型的簡單使用方法,需要的朋友可以參考下2017-07-07Qt實(shí)現(xiàn)數(shù)據(jù)進(jìn)行加密、解密的步驟
本文主要介紹了Qt實(shí)現(xiàn)數(shù)據(jù)進(jìn)行加密、解密的步驟,包含QCryptographicHash和Qt-AES兩種庫的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03