Крестики-нолики, метод проверки выигрыша

Занимаюсь изучением Java на одном сайте и в рамках изучения пишем проект крестики-нолики. На данный момент, очень долго бьюсь с задачкой, в ходе которой надо написать метод проверки выигрыша. Разбил данный метод на подметоды, чтобы было проще ориентироваться. Рассмотрел все возможные варианты выигрыша, но почему-то в случае с вариантом когда победителя нет, моя программа спотыкается. В частности проблема заключается в том, что не совсем ясно, что по итогу данного метода я должен вернуть. Прошу подсказать, что конкретно по итогу данного метода(WinnerController) мне нужно будет вернуть, чтобы получить значение "X" когда победителя нет(таково условие задачи). Заранее извиняюсь, если код написано не красиво и излишне вычурно.

public class WinnerController {
public String getWinner (Field field) {
    checkHorisontal(field);
    checkVertical(field);
    checkFirstDiagonal(field);
    checkSecondDiagonal(field); 
}   
    public String checkVertical (Field field){
       Point point1 = new Point();
       Point point2 = new Point();
       Point point3 = new Point();
   for (int i = 0; i < field.getSize(); i++){
       //Point point1 = new Point();
       //Point point2 = new Point();
       //Point point3 = new Point();
        point1.x = i;
        point1.y = 0;
        point2.x = i;
        point2.y = 1;
        point3.x = i;
        point3.y = 2;
        checkThreePoint(point1, point2, point3, field);
        }
        return field.getFigure(point1);
    }

    public String checkHorisontal(Field field){
        Point point1 = new Point();
        Point point2 = new Point();
        Point point3 = new Point();
    for(int i = 0; i < field.getSize(); i++){
        //Point point1 = new Point();
        //Point point2 = new Point();
        //Point point3 = new Point();
        point1.x = 0;
        point2.x = 1;
        point3.x = 2;
        point1.y = i;
        point2.y = i;
        point3.y = i;
        checkThreePoint(point1, point2, point3, field); 
    }
        return field.getFigure(point1);
}
    public String checkFirstDiagonal(Field field){
        Point point1 = new Point();
        Point point2 = new Point();
        Point point3 = new Point();
    for (int i = 0; i <= field.getSize()-3; i++){
        //Point point1 = new Point();
        //Point point2 = new Point();
        //Point point3 = new Point();
        point1.x = i;
        point1.y = i;
        point2.x = i+1;
        point2.y = i+1;
        point3.x = i+2;
        point3.y = i+2;
        checkThreePoint(point1, point2, point3, field);

    }
        return field.getFigure(point1);
}
public String checkSecondDiagonal(Field field){
        Point point1 = new Point();
        Point point2 = new Point();
        Point point3 = new Point();
    for(int i = 0; i <= field.getSize()-3; i++){
        //Point point1 = new Point();
        //Point point2 = new Point();
        //Point point3 = new Point();
        point1.x = i+2;
        point1.y = i;
        point2.x = i+1;
        point2.y = i+1;
        point3.x = i;
        point3.y = i+2;
        checkThreePoint(point1, point2, point3, field);

    }
        return field.getFigure(point1);
}
    public String  checkThreePoint (Point point1, Point  point2, Point point3, Field  field){
        if (field.getFigure(point1) != null
        && field.getFigure(point2) != null
        && field.getFigure(point3) != null
        && field.getFigure(point1).equals(field.getFigure(point2))
        && field.getFigure(point2).equals(field.getFigure(point3)))
        {
            return field.getFigure(point1);
        }
        else {
       return null;
        }

    }

Ответы (0 шт):