public DrawMaze(Maze.RecursiveMazeGenerator m, int thickness, int imageSize, int mazeSize) { this.m = m; this.thickness = thickness; this.imageSize = imageSize; this.mazeSize = mazeSize; ((MainWindow)System.Windows.Application.Current.MainWindow).Background = System.Windows.Media.Brushes.Black; double mazeCelllSize = (imageSize + 2 * thickness) * mazeSize; double marg = (((MainWindow)System.Windows.Application.Current.MainWindow).Width - (mazeCelllSize)) / 2; ((MainWindow)System.Windows.Application.Current.MainWindow).canvas.Margin = new Thickness(marg, 2 * marg, marg, marg);// відступ ігрового поля Create(((MainWindow)System.Windows.Application.Current.MainWindow).canvas, m); }
public GameInitialization(int mazeSize) { try { this.mazeSize = mazeSize; SizeAccuracy(); Maze.RecursiveMazeGenerator m = new Maze.RecursiveMazeGenerator(mazeSize, mazeSize); DrawMaze dm = new DrawMaze(m, thickness, imageSize, mazeSize); GameScore gs = new GameScore(mazeSize, ghostTimer, pacmanTimer); WinOrLose wol = new WinOrLose(); gs.WinGame += wol.Message; PacmanMovement pm = new PacmanMovement(m.MyMaze, thickness, imageSize, gs, pacmanTimer); ScoreVisualization sv = new ScoreVisualization(pm.gs); if (mazeSize >= 5) { GhostMovement yellow = new GhostMovement(m.MyMaze, pm.pacman, thickness, imageSize, @".\Images\yellow.png", rand, ghostTimer, pm.moveTimer); yellow.LoseGame += wol.Message; } if (mazeSize >= 6) { GhostMovement red = new GhostMovement(m.MyMaze, pm.pacman, thickness, imageSize, @".\Images\red.png", rand, ghostTimer, pm.moveTimer); red.LoseGame += wol.Message; } if (mazeSize >= 8) { GhostMovement pink = new GhostMovement(m.MyMaze, pm.pacman, thickness, imageSize, @".\Images\pink.png", rand, ghostTimer, pm.moveTimer); pink.LoseGame += wol.Message; } if (mazeSize == 10) { GhostMovement blue = new GhostMovement(m.MyMaze, pm.pacman, thickness, imageSize, @".\Images\blue.png", rand, ghostTimer, pm.moveTimer); blue.LoseGame += wol.Message; } } catch (Exception e) { MessageBox.Show(string.Format("{0} Exception caught.", e.Message), "Exception", MessageBoxButton.OK, MessageBoxImage.Error); ((MainWindow)System.Windows.Application.Current.MainWindow).Close(); } }
public void Create(Canvas canvas, Maze.RecursiveMazeGenerator m) //візуалізувати лабіринт { int size = imageSize + 2 * thickness; //розмір клітинки Line wall; for (int x = 0; x < m.MyMaze.GetLength(0); x++) { for (int y = 0; y < m.MyMaze.GetLength(1); y++) { if (m.MyMaze[x, y].upperWall)//верхня стіна { wall = new Line(); wall.Stroke = System.Windows.Media.Brushes.Blue; wall.StrokeThickness = thickness; wall.X1 = x * size; wall.Y1 = y * size; wall.X2 = x * size + size; wall.Y2 = y * size; canvas.Children.Add(wall); } if (m.MyMaze[x, y].lowerWall)//нижня стіна { wall = new Line(); wall.Stroke = System.Windows.Media.Brushes.Blue; wall.StrokeThickness = thickness; wall.X1 = x * size; wall.Y1 = y * size + size; wall.X2 = x * size + size; wall.Y2 = y * size + size; canvas.Children.Add(wall); } if (m.MyMaze[x, y].leftWall)//ліва стіна { wall = new Line(); wall.Stroke = System.Windows.Media.Brushes.Blue; wall.StrokeThickness = thickness; wall.X1 = x * size; wall.Y1 = y * size; wall.X2 = x * size; wall.Y2 = y * size + size; canvas.Children.Add(wall); } if (m.MyMaze[x, y].rightWall)//права стіна { wall = new Line(); wall.Stroke = System.Windows.Media.Brushes.Blue; wall.StrokeThickness = thickness; wall.X1 = x * size + size; wall.Y1 = y * size; wall.X2 = x * size + size; wall.Y2 = y * size + size; canvas.Children.Add(wall); } } } }