Читаем Программирование игр и головоломок полностью

1. Никакого внутреннего представления игры. Скорость движения машин и интервалы между машинами суть постоянные величины, которые вы можете поместить в таблицу или каждый раз пересчитывать.

Вы можете задать себе с помощью маленькой таблицы положение крайней левой машины на каждой строке. Все остальное можно отсюда вывести. Но вам придется проделать немало вычислений к моменту вывода на экран.

2. Можно сохранять каждую строку в памяти в виде цепочки символов (за исключением, быть может, первых символов, крайних слева). Тогда вывод на экран очень прост. Передвижение машин влево можно получить, удаляя заданное число символов в начале цепочки и добавляя столько же символов справа, соблюдая условия правильного расположения стрелок на правильных местах.

Вам не нужно экономить ни время вычисления, ни объем памяти. Выберите решение, которое, как вам кажется, проще всего реализовать…

Игра 8.

Перемещение шадока почти не составляет проблемы: вы читаете данную в ответ цепочку символов. Если она содержит П, то абсцисса шадока увеличивается на 1, и т. д.

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

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

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

Игра 9.

Мало что можно добавить. Единственная трудность — движение убийц. Они должны стремиться приблизиться к игроку, но это не всегда возможно. Вы легко можете определить направление наилучшего перемещения: это направление, которое уменьшает скачок координат убийцы и игрока. Если такое перемещение возможно, то убийца перемещается. Если оно невозможно, то следует испытать близкие перемещения,

Вот способ действовать: задайте таблицу, определяющую возможные перемещения, помеченные индексами от 1 до 8, Желательное перемещение соответствует некоторому элементу таблицы, скажем, элементу с номером k. Испытаем тогда перемещение k, затем, если оно невозможно, перемещения k − 1 и k + 1, затем k − 2 и k + 2… Когда индекс становится нулем, мы его заменяем на 8, Когда он становится больше восьми, мы заменяем его на 1, что сводится к организации таблицы по круговому списку. Внимание, это допустимо только в случае, если вы правильно упорядочили перемещения в таблице…

Как и в предыдущих играх, тщательно продумайте способ представления игры, задайте всю необходимую информацию для упрощения программирования. Не позволяйте себе увлечься оптимизацией времени вычислений или объема требуемой памяти. Эта игра должна легко поместиться на любом микрокомпьютере. Работайте аккуратно: если то, что вы запрограммировали, не удовлетворяет правилам игры, то ваша игра нечестная.

Игра 10.

Добавить нечего. Это проще, чем в случае убийц. Вы определяете направление перемещения, которое наилучшим образом приближает робота к игроку (перемещение, которое уменьшает скачки обеих координат). Вы перемещаете робота в этом направлении. Если он попадает в расщелину, то он исключается из игры. Если он попадает на поле другого робота, то он также исключается. Используйте генератор случайных чисел, чтобы решить, помещаете ли вы в углы новых роботов. Например, если случайное число меньше 0,7, то вы ставите нового робота; в противном случае вы не делаете ничего. Это означает, что есть 7 шансов из 10 увидеть появление нового робота…

Игра 11.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных