コード例 #1
0
 public void Run()
 {
     while (!Board.Lost)
     {
         PrintBoardState();
         var moveWeights   = GetMoveWeights();
         var highestWeight = moveWeights.Values.Max();
         var highestDirs   = moveWeights.Where(kvp => kvp.Value == highestWeight)
                             .Select(kvp => kvp.Key);
         var recDir = highestDirs.Count() == 1 ? highestDirs.First()
                                               : XT.GetRandom(XT.EnumVals <Direction>().ToArray(), rnd);
         Board.Move(recDir);
         PrintMoveResults(moveWeights, recDir);
     }
     return;
 }
コード例 #2
0
ファイル: RandomPlay.cs プロジェクト: dipique/2048
 public override Dictionary <Direction, float> GetMoveWeights() => XT.EnumVals <Direction>().ToDictionary(k => k, k => 0f);