private void MenuGenerateButton(object sender, RoutedEventArgs e) { int inputRow = 0, inputCol = 0; #region EXCEPTION try { delayTime = int.Parse(DelayTimeTextBox.Text); if (delayTime < 0) { throw new InvaildDelayTimeException("지연 시간은 0 이상이여야 합니다."); } } catch (FormatException) { MessageBoxResult result = MessageBox.Show("지연 시간 입력란에는 숫자만 입력할 수 있습니다.", "Wait..."); return; } catch (InvaildDelayTimeException) { MessageBoxResult result = MessageBox.Show("지연 시간은 0 이상이여야 합니다.", "Wait..."); return; } try { inputRow = int.Parse(RowInputTextBox.Text); inputCol = int.Parse(ColInputTextBox.Text); if (inputRow < 1 || inputCol < 1) { throw new InvaildMazeSizeException("미로의 행과 열의 크기는 2 이상이여야 합니다."); } } catch (FormatException) { MessageBoxResult result = MessageBox.Show("미로의 크기 입력란에는 숫자만 입력할 수 있습니다.", "Wait..."); return; } catch (InvaildMazeSizeException) { MessageBoxResult result = MessageBox.Show("미로의 행과 열의 크기는 2 이상이여야 합니다.", "Wait..."); return; } #endregion ArrayPoint2D size = new ArrayPoint2D(inputRow, inputCol); mainMaze = new Maze(size, new ArrayPoint2D(0, 0), new ArrayPoint2D(9, 10)); Prepare(); switch (GenerateAlgComboBox.SelectedIndex) { case 0: MazeGenerator.RecursiveBacktracker(mainMaze, ShowMaze); mainMaze.isMaze = true; break; case 1: MazeGenerator.Kruskal(mainMaze, ShowMaze); mainMaze.isMaze = true; break; case 2: MazeGenerator.HuntAndKill(mainMaze, ShowMaze); mainMaze.isMaze = true; break; default: mainMaze.isMaze = false; break; } ShowMaze(); }