Skip to content

PragmaticPerl/golf-10

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

«Искусственный интеллект»

В то время как Google тестирует автомобили, которые управляются роботом, предлагаю не отставать и реализовать искусственный интеллект, который бы управлял Змейкой.

По условиям игры, необходимо управлять змейкой, которая двигается по плоскости и ищет еду. Движение змеи остановить невозможно, после поглощения еды змея увеличивается в длине. Змея не должна натыкаться на препятствия: границы экрана, а также саму себя, в противном случае игра завершается.

В репозитории golf-10 реализован простейший вариант консольной игры с использованием библиотеки Curses. В простейшем варианте змейкой можно поуправлять вручную (snake.pl), а можно поиграть и против роботов (snake-fight.pl), но в этом случае надо реализовать хотя бы одного такого робота.

Как сделать своего робота? Для этого необходимо создать файл скрипта в каталоге script с именем your_github_login.pl. Ваш робот будет запущен в отдельном процессе и на STDIN получит строку с шестью полями, разделёнными пробелом, со следующими данными:

  1. содержимое поля над головой змеи ( 0 --- пусто, # --- препятствие, @ --- яблоко(пища) )
  2. содержимое поля справа от головы змеи
  3. содержимое поля снизу от головы змеи
  4. содержимое поля слева от змеи
  5. смещение по оси Y до яблока
  6. смещение по оси X до яблока

Например:

0 0 # 0 -10 2

На STDOUT должны будут быть переданы значения смещения по координатам Y и X, относительно текущего положения головы, например:

-1 0

Смещение по оси Y на 1 вниз, нет смещения по оси X. Необходимо учитывать, что змейка не может двигаться по диагонали, поэтому только одна координата может иметь ненулевое смещение. В нашем случае координаты точки 0,0 находятся в левом верхнем углу, ось Y растёт вниз, в ось X вправо.

Цель игры --- написать не просто самый короткий вариант реализации управления, но и самый результативный в плане количества поглощённых яблок. И, как обычно, победителя определит make test.

Проверяться решения будут на последней стабильной версии Perl, т.е. 5.18.1 (или 5.18.2, если она выйдет в декабре). Приём решений закончится как только куранты начнут бить 12 ударов и начнётся Новый 2014 год. Поднимая бокал шампанского, можете загадать, чтобы ваш вариант выиграл в конкурсе, ведь вдруг потом вашим роботом заинтересуются в Google.

Владимир Леттиев

About

Perl Golf Contest of #10 issue of PP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages