iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 19
0
自我挑戰組

卡牌連線遊戲開發經驗分享系列 第 19

#18-2 番外篇:以組合為主的卡牌構築實作 - 大老二、麻將

  • 分享至 

  • xImage
  •  

這是番外篇,但也算是我實作卡牌遊戲遇到的問題。因為我當初選擇的卡牌遊戲和一般集換式卡牌 (TCG) 不一樣,所以要處理相關問題。也趁這次一併分享吧,晚點會附上今天的進度

以組合為主的卡牌遊戲也算常見,一般我們在玩的大老二、麻將屬於這種。然後麻將只是表現形式不同,但其實也可以歸類成卡牌類的遊戲。

大部分組合為主的通常會具備兩種屬性:花色、點數。

從而衍生出三種組合形式:

  1. 純花色組合:同花*
  2. 純數字組合:一對、三條*、順子、一條龍
  3. 多重組合:兩對、葫蘆、鐵支、同花順
  • 註:台灣大老二無此組合

要實作類似的卡牌組合,需要用計數器(counter)的工具。計算對子、三條、同花的時候很方便

比較麻煩的是「順子」,剛學程式的時候應該會覺得這蠻難的,程式不好寫,但學會排序之後應該會覺得很簡單吧?

先把牌從小到大排列,然後計算從第一個到最後一個,假如左邊比右邊大一就 count+1 ,到最後只要 count=4 就代表有順子。

處理組合的時候,比較適合用「統計」的觀點著手。先建立計數器 counter ,後續處理會方面許多。

這篇是我自己實作的卡牌遊戲才有的特點,但其他實作撲克牌遊戲的應該也會受用,所以分享


上一篇
#18 進入卡片的世界:談卡牌操作的實作細節
下一篇
#19 卡牌層:以《爐石戰記》中的卡牌行動為例
系列文
卡牌連線遊戲開發經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言