C++实现另一个猜数字游戏
生活随笔
收集整理的這篇文章主要介紹了
C++实现另一个猜数字游戏
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在 C語言實現(xiàn)一個簡單的猜數(shù)字游戲 中,我們用C語言實現(xiàn)了一個簡單的猜數(shù)字游戲,但是整個邏輯都在main()函數(shù)中,這種一個main函數(shù)從頭到尾的方式很不好,今天我們用C++來將這個程序改寫一下。 整個程序的大部分工作,實際上是由主持人這個角色完成的,包括確定最初的目標(biāo)數(shù)字,判斷猜測的數(shù)字大小,因此,我們可以將主持人抽象成Judge這個類,讓這個類來負責(zé)這些工作,而主函數(shù)則負責(zé)與之交互,完成游戲過程。
#include <iostream> #include <random> using namespace std;class Judge { public:Judge(){max = 100;min = 0;default_random_engine eng;random_device rnd_device;eng.seed(rnd_device());uniform_int_distribution<int> nums(min,max);target = nums(eng);}bool judge(int guess){++count;if(target == guess){return true;}else if(target > guess){cout<<"the target is greater than "<<guess<<endl;min = guess;return false;}else{cout<<"the target is less than "<<guess<<endl;max = guess;return false;}}int getmin(){return min;}int getmax(){return max;}int getcount(){return count;} private:int target;int max;int min;int count; };int main() {cout<<"WELCOME"<<endl;while(true){Judge j;while(true){cout<<"please guess a number between "<<j.getmin()<<" - "<<j.getmax()<<endl;int guess = 0;cin.sync();cin>>guess;if(cin.fail()){cin.clear();continue;}if(j.judge(guess)){cout<<"You WIN!"<<endl;break;}}cout<<"Do you want to play again?(Y-yes,N-no)";char c = 'Y';cin>>c;if('Y'!=toupper(c))break;}return 0; }這里,主要用到了C++中類的封裝機制以及C++11中隨機數(shù)的生成方式 其實,在這個程序中還有不完善的地方,比如對輸入的處理,對用戶提示等,有興趣的朋友,可以自己完善,鍛煉自己的動手能力。
轉(zhuǎn)自:http://www.howzhi.com/course/3387/lesson/42391
轉(zhuǎn)載于:https://www.cnblogs.com/kingshow123/p/cplusngame.html
總結(jié)
以上是生活随笔為你收集整理的C++实现另一个猜数字游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: URAL-1982 Electrific
- 下一篇: c++ STL:队列queue、优先队列