C語言實(shí)現(xiàn)簡單的猜數(shù)字游戲
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)簡單的猜數(shù)字游戲的具體代碼,供大家參考,具體內(nèi)容如下
1.游戲介紹
此游戲是電腦隨機(jī)生成一個1-99的數(shù)字(生成數(shù)字范圍可自行更改),然后玩家一直猜數(shù)字,最終猜對為止。廢話不多說,直接上完整代碼。
2.游戲完整代碼
#include<stdio.h> #include<time.h> #include<stdlib.h> ? int juge(int guess,int number) { ?? ?int t=0; ?? ?if(guess==number) ?? ?{ ?? ??? ?t=1; ?? ?}else if(guess>number){ ?? ??? ?t=2; ?? ?}else if(guess<number){ ?? ??? ?t=3; ?? ?} ?? ?return t; } int main() { ?? ?srand(time(NULL)); ?? ?int number=rand()%100+1; ?? ?int count=1; ?? ?int guess; ?? ?printf("電腦已經(jīng)隨機(jī)生成了一個100以內(nèi)的數(shù)字\n"); ?? ?while(1) ?? ?{ ?? ? ?? ?printf("請輸入您第%d次猜測的數(shù)字:\n",count); ?? ?scanf("%d",&guess); ?? ?int p=juge(guess,number); ?? ?if(p==1) ?? ?{ ?? ??? ?break; ?? ?}else if(p==2) ?? ?{ ?? ??? ?printf("你猜的數(shù)大了\n"); ?? ?}else{ ?? ??? ?printf("你猜的數(shù)小了\n"); ?? ?} ?? ?count++; } ? printf("恭喜您猜對了,這個數(shù)是:%d\n",number); ? printf("您一共用了%d次\n",count); ? return 0; }
3.游戲效果
4.代碼解析
time(NULL),是獲取從1970年1月1日到現(xiàn)在的總秒數(shù),srand(time(NULL))表示設(shè)置一個隨機(jī)種子,每次運(yùn)行都能保證隨機(jī)種子不同。而rand()是產(chǎn)生一個隨機(jī)數(shù),但這是偽隨機(jī)數(shù),srand(time(NULL))和rand()同時(shí)使用就能滿足產(chǎn)生一個隨機(jī)數(shù)的效果了。 用了一個juge函數(shù)去判斷每一輪猜的數(shù)字與隨機(jī)數(shù)的大小判斷,然后進(jìn)行相應(yīng)的輸出
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++使用expected實(shí)現(xiàn)優(yōu)雅的錯誤處理
C++ 中提供了很多中方式進(jìn)行錯誤處理。無論是通過拋異常還是通過錯誤碼,標(biāo)準(zhǔn)庫都提供相應(yīng)的調(diào)用,今天本文為大家介紹的是使用expected進(jìn)行錯誤處理,感興趣的可以了解一下2023-06-06C++標(biāo)準(zhǔn)模板庫vector的常用操作
今天小編就為大家分享一篇關(guān)于C++標(biāo)準(zhǔn)模板庫vector的常用操作,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12C語言中字符串和數(shù)字的相互轉(zhuǎn)換實(shí)現(xiàn)代碼
以下是對C語言中字符串和數(shù)字的相互轉(zhuǎn)換實(shí)現(xiàn)代碼進(jìn)行了分析介紹,需要的朋友可以參考下2013-07-07Qt自定義控件實(shí)現(xiàn)進(jìn)度儀表盤
這篇文章主要介紹了Qt自定義控件實(shí)現(xiàn)進(jìn)度儀表盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12C++ Dijkstra算法之求圖中任意兩頂點(diǎn)的最短路徑
這篇文章主要為大家詳細(xì)介紹了用C++經(jīng)典算法-Dijkstra算法求任意兩頂點(diǎn)之間的最短路徑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11