用物件導向的方式解說"殺手"這個遊戲:
第一個物件當然是"參賽者"
他有下列屬性:
他繼承"參賽者"的一切特性, 他另有一樣私有的成員函式是:
他是觸發事件的中心, 他的成員函式有:
當一群人出去玩無聊, 拿出牌來決定要玩殺手,
"殺手遊戲"這個物件就被創造, 接著初始化.
初始化要作的事情有:
上面這篇是 sk 很久以前寫的...
前陣子公司同事聚會,我教大家玩了兩盤「殺手」,
從前國樂團玩樂的美好回憶湧上心頭,特 po 此文紀念。 :D
第一個物件當然是"參賽者"
他有下列屬性:
- BOOL alive // true=活著, false=死了, default = true
- INT8 cunning // 參賽者的奸詐度, 0~100, default = 0
- 取牌,看,然後蓋回
- 翻牌示眾
- 低頭閉眼
- 抬頭睜眼
- 說話
- 表決
- 握手
- 留遺言
- 在一旁暗自啜泣
- 歡呼
他繼承"參賽者"的一切特性, 他另有一樣私有的成員函式是:
- 密謀殺人
他是觸發事件的中心, 他的成員函式有:
- 發牌
- 宣布黑夜來臨
- 宣布黎明
- 宣判死亡
- 主持表決
- 宣布握手
當一群人出去玩無聊, 拿出牌來決定要玩殺手,
"殺手遊戲"這個物件就被創造, 接著初始化.
初始化要作的事情有:
- 創造"主持人"*1
- 創造"參賽者"*n
- 主持人執行"發牌"的動作. (通常是2張黑牌,n-2張紅牌)
- 參賽者執行"取牌,看,然後蓋回"的動作
- 如果參賽者看到的是黑牌, 則"殺手"物件產生
- 主持人執行"宣布黑夜來臨"的動作
- 參賽者執行"低頭閉眼"的動作
- 殺手執行"抬頭睜眼"的動作
- 殺手執行"密謀殺人"的動作
- 殺手執行"低頭閉眼"的動作
- 主持人執行"宣布黎明"的動作
- 參賽者執行"抬頭睜眼"的動作
- 主持人執行"宣判死亡"的動作, 告訴參賽者剛剛誰死了
- 剛死的參賽者執行"翻牌示眾"的動作
- 剛死的參賽者執行"留遺言"的動作
- 剛死的參賽者執行"在一旁暗自啜泣"的動作
- 接著他的 alive 值被設為 false, 所有的成員函式被除能
- if (活著的參賽者數-活著的殺手數)=2
then goto SHAKE_HAND; - 參賽者執行"說話"的動作
- 主持人執行"主持表決"的動作
- 參賽者執行"表決"的動作, 由表決結果
- 主持人執行"宣判死亡"的動作, 告訴參賽者剛剛誰死了
- 剛死的參賽者執行"翻牌示眾"的動作
- 剛死的參賽者執行"在一旁暗自啜泣"的動作
- 接著他的 alive 值被設為 false, 所有的成員函式被除能
- 參賽者執行"說話"的動作
- if (活著的參賽者數-活著的殺手數)=2
then goto SHAKE_HAND;
else goto GAME_CYCLE;
- 主持人執行"宣布握手"的動作
- 參賽者執行"握手"的動作
- 唯有好人和好人握手, 好人方獲勝
- 其他情況都是殺手方獲勝
- 參賽者執行"歡呼"或是"在一旁暗自啜泣"的動作
上面這篇是 sk 很久以前寫的...
前陣子公司同事聚會,我教大家玩了兩盤「殺手」,
從前國樂團玩樂的美好回憶湧上心頭,特 po 此文紀念。 :D
全站熱搜
留言列表