public bool CanMove()
        {
            var startField = board.fields[posStartX, posStartY];

            if (posEndX > 7 || posEndX < 0 || posEndY > 7 || posEndY < 0)
            {
                return(false);
            }
            var endField = board.fields[posEndX, posEndY];

            switch (pawnController.state)
            {
            case State.Counter:
                CheckQueen(startField, endField);
                if (Math.Abs(posStartX - posEndX) > 1)
                {
                    if (beatChecker.CanCounterBeat(startField, endField))
                    {
                        move  = true;
                        beat  = true;
                        beatX = Math.Max(startField.X, endField.X) - 1;
                        beatY = Math.Max(startField.Y, endField.Y) - 1;
                    }
                }
                else if (beatChecker.CanCounterMove(startField, endField))
                {
                    move = true;
                }
                if (move)
                {
                    return(true);
                }
                return(false);

            case State.Queen:
                Debug.Log("QUEEN MOVE");
                if (beatChecker.CanQueenMove(startField, endField))
                {
                    move = true;
                }
                else if (beatChecker.CanQueenBeat(startField, endField))
                {
                    move  = true;
                    beat  = true;
                    beatX = beatChecker.BeatX;
                    beatY = beatChecker.BeatY;
                }

                if (move)
                {
                    return(true);
                }
                return(false);

            default:
                return(false);
            }
        }