private void InitFieldArray(int fx, int fy) { if (fileldArray != null) { //clean field int lx = fileldArray.GetLength(0); int ly = fileldArray.GetLength(1); for (int iy = 0; iy <= ly - 1; iy++) { for (int ix = 0; ix <= lx - 1; ix++) { fileldArray[ix, iy].Clean(); } } } fileldArray = new GameCell[fx, fy]; for (int iy = 0; iy <= fy - 1; iy++) { for (int ix = 0; ix <= fx - 1; ix++) { if (fileldArray[ix, iy] is GameCell) { fileldArray[ix, iy].Clean(); } else { fileldArray[ix, iy] = new GameCell(ix, iy, CellMode.Empty, CellMode.Empty, WinMode.None); } } } }
public State(GameCell[,] field, GameState gs) { Inside = new string[field.GetLength(0), field.GetLength(1)]; Moles = new List <string>(); Plants = new List <string>(); for (var i = 0; i < field.GetLength(0); i++) { for (var j = 0; j < field.GetLength(1); j++) { if (field[i, j].P != null) { Plants.Add("P" + field[i, j].P.Id + ": " + field[i, j].P.Health); } foreach (var m in field[i, j].M) { Moles.Add("M" + m.Id + (m.Gender == Gender.Male ? "M" : "F") + ": " + m.Health); } Inside[i, j] = (field[i, j]?.P?.Health > 0 ? "P" + field[i, j].P.Id + " " : "") + (field[i, j]?.C != null ? "C " : "") + field[i, j]?.M.Aggregate("", (current, tmp) => current + "M" + tmp.Id + (tmp.Gender == Gender.Male ? "M " : "F ")); } } Plants.Add(string.Empty); Plants.Add(gs == GameState.СWiNs ? "Cottager wins!" : gs == GameState.MWiNs ? "Moles wins!" : ""); }
public GameMap() { map = new GameCell[Settings.fieldSize.X, Settings.fieldSize.Y]; for (byte x = 0; x < map.GetLength(0); ++x) { for (byte y = 0; y < map.GetLength(1); ++y) { map[x, y] = new GameCell(); } } camPos = new CoordReal(Settings.camStartPos); }
private static string[,] ConvertField(GameCell[,] gamefield) { string[,] stringField = new string[gamefield.GetLength(0), gamefield.GetLength(1)]; for (int i = 0; i < stringField.GetLength(0); i++) { for (int j = 0; j < stringField.GetLength(1); j++) { stringField[i, j] = gamefield[i, j].Display; } } return(stringField); }
public static char[,] To2dChars(this GameCell[,] cells) { var grid = new char[cells.GetLength(0), cells.GetLength(1)]; for (int x = 0; x < cells.GetLength(0); x += 1) { for (int y = 0; y < cells.GetLength(1); y += 1) { grid[x, y] = (char)(cells[x, y].Value); } } return(grid); }
private static void AllOtherKeys(GameCell[,] gameField, int i, int j, GameCell elem, Panel MainPanel, PictureBox[,] pictureField) { if (j == gameField.GetLength(1) - 2 && i == gameField.GetLength(0) - 2) { CreateElement(i, j, -1, 0, gameField, elem, MainPanel, pictureField); } else if (j == gameField.GetLength(1) - 2) { CreateElement(i, j, 1, 0, gameField, elem, MainPanel, pictureField); } else { CreateElement(i, j, 0, 1, gameField, elem, MainPanel, pictureField); } }
//Iterate through two-dimensional array and set roughly 15% of cells to LIVE private void activateCells() { Random rand = new Random(); for (int i = 0; i < gameboard.GetLength(0); i++) { for (int j = 0; j < gameboard.GetLength(1); j++) { if (rand.Next(0, 100) <= 15) { gameboard[i, j].CellLive = true; } } } }
public static int[] FindPosition(GameCell[,] gameField, string type) { int[] result = new int[2]; for (int i = 0; i < gameField.GetLength(0); i++) { for (int j = 0; j < gameField.GetLength(1); j++) { if (gameField[i, j].Type == type) { result[0] = i; result[1] = j; } } } return(result); }
public static Tuple <int, int> IndexOf(this GameCell[,] cells, GameCell cell) { for (var x = 0; x < cells.GetLength(0); x++) { for (var y = 0; y < cells.GetLength(1); y++) { if (cells[x, y].Equals(cell)) { return(new Tuple <int, int>(x, y)); } } } //If code reaches this point, then it didn't find anything, return -1 return(new Tuple <int, int>(-1, -1)); }
public GameMap(Windows.GameWindow window) { globalMap = new GlobalGameMap(); map = new GameCell[Game.Settings.map_sizeY, Game.Settings.map_sizeX]; for (byte i = 0; i < map.GetLength(0); ++i) { window.MazeGrid.RowDefinitions.Add(new RowDefinition()); for (byte j = 0; j < map.GetLength(1); ++j) { map[i, j] = new GameCell(); } } for (byte j = 0; j < map.GetLength(1); ++j) { window.MazeGrid.ColumnDefinitions.Add(new ColumnDefinition()); } }
public static Tuple <int, int> CoordinatesOf(this GameCell[,] matrix, CellType type) { int w = matrix.GetLength(0); // width int h = matrix.GetLength(1); // height for (int x = 0; x < w; ++x) { for (int y = 0; y < h; ++y) { if (matrix[x, y].Value.Equals(type)) { return(Tuple.Create(x, y)); } } } return(null); }
private static void DestroyCells(GameCell[,] gameField, PictureBox[,] pictureField, int i, int j, int delta, Panel MainPanel) { if (gameField[i + 1, j + delta].Type != "Ground" || gameField[i, j + delta].Type != "FreeArea" || gameField[i, j + delta].Type == "Ground" || i + 1 == gameField.GetLength(0) - 1 || gameField[i, j + delta].Type == "SimpleEnemy") { return; } GeneralDestroy(gameField, pictureField, i, j, 1, delta, MainPanel); }
private static void DestroyStrong(GameCell[,] gameField, PictureBox[,] pictureField, int i, int j, Panel MainPanel) { if (gameField[i + 1, j].Type != "StrongGround" || gameField[i, j].Type == "Ladder" || i + 1 == gameField.GetLength(0) - 1 || _harmerAmount <= 0) { return; } _harmerAmount--; GeneralDestroy(gameField, pictureField, i, j, 1, 0, MainPanel); }
private static void DeleteElement(int i, int j, int deltay, int deltax, GameCell[,] gameField, Panel MainPanel, PictureBox[,] pictureField) { if (i + deltay == gameField.GetLength(0) - 1 || j + deltax == 0) { return; } gameField[i + deltay, j + deltax] = new FreeArea(); gameField[i, j] = new Cursor(); UpdateCreator(i, j, deltax, deltay, gameField, pictureField, new Cursor(), new FreeArea(), MainPanel); }
public static void CreateLevel(GameCell[,] gameField, string name) { Matrix matrix = new Matrix { H = gameField.GetLength(0), W = gameField.GetLength(1), Field = ConvertField(gameField) }; name += ".json"; string data = JsonConvert.SerializeObject(matrix); if (!File.Exists("Data\\Levels\\" + name)) { StreamWriter output = new StreamWriter("Data\\Levels\\" + name); output.WriteLine(data); output.Close(); Application.Restart(); Environment.Exit(0); } }
public void OutputMap(Windows.GameWindow window) { for (byte i = 0; i < map.GetLength(0); ++i) { for (byte j = 0; j < map.GetLength(1); ++j) { Grid.SetRow(map[i, j].imageCell, i); Grid.SetColumn(map[i, j].imageCell, j); Grid.SetZIndex(map[i, j].imageCell, 0); window.MazeGrid.Children.Add(map[i, j].imageCell); Grid.SetRow(map[i, j].imageContent, i); Grid.SetColumn(map[i, j].imageContent, j); Grid.SetZIndex(map[i, j].imageContent, 1); window.MazeGrid.Children.Add(map[i, j].imageContent); } } for (int i = 0; i < Game.Settings.handSize; ++i) { window.CardsGrid.ColumnDefinitions.Add(new ColumnDefinition()); } for (byte i = 0; i < map.GetLength(0); ++i) { for (byte j = 0; j < map.GetLength(1); ++j) { map[i, j].IsWall = !map[i, j].IsWall; } } for (byte i = 0; i < map.GetLength(0); ++i) { for (byte j = 0; j < map.GetLength(1); ++j) { map[i, j].IsWall = !map[i, j].IsWall; } } }
private static void RopeOrScrap(GameCell[,] gameField, PictureBox[,] pictureField, int i, int j, int delta, Panel MainPanel) { if (j + delta == 0 || j + delta == gameField.GetLength(1) - 1) { return; } if (RopeTrapAmount > 0) { PutTrap(gameField, pictureField, i, j, delta, MainPanel); } else { DestroyWall(gameField, pictureField, i, j, delta, MainPanel); } }
public void GenerateNewMap() { for (byte x = 0; x < map.GetLength(0); ++x) { for (byte y = 0; y < map.GetLength(1); ++y) { if (x == 0 || y == 0 || x == map.GetLength(0) - 1 || y == map.GetLength(1) - 1) { map[x, y].isWall = true; map[x, y].image.LoadImg(@"wall\1"); } else { map[x, y].image.LoadImg(@"floor\1"); } } } }
private void GameProcess() { gs = GameState.Playing; var rnd = new Random(); while (gs == GameState.Playing) { for (var i = 0; i < _field.GetLength(0); i++) { for (var j = 0; j < _field.GetLength(1); j++) { if (_field[i, j].M.Count > 0) { if (_field[i, j].M.Count >= 2) // плодим кротов { var femIndex = _field[i, j].M.FindIndex(x => x.Gender == Gender.Female && x.Hunger == GlobalVars.MaxHunger); var malIndex = _field[i, j].M.FindIndex(x => x.Gender == Gender.Male && x.Hunger == GlobalVars.MaxHunger); if (femIndex >= 0 && malIndex >= 0) { _field[i, j].M.Add(new Mole((Gender)rnd.Next(0, 2), GlobalVars.DefaultSpeed, i, j, _moleId++)); } } foreach (var tmp in _field[i, j].M) { tmp.Eat(_field[i, j].P); } if (_field[i, j].P == null || _field[i, j].C != null) // двигаем крота { if (_field[i, j].M.Count == 0) { break; } for (var x = 0; x < _field[i, j].M.Count; x++) { if (_field[i, j].M[x].Moved) { continue; } var succeedMole = false; while (!succeedMole) // пока удается двигаться { var d = (Direction)rnd.Next(0, 4); switch (d) { case Direction.Left: if (i - 1 >= 0 && i - 1 != _field[i, j].M[x].PrevW) { _field[i, j].M[x].Moved = true; _field[i, j].M[x].PrevW = i; // запоминаю этому кроту текущую клетку как предыдущую _field[i, j].M[x].PrevH = j; _field[i - 1, j].M.Add(_field[i, j].M[x]); // добавляю крота в новую клетку, _field[i, j].M.Remove(_field[i, j].M[x]); // удаляю крота из текущей succeedMole = true; // удалось подвинуться } break; case Direction.Up: if (j - 1 >= 0 && j - 1 != _field[i, j].M[x].PrevH) { _field[i, j].M[x].Moved = true; _field[i, j].M[x].PrevW = i; _field[i, j].M[x].PrevH = j; _field[i, j - 1].M.Add(_field[i, j].M[x]); _field[i, j].M.Remove(_field[i, j].M[x]); succeedMole = true; } break; case Direction.Right: if (i + 1 < _field.GetLength(0) && i + 1 != _field[i, j].M[x].PrevW) { _field[i, j].M[x].Moved = true; _field[i, j].M[x].PrevW = i; _field[i, j].M[x].PrevH = j; _field[i + 1, j].M.Add(_field[i, j].M[x]); _field[i, j].M.Remove(_field[i, j].M[x]); succeedMole = true; } break; case Direction.Down: if (j + 1 < _field.GetLength(1) && j + 1 != _field[i, j].M[x].PrevH) { _field[i, j].M[x].Moved = true; _field[i, j].M[x].PrevW = i; _field[i, j].M[x].PrevH = j; _field[i, j + 1].M.Add(_field[i, j].M[x]); _field[i, j].M.Remove(_field[i, j].M[x]); succeedMole = true; } break; default: throw new ArgumentOutOfRangeException(); //Исключение, которое выдается, если значение аргумента не соответствует допустимому //диапазону значений, установленному вызванным методом. } } } } } if (_field[i, j].C != null) { { foreach (var tmp in _field[i, j].M) { _field[i, j].C.Hit(tmp); } if (_field[i, j].M.Count == 0 && !_field[i, j].C.Moved) // двигаем дачника { // двигается только если нет кротов, и он еще не двигался _field[i, j].C.PrevW = i; _field[i, j].C.PrevH = j; var succeedCottager = false; while (!succeedCottager) { var d = (Direction)rnd.Next(0, 4); switch (d) { case Direction.Left: if (i - 1 >= 0 && i - 1 != _field[i, j].C.PrevW) { _field[i - 1, j].C = _field[i, j].C; _field[i, j].C = null; succeedCottager = true; } break; case Direction.Up: if (j - 1 >= 0 && j - 1 != _field[i, j].C.PrevH) { _field[i, j - 1].C = _field[i, j].C; _field[i, j].C = null; succeedCottager = true; } break; case Direction.Right: if (i + 1 < _field.GetLength(0) && i + 1 != _field[i, j].C.PrevW) { _field[i + 1, j].C = _field[i, j].C; _field[i, j].C = null; succeedCottager = true; } break; case Direction.Down: if (j + 1 < _field.GetLength(1) && j + 1 != _field[i, j].C.PrevH) { _field[i, j + 1].C = _field[i, j].C; _field[i, j].C = null; succeedCottager = true; } break; default: throw new ArgumentOutOfRangeException(); } } } } } if (_field[i, j].P != null && _field[i, j].P.S == Status.Dead) { _field[i, j].P = null; } if (_field[i, j].M.Count > 0) { _field[i, j].M.RemoveAll(a => a.S == Status.Dead); } } } _field.Cast <GameCell>().ToList().ForEach(x => x.M.ForEach(y => y.Moved = false)); gs = _field.Cast <GameCell>().Count(x => x.P != null) == 0 // количество клеток, в которых растение не равно null. // то есть все условие сверху значит - если нет растений, а далее если нет кротов ? GameState.MWiNs // значит, выиграли кроты, иначе либо дачник, либо играем дальше : _field.Cast <GameCell>().Count(x => x.M.Count > 0) == 0 ? GameState.СWiNs : GameState.Playing; _form.Invoke(_update); // обовляем форму Thread.Sleep(1000); } }
private void GameProcess() { gs = GameState.Playing; var rnd = new Random(); while (gs == GameState.Playing) { for (var i = 0; i < _field.GetLength(0); i++) { for (var j = 0; j < _field.GetLength(1); j++) { if (_field[i, j].M.Count > 0) { if (_field[i, j].M.Count >= 2) // what if female and male moles are in one cell { var femIndex = _field[i, j].M.FindIndex(x => x.Gender == Gender.Female && x.Hunger == GlobalVars.MaxHunger); var malIndex = _field[i, j].M.FindIndex(x => x.Gender == Gender.Male && x.Hunger == GlobalVars.MaxHunger); if (femIndex >= 0 && malIndex >= 0) { _field[i, j].M.Add(new Mole((Gender)rnd.Next(0, 2), GlobalVars.DefaultSpeed, i, j, _moleId++)); } } foreach (var tmp in _field[i, j].M) { tmp.Eat(_field[i, j].P); } if (_field[i, j].P == null || _field[i, j].C != null) // move mole { if (_field[i, j].M.Count == 0) { break; } for (var x = 0; x < _field[i, j].M.Count; x++) { if (_field[i, j].M[x].Moved) { continue; } var succeedMole = false; while (!succeedMole) // while it's possible to move { var d = (Direction)rnd.Next(0, 4); switch (d) { case Direction.Left: if (i - 1 >= 0 && i - 1 != _field[i, j].M[x].PrevW) { _field[i, j].M[x].Moved = true; _field[i, j].M[x].PrevW = i; _field[i, j].M[x].PrevH = j; _field[i - 1, j].M.Add(_field[i, j].M[x]); _field[i, j].M.Remove(_field[i, j].M[x]); succeedMole = true; } break; case Direction.Up: if (j - 1 >= 0 && j - 1 != _field[i, j].M[x].PrevH) { _field[i, j].M[x].Moved = true; _field[i, j].M[x].PrevW = i; _field[i, j].M[x].PrevH = j; _field[i, j - 1].M.Add(_field[i, j].M[x]); _field[i, j].M.Remove(_field[i, j].M[x]); succeedMole = true; } break; case Direction.Right: if (i + 1 < _field.GetLength(0) && i + 1 != _field[i, j].M[x].PrevW) { _field[i, j].M[x].Moved = true; _field[i, j].M[x].PrevW = i; _field[i, j].M[x].PrevH = j; _field[i + 1, j].M.Add(_field[i, j].M[x]); _field[i, j].M.Remove(_field[i, j].M[x]); succeedMole = true; } break; case Direction.Down: if (j + 1 < _field.GetLength(1) && j + 1 != _field[i, j].M[x].PrevH) { _field[i, j].M[x].Moved = true; _field[i, j].M[x].PrevW = i; _field[i, j].M[x].PrevH = j; _field[i, j + 1].M.Add(_field[i, j].M[x]); _field[i, j].M.Remove(_field[i, j].M[x]); succeedMole = true; } break; default: throw new ArgumentOutOfRangeException(); } } } } } if (_field[i, j].C != null) { { foreach (var tmp in _field[i, j].M) { _field[i, j].C.Hit(tmp); } if (_field[i, j].M.Count == 0 && !_field[i, j].C.Moved) // moving cottager { // only if there is no mole and he hasn't moved yet _field[i, j].C.PrevW = i; _field[i, j].C.PrevH = j; var succeedCottager = false; while (!succeedCottager) { var d = (Direction)rnd.Next(0, 4); switch (d) { case Direction.Left: if (i - 1 >= 0 && i - 1 != _field[i, j].C.PrevW) { _field[i - 1, j].C = _field[i, j].C; _field[i, j].C = null; succeedCottager = true; } break; case Direction.Up: if (j - 1 >= 0 && j - 1 != _field[i, j].C.PrevH) { _field[i, j - 1].C = _field[i, j].C; _field[i, j].C = null; succeedCottager = true; } break; case Direction.Right: if (i + 1 < _field.GetLength(0) && i + 1 != _field[i, j].C.PrevW) { _field[i + 1, j].C = _field[i, j].C; _field[i, j].C = null; succeedCottager = true; } break; case Direction.Down: if (j + 1 < _field.GetLength(1) && j + 1 != _field[i, j].C.PrevH) { _field[i, j + 1].C = _field[i, j].C; _field[i, j].C = null; succeedCottager = true; } break; default: throw new ArgumentOutOfRangeException(); } } } } } if (_field[i, j].P != null && _field[i, j].P.S == Status.Dead) { _field[i, j].P = null; } if (_field[i, j].M.Count > 0) { _field[i, j].M.RemoveAll(a => a.S == Status.Dead); } } } _field.Cast <GameCell>().ToList().ForEach(x => x.M.ForEach(y => y.Moved = false)); gs = _field.Cast <GameCell>().Count(x => x.P != null) == 0 // number of cell, where plant != null // so, if there is no plants and if there is no mole , then moles wins. Else cottager wins or we continue playing ? GameState.MWiNs : _field.Cast <GameCell>().Count(x => x.M.Count > 0) == 0 ? GameState.СWiNs : GameState.Playing; _form.Invoke(_update); Thread.Sleep(1000); } }
private static void LeftRightArrowMovement(GameCell[,] gameField, PictureBox[,] pictureField, int i, int j, int delta, Panel MainPanel) { if (j + delta == 0 || j + delta == gameField.GetLength(1) - 1) { return; } if (_counter > _boost * 7) { _boost--; } if (_activePill > _pill * 20) { _pill--; } if (_helmetCount > _helmet * 4) { _helmet--; } if (_boost > 0) { if (gameField[i, j + 2 * delta] is Ground) { return; } SkipElements(gameField, pictureField, i, j, 2 * delta, 0, new Player(), MainPanel); pictureField[i, j + 2 * delta].Image = new Bitmap("Data\\Icons\\player.png"); gameField[i, j + 2 * delta] = new Player(); _counter++; return; } if (gameField[i, j + delta].Type == "SimpleEnemy" || i == 0) { DieFromEnemy(gameField, pictureField, i, j, delta, MainPanel); } if (gameField[i, j + 2 * delta].Type == "Door") { _doorSide = delta; } else if (gameField[i, j + delta].Type == "Teleport") { Teleportation(gameField, pictureField, i, j, delta, new Player(), MainPanel); return; } if (_helmet > 0) { _helmetCount++; if (DetectItems(gameField, pictureField, i, j, delta, MainPanel)) { SkipElements(gameField, pictureField, i, j, delta, 0, new Player(), MainPanel); _prev = new FreeArea(); } else { SkipElements(gameField, pictureField, i, j, delta, 0, new Player(), MainPanel); } Update(i, j, delta, 0, gameField, pictureField, _prev, new Player(), MainPanel); return; } if (gameField[i - 1, j].Type == "Ladder" && gameField[i, j + delta].Type != "Ground" || gameField[i + 1, j].Type == "Ladder" && gameField[i, j + delta].Type != "Ground") { MoveOnLadder(i, j, 0, delta, gameField, new Player()); Update(i, j, delta, 0, gameField, pictureField, new Player(), new Ladder(), MainPanel); } else if (gameField[i, j + delta].Type != "Ground" && gameField[i, j + delta].Type != "StrongGround" && gameField[i, j + delta].Type != "Door" && gameField[i, j + delta].Type != "Unbreakable" && j + delta > 0) { if (DetectItems(gameField, pictureField, i, j, delta, MainPanel)) { SkipElements(gameField, pictureField, i, j, delta, 0, new Player(), MainPanel); _prev = new FreeArea(); } else { SkipElements(gameField, pictureField, i, j, delta, 0, new Player(), MainPanel); } Update(i, j, delta, 0, gameField, pictureField, _prev, new Player(), MainPanel); } }
public static void MoveCursor(KeyEventArgs e, GameCell[,] gameField, PictureBox[,] pictureField, Panel MainPanel, string name) { int[] coords = FindPosition(gameField, "Cursor"); int i = coords[0]; int j = coords[1]; switch (e.KeyValue) { case 37: ArrowKeys(gameField, i, j, 0, -1, j, 1, MainPanel, pictureField); break; case 39: ArrowKeys(gameField, i, j, 0, 1, gameField.GetLength(1) - 2, j, MainPanel, pictureField); break; case 38: ArrowKeys(gameField, i, j, -1, 0, i, 1, MainPanel, pictureField); break; case 40: ArrowKeys(gameField, i, j, 1, 0, gameField.GetLength(0) - 2, i, MainPanel, pictureField); break; case 51: AllOtherKeys(gameField, i, j, new Ground(), MainPanel, pictureField); break; case 50: AllOtherKeys(gameField, i, j, new Gold(), MainPanel, pictureField); break; case 111: AllOtherKeys(gameField, i, j, new Ladder(), MainPanel, pictureField); break; case 53: AllOtherKeys(gameField, i, j, new StrongGround(), MainPanel, pictureField); break; case 49: AllOtherKeys(gameField, i, j, new Harmer(), MainPanel, pictureField); break; case 9: AllOtherKeys(gameField, i, j, new Bar(), MainPanel, pictureField); break; case 71 when _player == true: AllOtherKeys(gameField, i, j, new Player(), MainPanel, pictureField); _player = false; break; case 69: AllOtherKeys(gameField, i, j, new SimpleEnemy(), MainPanel, pictureField); break; case 84: AllOtherKeys(gameField, i, j, new UsedRopeTrap(), MainPanel, pictureField); break; case 68: AllOtherKeys(gameField, i, j, new Door(), MainPanel, pictureField); break; case 75: AllOtherKeys(gameField, i, j, new Key(), MainPanel, pictureField); break; case 79: AllOtherKeys(gameField, i, j, new ExitDoor(), MainPanel, pictureField); _exitDoor = false; break; case 76: AllOtherKeys(gameField, i, j, new Scrap(), MainPanel, pictureField); break; case 70: AllOtherKeys(gameField, i, j, new Teleport(), MainPanel, pictureField); break; case 85: AllOtherKeys(gameField, i, j, new Unbreakable(), MainPanel, pictureField); break; case 80: AllOtherKeys(gameField, i, j, new BlindEnemy(), MainPanel, pictureField); break; case 89: AllOtherKeys(gameField, i, j, new SecondPlayer(), MainPanel, pictureField); break; case 73: AllOtherKeys(gameField, i, j, new RandomPrize(), MainPanel, pictureField); break; case 66: AllOtherKeys(gameField, i, j, new Boost(), MainPanel, pictureField); break; case 81: AllOtherKeys(gameField, i, j, new Pill(), MainPanel, pictureField); break; case 72: AllOtherKeys(gameField, i, j, new Helmet(), MainPanel, pictureField); break; case 67: AllOtherKeys(gameField, i, j, new Coin(), MainPanel, pictureField); break; case 8: DeleteElement(i, j, 0, -1, gameField, MainPanel, pictureField); break; case 90: DeleteElement(i, j, 1, 0, gameField, MainPanel, pictureField); break; case 27 when !_player && !_exitDoor: CreateLevel(gameField, name); break; case 27 when _player && _exitDoor: MessageBox.Show("The level wasn`t created, because you have forgotten to draw player and/or exit door."); break; } }
public SetValuesMathod(GameCell[,] field) : base(field.GetLength(0), field.GetLength(1)) { _field = field; }
public OpenCellsMathod(GameCell[,] field) : base(field.GetLength(0), field.GetLength(1)) { _field = field; OpenedCells = new List <Cell>(); }