Не подглядывайте samples
и solutions
перед тем, как решить. Так ведь не интересно!
Игра Lines: реализовать проверку наличия на поле линий. Линией считается 5 или более шариков одного цвета, стоящих в ряд.
- Данные подаются на стандартный вход программы (stdin), строки разделены символом новой строки \n
- Результат ожидается на стандартном выходе (stdout), в случае обнаружения линий нужно вывести их количество, если линии нет или данные указаны некорректно — вывести 0
Строка, начинающаяся с SIZE определяет размер поля.
Строки, которые начинаются с BALL, определяют позицию и цвет шариков, которые уже есть на поле.
За ними следуют строки, которые начинатся с MOVE, которые определяют передвижение шарика.
Все координаты заданы числами, где первое число это ось x (сверху направо), второе — y (сверху вниз).
В MOVE первая пара чисел это исходная ячейка, вторая пара — ячейка назначения.
+------ x
|
|
|
y
SIZE 5
BALL 0,0,red
BALL 0,1,green
BALL 0,2,blue
BALL 1,0,red
BALL 2,1,red
BALL 3,0,red
BALL 4,0,red
MOVE 0,1,1,1
MOVE 2,1,2,0
Изначальная расстановка шариков:
+---+---+---+---+---+
| r | r | | r | r |
+---+---+---+---+---+
| g | | r | | |
+---+---+---+---+---+
| b | | | | |
+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
После первого хода: линий нет
+---+---+---+---+---+
| r | r | | r | r |
+---+---+---+---+---+
| | g | r | | |
+---+---+---+---+---+
| b | | | | |
+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
После второго хода: есть одна линия
+---+---+---+---+---+
| r | r | r | r | r |
+---+---+---+---+---+
| | g | | | |
+---+---+---+---+---+
| b | | | | |
+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
Результат: 1
- В каждой ячейке может быть только один шарик;
- Известно, что изначально на поле линий нет (можно не проверять), они могут появиться только после передвижения(ий);
- Известно, что на входе есть ровно одна строка SIZE, и как минимум по одной строке BALL и MOVE;
- Известно, что в качестве цветов используются слова red, green, blue и никакие другие;
- В случае дублирования шарика в ячейке нужно использовать последний;
- Остальные данные перед использованием нужно проверить. Могут быть указаны несуществующие позиции шариков, недействительные позиции передвижения, дублирование передвижения и т.д.;
- Победители определяются на основе правильного прохождения всех тестов. Главный победитель тот, чья программа работает быстрей остальных (выполняет меньше действий, но проходит все тесты).
- Сделайте Fork репозитория
- Поместите файл со своим решением в
solutions
(назовите его так же, как ваш username на гитхабе) - Поправьте метод
Solution#samples
в случае необходимости (если такой язык еще не поддерживается) - Создайте новый Pull Request