- Use the
Pon method from the MajsoulActions package to perform a Pon (meld).
package main
import (
"github.com/moxcomic/Archer/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_Pon {
if len(result.GetResult()[0].GetCombination()) != 2 {
fmt.Println("Unable to retrieve the 'Pon' option")
return
}
actions.NewMajsoulActions().Pon(result.GetResult()[0].GetCombination()[0], result.GetResult()[0].GetCombination()[1])
}
}
- In the
onExecute function, we check if the current operation is a Pon by calling result.GetResult()[0].GetType(). If it is, we retrieve the Pon tile combination from result.GetResult()[0].GetCombination() and call actions.NewMajsoulActions().Pon(result.GetResult()[0].GetCombination()[0], result.GetResult()[0].GetCombination()[1]) to execute the meld. - This is just an example. In actual usage, you may need to modify the code according to real-world scenarios.
- For more on
lq.NotifyAIResult, refer to NotifyAIResult. - For
GetType, refer to Action Types.