public void startWithComputer() {
        System.out.println(WELCOME_MESSAGE);
        gameField.showField();
        int maxMoves = (int)Math.pow(gameField.getFieldSize(),2) + 1;

        while(!gameField.checkWin() && move != maxMoves) {
            if (move % 2 != 0) {
                int x = requestX();
                int y = requestY();
                if (gameField.isFill(x, y)) {
                    System.out.println(CELL_IS_FILLED_MESSAGE);
                    gameField.showField();
                    continue;
                }
                gameField.putX(x,y);
                makeMove();
            }
            else {
                if (checkVerticalWin(1)) {
                    finishVerticalLine(criticalVertical,2);
                    makeMove();
                    continue;

                }
                if (checkHorizontalWin(1)) {
                    finishHorizontalLine(criticalHorizontal,2);
                    makeMove();
                    continue;
                }
                if(checkLeftDiagonalWin(1)) {
                    finishLeftDiagonal(2);
                    makeMove();
                    continue;
                }
                if(checkRightDiagonalWin(1)) {
                    finishRightDiagonal(2);
                    makeMove();
                    continue;
                }
                else {
                    notCriticalMove();
                    makeMove();
                }

            }
        }
        if (gameField.checkWin()) {
            showWinner();
        }
        else {
            System.out.println(DRAW_MESSAGE);
        }

    }