https://gist.github.com/anonymous/024595e9b82c1c21fa6f
我在啊哈! 图解算法这本书里读到"小猫钓鱼"这个章节
这是一个用堆叠和伫列来实作的小游戏
规则是A和B手上各有六张牌(伫列) 分别打出到桌上(堆叠)
如果某人打出的牌和桌上某张牌相同时
那人就把相同的这两张牌和中间所夹所有的牌全部拿走 依次放到手牌最后
打到最后还有剩牌的人是赢家 没牌者是输家
要输出获胜者和他手上的牌还有桌上的牌(如果有的话)
以A出牌的状况来说 有问题的地方在67~87行 这部分是我自己写的
书上的做法是被注解起来的88~94行
我的想法是因为要一直取牌直到拿到和自己打出的牌重复的那一张为止
因此需要判断桌上最上方的牌是哪一种 如果和打出牌不同的话就继续拿
反之相同的话就在拿完这最后一张后跳出循环
我用字符Y代表可以继续拿 N代表停止
我觉得奇怪的地方是书上的做法看起来是桌上的牌和打出牌不同时才取牌
可是这样不就没办法拿到最下面那一张重复的牌了吗?
拜托板上神人帮小弟解惑@@ (高三生想读资工系 正在预习