1. 程式人生 > >博弈遊戲取石子

博弈遊戲取石子

一、遊戲思路:

歡迎來到“取石子”遊戲世界,這是一個減法遊戲。兩名對手交替從某給定的總數減去一個數,每個對手只能減去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 (:>