private void MoveChessMan(int x, int y) { if (AllowedMoves[x, y]) { var c = ChessMans[x, y]; if (c != null && c.IsWhite != IsWhiteTurn) { if (c.GetType() == typeof(King)) { EndGame(); return; } ActiveChessMan.Remove(c.gameObject); Destroy(c.gameObject); } ChessMans[SelectedChessMan.Position.x, SelectedChessMan.Position.y] = null; //Обнуляем значение предыдущей клетки SelectedChessMan.transform.position = GetTileCenter(x, y); //Перемещаем фигуру на новую клетку SelectedChessMan.Position.x = x; SelectedChessMan.Position.y = y; ChessMans[x, y] = SelectedChessMan; //Присваиваем новой клетке фигуру IsWhiteTurn = !IsWhiteTurn; //Передаем ход противоположному игроку } BoardHighLights.Instance.HideHighLights(); SelectedChessMan = null; //Обнуляем выделение фигуры }
private void SelectChessMan(int x, int y) { if (ChessMans[x, y] == null) { return; //Если клетка пустая } if (ChessMans[x, y].IsWhite != IsWhiteTurn) { return; //Выбор белой фигуры или черной } var hasAtleastOneMove = false; AllowedMoves = ChessMans[x, y].PossibleMove(); for (var i = 0; i < 8; i++) { for (var j = 0; j < 8; j++) { if (AllowedMoves[i, j]) { hasAtleastOneMove = true; } } } if (!hasAtleastOneMove) { return; } SelectedChessMan = ChessMans[x, y]; //Выбираем клетку с фигурой BoardHighLights.Instance.HighLightAllowedMoves(AllowedMoves); }