private void GameEnviroment_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (SelectedTool != null) { var block = (sender as EnvBlock); block.Type = (EnvType)SelectedTool; if (block.Type == EnvType.Packman) { int newPackmanRow = Grid.GetRow(block); int newPackmanCol = Grid.GetColumn(block); if (Packman != null) { if (Packman.Row != newPackmanRow || Packman.Column != newPackmanCol) { env[Packman.Row, Packman.Column].Type = EnvType.Empty; Packman = new Packman(env, newPackmanRow, newPackmanCol); } } else { Packman = new Packman(env, newPackmanRow, newPackmanCol); } } } }
public void Show(State state) { if (env.GetLength(0) != state.RowSize || env.GetLength(1) != state.ColumnSize) { this.RowCount = state.RowSize; this.ColumnCount = state.ColumnSize; } int numberOfPackman = 0; int packmanRow = -1; int packmanCol = -1; for (int i = 0; i < state.RowSize; i++) { for (int j = 0; j < state.ColumnSize; j++) { env[i, j].Type = (EnvType)state[i, j]; if (env[i, j].Type == EnvType.Packman) { numberOfPackman++; packmanRow = i; packmanCol = j; } } } if (numberOfPackman != 1) { throw new Exception("Number of packman must be exactly one."); } else { Packman = new Packman(env, packmanRow, packmanCol); } }