Ejemplo n.º 1
0
        public void Move(int row, int col) //клик по полю
        {
            if (!myTurn)                   //ничего не делаем, если не наш ход
            {
                return;
            }

            if (figureChosen)                                                  //если фигурка уже выбрана
            {
                if (data[row, col] != null && data[row, col].white == isWhite) //клик по другой своей фигурке, выбираем ее
                {
                    figureChosen = true;
                    fromX        = col;
                    fromY        = row;
                    return;
                }

                if (strategy.IsStepCorrect(this.data, fromX, fromY, col, row, isWhite))//проверка на корректность хода
                {
                    isKingChecked = false;
                    strategy      = new FormControlNormalStrategy();// если королю был объявлен шах, то ход был коректным и королю терь норм

                    myTurn = false;
                    moveMade(new Command(this.data, fromX, fromY, col, row)); //отправляем сигнал, что ход сделан
                }

                figureChosen = false;
            }
            else //выбираем фигурку, на которую мы кликнули
            {
                if (data[row, col] != null && data[row, col].white == isWhite)
                {
                    figureChosen = true;
                    fromX        = col;
                    fromY        = row;
                }
            }
        }
Ejemplo n.º 2
0
 override public void setKingChecked()
 {
     isKingChecked = true;
     strategy      = new FormControlСheckToKingStrategy();
 }
Ejemplo n.º 3
0
        public event MoveDelegate moveMade;    // сигнал

        public FormControl(GameData data, bool isWhite)
            : base(data, isWhite)
        {
            figureChosen = false;
            strategy     = new FormControlNormalStrategy();
        }