這是番外篇,但也算是我實作卡牌遊戲遇到的問題。因為我當初選擇的卡牌遊戲和一般集換式卡牌 (TCG) 不一樣,所以要處理相關問題。也趁這次一併分享吧,晚點會附上今天的進度
以組合為主的卡牌遊戲也算常見,一般我們在玩的大老二、麻將屬於這種。然後麻將只是表現形式不同,但其實也可以歸類成卡牌類的遊戲。
大部分組合為主的通常會具備兩種屬性:花色、點數。
從而衍生出三種組合形式:
要實作類似的卡牌組合,需要用計數器(counter)的工具。計算對子、三條、同花的時候很方便
比較麻煩的是「順子」,剛學程式的時候應該會覺得這蠻難的,程式不好寫,但學會排序之後應該會覺得很簡單吧?
先把牌從小到大排列,然後計算從第一個到最後一個,假如左邊比右邊大一就 count+1 ,到最後只要 count=4 就代表有順子。
處理組合的時候,比較適合用「統計」的觀點著手。先建立計數器 counter ,後續處理會方面許多。
這篇是我自己實作的卡牌遊戲才有的特點,但其他實作撲克牌遊戲的應該也會受用,所以分享