博弈遊戲取石子
阿新 • • 發佈:2019-01-24
一、遊戲思路:
歡迎來到“取石子”遊戲世界,這是一個減法遊戲。兩名對手交替從某給定的總數減去一個數,每個對手只能減去1或者2, 誰第一個把總數減到零或者更小的數算誰贏。比如說:
(1)、我們從數字8開始,你先動手;
(2)、你從總數裡減去2,還剩下6;
(3)、我也減去2,還剩下4;
(4)、你再減去2,還剩下2
(5)、我在減去2,等於零
(6)、我贏了
這是一個很簡單的遊戲,只需要考慮總數是的情況,不管你減去1還是2,我都可以在下一次把它減成零,從而獲勝。簡單的說,只要保證每次減後總數為3的倍數,那麼最後一定會贏,不信的話,現在你就可以跟身邊的這位測一測!!!
下面我將從程式設計角度來看問題,建立一個完整的遊戲,併為計算機準備一個最佳策略,使用者必須每一步都正確才能贏,一起來看看吧!!
二、遊戲程式碼:
//#include"stdafx"
#include<iostream>
using namespace std;;
int main ()
{
int total;
int n;
cout<<"歡迎來到取石子游戲"<<endl;
cout<<"\n"<<endl;
cout<<"請任意選擇一個數開始遊戲:"<<endl;
cin>>total;
while(true)
{
if(total%3 ==2)
{
total-=2;
cout <<"我要減去2 ,現在的數為"<<total<<endl;
cout<<"\n"<<endl;
}
else{
total-=1;
cout<<"我要減去1,現在的數字為:"<<total<<endl;
cout<<"\n" <<endl;
}
if(total<=0)
{
cout<<"我贏啦,你要加油喲"<<endl;
cout<<"\n"<<endl;
break;
}
cout<<"該你說要減去的數啦,記得只能減1或者2唷:〉"<<endl;
cin>>n;
cout<<"\n"<<endl;
while(n<1 ||n>2)
{
cout<<"每次只能減去1或者2, 你這人怎麼能耍賴皮呢!!! "<<endl;
cout<<"\n"<<endl;
cout<<"快點重新說你要減去幾!!!!"<<endl;
cin>>n;
}
total-=n;
cout<<"好啦,現在的數字為:"<<total<<endl;
if(total<=0)
{
cout<<"好吧,算你贏"<<endl;
break;
}
}
}
三、執行結果
俗話說,什麼樣的性格寫出什麼樣的程式碼,我這個大大咧咧宇宙無敵超級搗蛋鬼,寫出的遊戲自然十分俏皮了,你如果不喜歡遊戲裡面我的提示方式,可以新增你喜歡的語句,鄙人並不介意,那我就把草名寫的程式的執行結果展示給大家,見下圖:
四、簡單分析:
該程式十分基本,只要涉獵C或者C++的人肯定不難理解,主要運用while( )迴圈和if()…..else 判斷語句,另外,需要特別說明的是,在遊戲中,如果對手不按規則來,也就是說,他一旦減的數字不是1或者2,需要作出提醒,要求重新輸入。
五:特別說明:
本人學疏才淺,也是正走在編成路上的學者,不足之處還望海涵,另外,我會在寫一些學術部落格的同時,分享一些小遊戲,使得我們的程式設計之路更加有趣生動!!
good night (:>