Archer

Chii (Eat)

Calling the Interface

  • Use the Chii method from the MajsoulActions package to perform a discard.

Example Code

main.go go
package main

import (
  "github.com/moxcomic/Archer/internal/platform/actions"
  "github.com/moxcomic/lq"
)

const (
  E_PlayOperation_None           = iota
  E_PlayOperation_Discard
  E_PlayOperation_Chi
  E_PlayOperation_Pon
  E_PlayOperation_Ankan
  E_PlayOperation_Minkan
  E_PlayOperation_Kakan
  E_PlayOperation_RiiChi
  E_PlayOperation_Tsumo
  E_PlayOperation_Ron
  E_PlayOperation_JiuZhongJiuPai
  E_PlayOperation_Babei
  E_PlayOperation_HuanSanZhang
  E_PlayOperation_DingQue
  E_PlayOperation_Reveal
  E_PlayOperation_Unveil
  E_PlayOperation_LockTile
  E_PlayOperation_Revealliqi
)

func onExecute(result *lq.NotifyAIResult, risk []float64, r, m, f, t float64) {
  if result.GetResult()[0].GetType() == E_PlayOperation_Chi {
    if len(result.GetResult()[0].GetCombination()) != 2 {
      fmt.Println("Unable to retrieve the 'Chii' option")
      return
    }

    actions.NewMajsoulActions().Chii(result.GetResult()[0].GetCombination()[0], result.GetResult()[0].GetCombination()[1])
  }
}
  • In the onExecute function, we determine whether the current action is Chii by checking result.GetResult()[0].GetType(). If so, we retrieve the combination of tiles to perform the Chii from result.GetResult()[0].GetCombination() and call actions.NewMajsoulActions().Chii(result.GetResult()[0].GetCombination()[0], result.GetResult()[0].GetCombination()[1]) to eat the two tiles.
  • This is just an example. In actual usage, you may need to modify the code according to the real scenario.
  • For more on lq.NotifyAIResult, refer to NotifyAIResult.
  • For GetType, refer to Action Types.