C語言實(shí)現(xiàn)猜數(shù)字小游戲的示例代碼
一、猜數(shù)字小游戲的要求
猜數(shù)字小游戲是我們小時(shí)候喜歡我們一個(gè)經(jīng)典小游戲,在本文中,猜數(shù)字小游戲主要的功能如下所示
1.登入猜數(shù)字小游戲系統(tǒng),顯示小時(shí)歡迎界面。
2.用戶猜的數(shù)字有系統(tǒng)隨機(jī)在1-20之間生成。
3.用戶可以有5次機(jī)會(huì)猜這個(gè)隨機(jī)生成的數(shù)字。
4.若用戶猜大了,則系統(tǒng)會(huì)顯示猜大了,并提示還有多少猜數(shù)字的機(jī)會(huì)。
5.若5次都沒有猜中系統(tǒng)隨機(jī)生成的數(shù)字,則游戲結(jié)束。
二、猜數(shù)字小游戲?qū)崿F(xiàn)的過程
2.1項(xiàng)目創(chuàng)建
使用VS2019創(chuàng)建一個(gè)名為GuessNumber的C語言項(xiàng)目,并在GuessNumber項(xiàng)目中創(chuàng)建Main.c源文件和Main.h頭文件。
2.2頭文件內(nèi)容
在Main.h頭文件中,將有關(guān)的頭文件包含進(jìn)來,如下所示
#include <stdio.h> #include <stdlib.h> #include <time.h>
在聲明兩個(gè)函數(shù),如下所示
// 顯示菜單 void menu(); // 猜數(shù)字游戲功能 void gameGuess();
其中,menu函數(shù)的功能是顯示猜數(shù)字小游戲的初始化界面,并提供猜數(shù)字小游戲的相關(guān)說明。gameGuess函數(shù)的功能是整個(gè)猜數(shù)字游戲的核心,在gameGuess中主要是實(shí)現(xiàn)用戶猜數(shù)字的功能,并且給用戶提供友好的提示功能。
2.3源文件內(nèi)容
首先將頭文件包含進(jìn)來
#define _CRT_SECURE_NO_WARNINGS #include "Main.h"
其中#define _CRT_SECURE_NO_WARNINGS是為了使編譯器沒有警告。
main函數(shù)中添加代碼如下
system("color 3E"); int select = 0; //防止出現(xiàn)的隨機(jī)數(shù)一樣 srand((unsigned int)time(NULL)); //利用循環(huán)實(shí)現(xiàn)可以多次玩 do { menu(); printf("請(qǐng)輸入選項(xiàng):"); scanf("%d", &select); switch (select) { case 1: gameGuess(); break; case 0: break; default: printf("選擇錯(cuò)誤\n"); system("pause"); system("cls"); break; } } while (select); printf("歡迎下次使用,再見?。?!\n"); system("pause"); return 0;
首先定義select 變量,根據(jù)用戶輸入的值,給變量select 賦值,從而進(jìn)入相應(yīng)的函數(shù),進(jìn)而實(shí)現(xiàn)相關(guān)的功能。
srand是為了防止出現(xiàn)的隨機(jī)數(shù)一樣。
根據(jù)輸入的select值,進(jìn)入switch 分支語句進(jìn)行判斷。
menu函數(shù)如下
// 顯示菜單 void menu() { printf("**********************************************************\n"); printf("* 歡迎來到猜數(shù)字小游戲\n"); printf("* 規(guī)則說明\n"); printf("* 猜的數(shù)字為1-20\n"); printf("* 共有5次機(jī)會(huì)\n"); printf("* 歡迎猜中數(shù)字哦?。。n\n"); printf("* 1.開始游戲\n"); printf("* 0.退出游戲\n"); printf("**********************************************************\n\n"); }
其主要的功能是顯示系統(tǒng)的菜單功能,給用戶提示猜數(shù)字小游戲應(yīng)該如何進(jìn)行。
gameGuess函數(shù)如下
//猜數(shù)字游戲功能函數(shù) void gameGuess() { int num = 0, input = 0, count = 0; num = rand() % 20 + 1;//獲取1-100的一個(gè)隨機(jī)數(shù) while (count != 5)//利用if循環(huán)判斷 { printf("請(qǐng)輸入數(shù)字:"); scanf("%d", &input); if (input == num) { printf("恭喜啦,你猜的數(shù)字是對(duì)的!??!\n"); break; } else if (input < num) { printf("你猜小了\n"); } else { printf("你猜大了\n"); } count++; if (count == 5) { printf("很遺憾,5次機(jī)會(huì)用完了,你沒有猜對(duì)!??!\n\n"); printf("正確答案是:%d\n", num); break; } printf("你還有:%d次機(jī)會(huì)\n\n", 5 - count); } system("pause"); system("cls"); }
使用系統(tǒng)庫(kù)函數(shù)rand隨機(jī)生成一個(gè)1-20的數(shù)字,賦值給變量num ,然后根據(jù)輸入的變量input值是否相等使用 == 進(jìn)行判斷。
count主要用于判斷用戶還有多少次猜數(shù)字的機(jī)會(huì)。
三、猜數(shù)字小游戲調(diào)試結(jié)果如下
1.進(jìn)入系統(tǒng),輸入數(shù)字1
2.猜對(duì)的調(diào)試結(jié)果
3.沒有猜對(duì)的調(diào)試結(jié)果
四、基于猜數(shù)字小游戲的總結(jié)
本文的猜數(shù)字小游戲讓我們對(duì)于C語言的入門可以得到有效的提高,對(duì)于srand函數(shù)、rand函數(shù),Switch語句、while循環(huán)、if條件判據(jù)等C語言知識(shí)點(diǎn)可以進(jìn)一步的掌握。
五、完整代碼
Main.h頭文件
#pragma once #include <stdio.h> #include <stdlib.h> #include <time.h> // 顯示菜單 void menu(); // 猜數(shù)字游戲功能 void gameGuess();
Main.c源文件
#define _CRT_SECURE_NO_WARNINGS #include "Main.h" int main() { system("color 3E"); int select = 0; //防止出現(xiàn)的隨機(jī)數(shù)一樣 srand((unsigned int)time(NULL)); //利用循環(huán)實(shí)現(xiàn)可以多次玩 do { menu(); printf("請(qǐng)輸入選項(xiàng):"); scanf("%d", &select); switch (select) { case 1: gameGuess(); break; case 0: break; default: printf("選擇錯(cuò)誤\n"); system("pause"); system("cls"); break; } } while (select); printf("歡迎下次使用,再見?。?!\n"); system("pause"); return 0; } // 顯示菜單 void menu() { printf("**********************************************************\n"); printf("* 歡迎來到猜數(shù)字小游戲\n"); printf("* 規(guī)則說明\n"); printf("* 猜的數(shù)字為1-20\n"); printf("* 共有5次機(jī)會(huì)\n"); printf("* 歡迎猜中數(shù)字哦!??!\n\n"); printf("* 1.開始游戲\n"); printf("* 0.退出游戲\n"); printf("**********************************************************\n\n"); } //猜數(shù)字游戲功能函數(shù) void gameGuess() { int num = 0, input = 0, count = 0; num = rand() % 20 + 1;//獲取1-100的一個(gè)隨機(jī)數(shù) while (count != 5)//利用if循環(huán)判斷 { printf("請(qǐng)輸入數(shù)字:"); scanf("%d", &input); if (input == num) { printf("恭喜啦,你猜的數(shù)字是對(duì)的?。。n"); break; } else if (input < num) { printf("你猜小了\n"); } else { printf("你猜大了\n"); } count++; if (count == 5) { printf("很遺憾,5次機(jī)會(huì)用完了,你沒有猜對(duì)?。?!\n\n"); printf("正確答案是:%d\n", num); break; } printf("你還有:%d次機(jī)會(huì)\n\n", 5 - count); } system("pause"); system("cls"); }
到此這篇關(guān)于C語言實(shí)現(xiàn)猜數(shù)字小游戲的示例代碼的文章就介紹到這了,更多相關(guān)C語言猜數(shù)字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(鏈表)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06深入分析C語言存儲(chǔ)類型與用戶空間內(nèi)部分布
這篇文章主要介紹了C語言存儲(chǔ)類型與用戶空間內(nèi)部分布,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-12-12epoll多路復(fù)用的一個(gè)實(shí)例程序(C實(shí)現(xiàn))
這篇文章主要為大家詳細(xì)介紹了epoll多路復(fù)用的一個(gè)實(shí)例程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08OpenCV實(shí)現(xiàn)簡(jiǎn)單錄屏功能
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)簡(jiǎn)單錄屏功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01C++基于socket UDP網(wǎng)絡(luò)編程實(shí)現(xiàn)簡(jiǎn)單聊天室功能
這篇文章主要為大家詳細(xì)介紹了C++基于socket UDP網(wǎng)絡(luò)編程實(shí)現(xiàn)簡(jiǎn)單聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07C++調(diào)用C函數(shù)報(bào)錯(cuò)無法解析的外部命令/無法解析的外部符號(hào)問題
這篇文章主要介紹了C++調(diào)用C函數(shù)報(bào)錯(cuò)無法解析的外部命令/無法解析的外部符號(hào)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08C語言詳細(xì)分析講解關(guān)鍵字goto與void的作用
我們?cè)贑語言中經(jīng)常會(huì)見到void,也會(huì)偶爾見到goto,那么C語言中既然有g(shù)oto,為什么我們?cè)诖a中見的很少呢?在以前很多的項(xiàng)目經(jīng)驗(yàn)中,我們得到這樣一條潛規(guī)則:一般項(xiàng)目都是禁用goto的,程序質(zhì)量與goto的出現(xiàn)次數(shù)成反比。自后也就造成了我們一般不會(huì)使用goto2022-04-04