拿火柴遊戲(拿子遊戲)

2021-09-28 14:45:51 字數 802 閱讀 7475

拿子遊戲
歡迎來到二陽的學習課堂,下面怎麼設計乙個遊戲!

拿子遊戲。考慮下面這個遊戲:桌子上有一堆火柴,遊

戲開始時共有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...