Пример #1
0
    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);
        }
    }
Пример #2
0
    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);
        }
    }
Пример #3
0
 private void Readbtn_Click(object sender, EventArgs e)
 {
     foreach (string Line in JSONrtxt.Lines)
     {
         FormattedLines.Add(ReturnFormattedLine(Line));
     }
     FormatWorker.RunWorkerAsync();
 }