예제 #1
0
        private void FillRowFromInfo(DataRow row, UciInfoResponse info)
        {
            row["Move"]     = Lan.LanToMoveWithSan(info.Fen, info.PV.Or(new List <string>()).FirstOrDefault());
            row["Depth"]    = info.Depth.Or(0);
            row["SelDepth"] = info.SelDepth.Or(0);
            var score = info.Score.Or(new UciScore(0, UciScoreType.Cp, UciScoreBoundType.Exact));

            row["Score"]    = score;
            row["ScoreInt"] = score.ToInteger() * GetSideToMoveScoreMultiplier();
            row["Time"]     = TimeSpan.FromSeconds(info.Time.Or(0) / 1000);
            row["Nodes"]    = info.Nodes.Or(0);
            row["NPS"]      = info.Nps.Or(0);
            row["MultiPV"]  = info.MultiPV.Or(0);
            row["TBHits"]   = info.TBHits.Or(0);
            row["PV"]       = Lan.PVToString(info.Fen, info.PV.FirstOrDefault());
        }