public Game(BoardPlacementData boardPlacementData) { InitializeComponent(); Narrator.startplaying(NarratorTxt, null); for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { Button inGrid = new Button(); inGrid.Click += Button_Click; battleGrid.Children.Add(inGrid); Grid.SetRow(inGrid, i); Grid.SetColumn(inGrid, j); } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { Button inGrid = new Button(); battleGrid_Copy.Children.Add(inGrid); Grid.SetRow(inGrid, i); Grid.SetColumn(inGrid, j); } } Ai ai; level = boardPlacementData.getLevel().ToString(); switch (boardPlacementData.getLevel()) { case AiLevel.EASY: ai = new Easy(); break; case AiLevel.MEDIUM: ai = new Medium(); break; case AiLevel.HARD: ai = new Hard(); break; default: throw new NotSupportedException("ai unknown"); } Board aiBoard = new Board(battleGrid_Copy); battleGrid_Copy.IsEnabled = false; for (int i = 0; i < boardPlacementData.getAiShip().Length; i++) { aiBoard.placeShip(new Ship(boardPlacementData.getAiShip()[i].position)); } Board playerBoard = new Board(battleGrid); for (int i = 0; i < boardPlacementData.getPlayerShip().Length; i++) { playerBoard.placeShip(new Ship(boardPlacementData.getPlayerShip()[i].position)); } this.gamePageData = new GamePageData(boardPlacementData, 0, 0, 0, 0, playerBoard, aiBoard, ai); initPlayerTicker(this.gamePageData.boardPlacementData.getIdleTime()); startMainTimer(this.gamePageData.getTimeSec(), this.gamePageData.getTimeMin(), this.gamePageData.getTimeHour()); idleTimeDispatcher.Start(); }