Exemplo n.º 1
0
 private void ToggleCurrentEditBlock(RadioButton radioButton, PuzzleVisualizer.BlockKind blockKind)
 {
     if (radioButton.Checked)
     {
         pathFinderPuzzleControl.EditBlockKind = blockKind;
     }
 }
        public static PuzzleVisualizer.BlockKind[,] ConvertMazeToPathFinderPuzzle(this Maze maze)
        {
            var puzzleBlocks = new PuzzleVisualizer.BlockKind[maze.Width, maze.Height];

            for (var x = 0; x < maze.Width; x++)
            {
                for (var y = 0; y < maze.Height; y++)
                {
                    if (maze[x, y] is Empty)
                    {
                        puzzleBlocks[x, y] = PuzzleVisualizer.BlockKind.Empty;
                    }
                    if (maze[x, y] is Wall)
                    {
                        puzzleBlocks[x, y] = PuzzleVisualizer.BlockKind.Wall;
                    }
                    if (maze[x, y] is Start)
                    {
                        puzzleBlocks[x, y] = PuzzleVisualizer.BlockKind.Start;
                    }
                    if (maze[x, y] is Finish)
                    {
                        puzzleBlocks[x, y] = PuzzleVisualizer.BlockKind.Finish;
                    }
                    var teleport = maze[x, y] as Teleport;
                    if (teleport != null)
                    {
                        switch (teleport.Address)
                        {
                        case 1:
                            puzzleBlocks[x, y] = PuzzleVisualizer.BlockKind.Teleport1;
                            break;

                        case 2:
                            puzzleBlocks[x, y] = PuzzleVisualizer.BlockKind.Teleport2;
                            break;

                        case 3:
                            puzzleBlocks[x, y] = PuzzleVisualizer.BlockKind.Teleport3;
                            break;

                        default:
                            puzzleBlocks[x, y] = PuzzleVisualizer.BlockKind.Empty;
                            break;
                        }
                    }
                }
            }
            return(puzzleBlocks);
        }