Beispiel #1
0
 private IEnumerable <IGameAction> GetPossiblePushActions()
 {
     for (var index = 0; index < MyUnits.Count; index++)
     {
         var unit = MyUnits[index];
         if (unit.X < 0)
         {
             continue;
         }
         foreach (var targetDir in Directions.All8)
         {
             var target = unit + targetDir;
             if (HisUnits.Any(u => u.X >= 0 && u.Equals(target)))
             {
                 foreach (var pushDir in targetDir.PushDirections())
                 {
                     if (CanMove(target, target + pushDir))
                     {
                         var action = new PushAndBuildAction(index, targetDir, pushDir);
                         EnsureMoveValid(action);
                         yield return(action);
                     }
                 }
             }
         }
     }
 }
Beispiel #2
0
        public override string ToString()
        {
            var map = Size.Times(y => Size.Times(x => heights[y, x]).StrJoin("")).StrJoin("\n");
            var my  = MyUnits.StrJoin("; ");
            var his = HisUnits.StrJoin("; ");

            return($"{map}\n{my}\n{his}\n{CurrentPlayer}");
        }
Beispiel #3
0
        public string Serialize()
        {
            var map = Size.Times(y => Size.Times(x => heights[y, x]).StrJoin("")).StrJoin("|");
            var my  = MyUnits.StrJoin("|");
            var his = HisUnits.StrJoin("|");

            return(string.Join("|", map, my, his));
        }
Beispiel #4
0
        public override string ToString()
        {
            var map = heights.StrJoin("\n", row => row.StrJoin(""));
            var my  = MyUnits.StrJoin("; ");
            var his = HisUnits.StrJoin("; ");

            return($"{map}\n{my}\n{his}\n{CurrentPlayer}");
        }
Beispiel #5
0
        public string Serialize()
        {
            var map = heights.StrJoin("|", row => row.StrJoin(""));
            var my  = MyUnits.StrJoin("|");
            var his = HisUnits.StrJoin("|");

            return(string.Join("|", map, my, his));
        }