Exemplo n.º 1
0
        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; //Обнуляем выделение фигуры
        }
Exemplo n.º 2
0
        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);
        }