protected virtual void thinkSutehai(Hai addHai) { _action.SutehaiIndex = Tehai.getJyunTehaiCount(); Tehai tehaiCopy = new Tehai(Tehai); FormatWorker.setCounterFormat(tehaiCopy, null); int maxScore = getCountFormatScore(FormatWorker); for (int i = 0; i < tehaiCopy.getJyunTehaiCount(); i++) { Hai hai = tehaiCopy.removeJyunTehaiAt(i); FormatWorker.setCounterFormat(tehaiCopy, addHai); int score = getCountFormatScore(FormatWorker); if (score > maxScore) { maxScore = score; _action.SutehaiIndex = i; } tehaiCopy.insertJyunTehai(i, hai); } }
protected virtual void thinkReach() { _action.ReachSelectIndex = 0; List <int> reachHaiIndex = _action.ReachHaiIndexList; Tehai tehaiCopy = new Tehai(Tehai); int minScore = int.MaxValue; for (int i = 0; i < reachHaiIndex.Count; i++) { Hai hai = tehaiCopy.removeJyunTehaiAt(reachHaiIndex[i]); // reachHaiIndex[i], not i List <Hai> machiiHais; if (MahjongAgent.tryGetMachiHais(tehaiCopy, out machiiHais)) { for (int m = 0; m < machiiHais.Count; m++) { Hai addHai = machiiHais[m]; FormatWorker.setCounterFormat(tehaiCopy, addHai); int score = MahjongAgent.getAgariScore(tehaiCopy, addHai, JiKaze); if (score <= minScore) { minScore = score; _action.ReachSelectIndex = i; } } } tehaiCopy.insertJyunTehai(i, hai); } }
private void Readbtn_Click(object sender, EventArgs e) { foreach (string Line in JSONrtxt.Lines) { FormattedLines.Add(ReturnFormattedLine(Line)); } FormatWorker.RunWorkerAsync(); }