Вот такая задача:
Есть "черный ящик".
Дальше за_loop_ленная последовательность
1. Вход - комбинация из 9 нулей и единиц
2. На выходе - тоже, комбинация из 9 нулей и единиц
Интерпретация:
девять символов означают клетки в игре "крестики-нолики":
123
456
789
1- что-то изменилось, 0 - ничего не изменилось(1000000 - поставлен знак в левый верхний угол)
вход - значит противник походил
Выход - реакция программы
и так по кругу...
Периодически может еще поступать сигнал
Победа
Поражение
Ничья
Естественно наборы входных и выходных данных запоминаются...
НО чтобы не было соблазна запомнить все варианты игры, программа периодически, например, после какого-то кол-ва поражений "умирает" т.е. удаляет всю свою память, всю базу игр.
Чтобы не было тоскливо и обидно за бесцельно прожитие годы программа в этот момент "продолжает род" т.е. передает ограниченную часть своей базы новой программе и та продолжает дело....
Цель игры создать алгоритм которой приведет к появлению бессмертной программы....
т.е. той у которой невозможно выиграть в крестики нолики.
(для нашего примера)
Естественно в алгоритме программы не должно быть "модели" игры в крестики-нолики. т.к. это только частный случай.... и правила могут быть изменены....
причем в ней даже не должно быть правил игры
т.е. она изначально не должна знать что ходить можно только в одну клетку и только в свободную клетку (Реакция 100000001 -не должна приносить никакого результата для игры, так же как и ход в то поле в котором уже есть символ)...
Вот такие дела...
Социальные закладки