拿子遊戲
歡迎來到二陽的學習課堂,下面怎麼設計乙個遊戲!
拿子遊戲。考慮下面這個遊戲:桌子上有一堆火柴,遊
戲開始時共有n根火柴,兩個玩家輪流拿走1根、2根、3根或4
根火柴,拿走最後一根火柴的玩家為獲勝方。請為先走的玩家
設計乙個制勝的策略(如果該策路存在)
1.問題分析
n根火柴,兩位玩家每次只能取1,2,3,4根火柴;取走最後一根火柴為贏家;若電腦為先手,n為5的倍數時,只要與電腦遊戲的玩家了解規律則一定會勝過電腦。
2.演算法分析:
電腦前期每走的一步盡量讓剩下的火柴為5的倍數,最後剩下小於5的火柴一併取走。
演算法實現:
#includeusing namespace std;
int n;//火柴個數
void print()//列印火柴個數
void computer()
else if (n % 5 == 0)
else if (n % 5 != 0)
}print();
cout << "hhhh,你要輸了,不信的話就接著來玩呀" << endl; }}
int main()
else}}
執行結果:
拿火柴遊戲
桌子上有一堆火柴,遊戲開始時共有n根火柴,兩個玩家輪流拿走1 2 3 4根火柴 選擇一種方案拿 拿走最後一根火柴的玩家為獲勝方。請問先走的玩家設計乙個制勝的策略 如果該策略存在 若桌子上只有只有1 4根火柴,那麼先手必贏 若桌子上只有5根火柴,那麼無論先手拿幾根都必輸 也就是意味著先手若要贏,那麼快...
拿石頭遊戲演算法題
有這樣乙個遊戲,桌上有一堆石子,每個人每次可以拿1到3塊石頭,誰最後一次拿走剩餘所有的石頭,則該玩家勝利。假設現在有2個玩家,而且這些玩家都是極為精通這個遊戲的。那麼要求寫乙個函式,引數為石子的數目,返回值為true和false。bool is first player win int n 當第乙個...
取火柴遊戲
玩完幾把遊戲後。突然想起了乙個比較老的遊戲 取火柴遊戲!遊戲規則簡單 不需要撿裝備,也沒有危險的空投。emm言歸正傳!有n根火柴,每人每次最多取4根火柴,最少取一根火柴。如果某人取到最後一根火柴,那麼恭喜你,輸了!emmm上 void quhuochai last last user if last...