Чтение онлайн

на главную

Жанры

Программирование игр и головоломок
Шрифт:

Игра 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 днем.

Первый, кто доберется до 31 декабря, выигрывает.

У вас не должно возникнуть никаких затруднений ни в определении стратегии, ни в программировании этой игры. Подумайте о проверке осмысленности предлагаемых дат… Кроме того, вставьте цикл ожидания, чтобы дать игроку время для ответных действий. Компьютер должен быть вежлив и должен спросить, кто будет начинать, по крайней мере, бросить «орла» или «решку», чтобы узнать, кому начинать…

?** Игра 18. Игра с 24 картами.

Расположим на столе 24 раскрытые карты: все карты с номерами от 1 до 6 обычной колоды, где туз считается за 1. Масти карт несущественны: двойка бубен имеет то же значение, что и двойка треф.

Каждый игрок при своем ходе берет со стола карту и складывает ее значение с суммой тех, которые были взяты ранее [14] . Первый, кто берет в точности 50 очков, выигрывает. Внимание: если при вашем ходе вы, взяв карту, не можете не превысить 50 очков, то вы проиграли. Если, например, ваш партнер увеличил сумму до 49 очков, а все тузы уже взяты, то вы проиграли: карту нужно брать, а ее значение больше единицы.

14

Таким образом, подсчитывается общая сумма карт, взятых партнерами, а не отдельные суммы для каждого партнера. — Примеч. ред.

Это — вариант средневековой игры. Стратегия гораздо сложнее, потому что карт каждого сорта только 4. К этой игре нужно привыкнуть. Сперва компьютер выигрывает все партии подряд (любопытна реакция программиста: я счастлив, что моя программа меня обыгрывает). Но по прошествии нескольких партий уже я выигрываю. Тогда программу нужно улучшить.

?** Игра 19. Игра города Нима.

Ах! Эта нимская игра… кто ее не знает. Существует немало запрограммированных вариантов в большом числе публикаций и обзоров. Читатель может сказать мне, что этой игре здесь не место: если моя цель — заставить читателя программировать, то я проиграл с самого начала.

Ну, нет. Поскольку решения, предложенные в вышеупомянутых книгах (и, поскольку перечитывать их бесполезно, то я их имена и не указываю), очень плохо запрограммированы и совершенно не объяснены. Вам придется сделать лучше. Если вы знаете выигрывающую стратегию, то вам придется ее испытать, чтобы её проверить. Если вы ее не знаете, вы должны попробовать ее изобрести. Во всех случаях нужно программировать очень тщательно, чтобы не делать ненужных вычислений.

Напомним даже саму игру на тот очень мало правдоподобный случай, если вы ее еще не знаете. Это игра для двоих, и компьютер будет вашим партнером. На столе — кучи спичек в некотором количестве, и в каждой куче — некоторое количество спичек. Например, есть 5 кучек с 8, 13, 7, 5, 9 спичками.

Поделиться:
Популярные книги

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Бастард Императора. Том 8

Орлов Андрей Юрьевич
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 8

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Эра Мангуста. Том 2

Третьяков Андрей
2. Рос: Мангуст
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эра Мангуста. Том 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Один на миллион. Трилогия

Земляной Андрей Борисович
Один на миллион
Фантастика:
боевая фантастика
8.95
рейтинг книги
Один на миллион. Трилогия

Помещицы из будущего

Порохня Анна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Помещицы из будущего

Шлейф сандала

Лерн Анна
Фантастика:
фэнтези
6.00
рейтинг книги
Шлейф сандала

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Император

Рави Ивар
7. Прометей
Фантастика:
фэнтези
7.11
рейтинг книги
Император

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри