Итак, я пытаюсь создать программу решения лабиринта, которая решит лабиринт из крестиков и ноликов. Что я хотел бы сделать, так это создать класс точек, чтобы я мог создать двумерный массив точек, который позволил бы печатать на выходной странице, а также относительно просто реализовать стек.
Я считаю, что простейший алгоритм общей идеи, который я хотел бы реализовать в самой программе, должен быть:
1) Move forward
2) Are you at a wall?
2a) If yes, turn left
3) Are you at the finish?
3a) If no, go to 1
3b) If yes, solved
Но у меня возникли проблемы с созданием более глубокого алгоритма, а также с размещением моего класса Points. Я знаю, что для точек я должен был установить координату X и координату Y, а также установить геттеры для двух. Как вы думаете, мне нужно больше методов, чем эти два? Например, должен ли я создать метод, который передает координаты x и координаты y в качестве параметров, чтобы я мог просто объединить их вместе, вместо того, чтобы устанавливать x и y по отдельности?
Вот как будет выглядеть образец лабиринта, где вы начинаете в правом нижнем углу и пытаетесь пройти в верхний левый, где X обозначает стены, а O обозначает открытые пространства в лабиринте:
O O O O O X O
X X O X O O X
O X O O X X X
X X X O O X O
X X X X O O X
O O O O O O O
X X O X X X O