Привыкнув к игре с двумя лисами, я вначале никак не мог приспособиться к этой игре, особенно к манере лисы ходить по диагонали» Но это не страшно. С того момента, как вы полностью ухватите способ движения (и, в частности, возможность перейти из h в b и из j в f на рис. 11), эта программа даст вам настоящую возможность играть: вы можете применить ту или иную стратегию игры на выигрыш против машины, которая такой стратегией не очень-то обладает…
Игра 15. Игра Доминика.
Уж здесь-то я могу ручаться, что это игра для начинающих. Ее для своего малюсенького микрокомпьютера придумал мой племянник Доминик. Она напоминает «плату за страх» (игра 9). Начальное положение игры — то же (рис. 4). Доминик взял прямоугольник поменьше и уменьшил число препятствий. Для начала он поставил препятствия на определенные места.
Правила игры изменены. Убийцы не вооружены огнестрельным оружием, у них — только ножи. Они не могут добраться до игрока иначе, чем достигнув занимаемого им поля. Игрок перемещается на 1 шаг в любом направлении (по горизонтали, по вертикали, по диагонали) с условием перемещаться на свободное поле. Убийцы на своем ходе приближаются к игроку на один шаг — обязательно на свободное поле — в любом направлении.
Игра осталась очень интересной. Проблема нахождения игрока и убийцы на смежных линиях больше не стоит. Если убийца оказывается рядом с игроком в каком-либо направлении, он его хватает на следующем ходе, если игрок не удаляется от него при своем ходе…
4. Игры со стратегией
В этом разделе мы предлагаем программировать игры, главная трудность которых заключается в том, чтобы дать компьютеру хорошую стратегию. Разделение па игры со стратегией и без нее до некоторой степени произвольно. Уже по поводу случайных чисел мы предлагали игру со стратегией (игра 2). Конечно, совершенно необходимо, чтобы вы могли хоть немного развлечься… Некоторые из игр, с которыми вы познакомитесь, требуют не намного больше размышлений, чем игра в лис и кур. На самом деле это во многом зависит от особенностей вашего ума: стратегия, очевидная для одного, является головоломкой для другого.
Можно также упрекнуть некоторые игры в том, что они теряют всякую привлекательность, поскольку компьютер располагает выигрывающей стратегией. Если партнер компьютера не знает этой стратегии, то он проигрывает все партии. Если же он ее знает, то тот, кто делает выигрывающий начальный ход, неминуемо становится победителем.
Наконец, некоторые игры настолько распространены, что я постеснялся их здесь предлагать: такова, например, игра Отелло. Не пытайтесь браться за шашки или шахматы. Слишком трудно!
В этом разделе вам предстоит встретиться с двумя трудностями:
— найти стратегию для компьютера;
— запрограммировать ее.
Именно потому, что есть так много опубликованных плохих программ, я, не ссылаясь на эти публикации, добавил игру Нима, Сочувствую всем тем, кто может оказаться обиженным. Но тот, кто публикует программы, всегда рискует. Таковы правила этой игры.
Игра 16. Чтобы войти в курс дела,
Это — крайне простая игра, которую Роуз-Бол [BAL] относит к средневековым играм, поскольку ей действительно более 500 лет.
Вы выкладываете на стол 50 спичек. Каждый игрок по очереди вынимает спички из кучи, по меньшей мера 1 и не более 6. Кто берет последнюю спичку, выигрывает.
Вы можете реализовать ее, заставляя компьютер сообщать число оставшихся спичек, Когда очередь хода за компьютером, он делает ход настолько быстро, что игрок не успевает увидеть происходящего. Включите в вашу программу «цикл ожидания», чтобы замедлить игру компьютера (цикл от 1 до нескольких тысяч, в котором ничего не происходит:
ДЛЯ i = 1 ДО 2000 ВЫПОЛНЯТЬ ВЕРНУТЬСЯ
)
Вы можете изменить игру, взяв в качестве допускающих изменение данных — начальное число спичек и максимальное число спичек( которое можно вытащить на каждом ходе.
? Игра 17. Игра дат.
Эта игра предложена Берлокеном [BER]. Номер года в ней не очень существен, но предполагается, что год не високосный: в феврале 28 дней. Первый игрок сообщает какую-нибудь дату января. Каждый игрок на своем ходе называет более позднюю дату, увеличивая либо календарную дату в месяце, либо месяц, но не то и другое сразу. Если, например, начальной датой было 8 января, то можно перейти к 8 марта или к 12 января. Можно увеличить меньше: 9 января или 8 февраля; можно перейти сразу к 8 декабря или 31 января. Внимание: если вы переходите к 31 января, то ваш противник сможет в дальнейшем менять только месяцы, и притом лишь месяцы с 31 днем.