[問題] 佇列+堆疊的小遊戲

作者: Brothre23 (哈姆妍)   2016-03-10 21:23:11
https://gist.github.com/anonymous/024595e9b82c1c21fa6f
我在啊哈! 圖解演算法這本書裡讀到"小貓釣魚"這個章節
這是一個用堆疊和佇列來實作的小遊戲
規則是A和B手上各有六張牌(佇列) 分別打出到桌上(堆疊)
如果某人打出的牌和桌上某張牌相同時
那人就把相同的這兩張牌和中間所夾所有的牌全部拿走 依次放到手牌最後
打到最後還有剩牌的人是贏家 沒牌者是輸家
要輸出獲勝者和他手上的牌還有桌上的牌(如果有的話)
以A出牌的狀況來說 有問題的地方在67~87行 這部分是我自己寫的
書上的做法是被註解起來的88~94行
我的想法是因為要一直取牌直到拿到和自己打出的牌重復的那一張為止
因此需要判斷桌上最上方的牌是哪一種 如果和打出牌不同的話就繼續拿
反之相同的話就在拿完這最後一張後跳出迴圈
我用字元Y代表可以繼續拿 N代表停止
我覺得奇怪的地方是書上的做法看起來是桌上的牌和打出牌不同時才取牌
可是這樣不就沒辦法拿到最下面那一張重複的牌了嗎?
拜託板上神人幫小弟解惑@@ (高三生想讀資工系 正在預習
作者: LawlietDo (天才肚肚)   2016-03-11 00:09:00
如果你規則描述正確 而且書上其他部份的程式碼跟你寫的也相同 那個while的確會pop不出最下面重複的那張牌

Links booklink

Contact Us: admin [ a t ] ucptt.com