コード例 #1
0
ファイル: WaveRun.cs プロジェクト: xoposhiy/icfpc2012
 private Tuple<Vector, Stack<RobotMove>> CreateTarget(WaveCell targetCell)
 {
     var moves = new Stack<RobotMove>(targetCell.StepNumber+1);
     var cell = targetCell;
     while (cell.PrevCell != null)
     {
         moves.Push(cell.Move);
         if(cell.PrevCell.RazorsLeft != cell.RazorsLeft)
             moves.Push(RobotMove.CutBeard);
         cell = cell.PrevCell;
     }
     return Tuple.Create(targetCell.Pos, moves);
 }
コード例 #2
0
ファイル: WaveRun.cs プロジェクト: xoposhiy/icfpc2012
 public WaveCell(Vector pos, int stepNumber, WaveCell prevCell, RobotMove move, int waterproofLeft, int razorsLeft)
 {
     Pos = pos;
     StepNumber = stepNumber;
     PrevCell = prevCell;
     Move = move;
     WaterproofLeft = waterproofLeft;
     RazorsLeft = razorsLeft;
 }