Читайте также:
|
|
Вот и все. На этом изложение программирования на Visual Basic я заканчиваю. Того, что вы знаете, вполне достаточно для программирования большинства задач из любой сферы человеческой деятельности. Дальнейшее изучение Visual Basic позволит вам составлять более эффективные программы, имеющие новые возможности в смысле использования объектов, работы с базами данных, Интернетом и т.д.
Дорогой друг! Вы вполне созрели для того, чтобы выполнить задание на звание «Программист-любитель II ранга». На выбор – одно из трех:
· Игра в морской бой
· Игра в крестики-нолики на бесконечном поле
· Игра "Танковый бой".
Во всех трех программах игра должна вестись между человеком и компьютером.
Правила морского боя без компьютера общеизвестны. Вы с приятелем тайком друг от друга рисуете на листочках в клетку квадратные "моря" размером 10 на 10 клеток, обозначаете строки буквами, а столбцы цифрами и расставляете свои корабли. Стреляете по очереди, называя координаты квадратика, куда производится выстрел. Правила крестиков-ноликов на бесконечном поле такие же, как и у обычных крестиков-ноликов на поле 3 на 3, с тем отличием, что в линию нужно выстроить не 3, а 5 ноликов или крестиков. Между прочим, очень приятная игра. Конечно, запрограммировать игру на бесконечном поле довольно трудно, поэтому рекомендую ограничиться полем 20 на 20. Правила танкового боя приведу чуть ниже.
Требования к первым двум играм:
· Компьютер должен обнаруживать незаконное расположение кораблей и незаконные ходы в крестики-нолики.
· Компьютер должен вести счет партий и отображать его на экране
· Компьютер должен обеспечить возможность сохранения игры и загрузки сохраненной игры
· Удобный интерфейс. В частности, человек должен иметь возможность легко расставлять корабли, ставить нолики или крестики (например, мышкой или при помощи клавиш передвижения курсора и клавиши пробела)
· Неплохо сделать меню с такими, примерно, пунктами: сохранить игру, загрузить игру, выход из игры, помощь. В случае помощи достаточно по требованию игрока показать правила игры
· Для того, чтобы не было игр-близнецов, ходы компьютера не должны быть железно заданы. Например, свои корабли компьютер должен располагать от игры к игре с разумной долей случайности, чтобы человек не мог легко догадаться, где будут стоять корабли в следующей игре. То же относится к выстрелам и ходам в крестики-нолики.
· Рекомендации по выбору уровня сложности стратегии: В морском бое вы вполне сможете сделать стратегию компьютера очень сильной, чтобы человеку было трудно у него выиграть. А вот в крестиках-ноликах стратегию компьютера сделать очень сильной затруднительно. Достаточно, если компьютер будет обнаруживать простейшие угрозы человека: четверки с одним свободным концом и тройки с двумя свободными концами - и сам стремиться к их созданию.
· Ни в той, ни в другой игре нет особой нужды использовать объекты пользователя.
А вот правила танкового боя.
Посмотрите на рисунок. Танки передвигаются по коридорам. Ваши танки показаны светлыми треугольничками и стрелкой, танки противника - черными стрелками. Светлая стрелка - ваш личный танк, вы управляете им мышкой или с помощью клавиатуры. Остальными вашими танками и танками противника управляет компьютер. Танки стреляют, стараясь попасть в противника и не попасть в своего. По коридорам танки бродят случайно.
Если ваш личный танк врежется в любой другой танк, то он погибнет, остальные танки при столкновении не погибают.
В бою побеждает сторона, уничтожившая все танки противника. При этом неважно, погиб ваш личный танк или нет.
Необязательные правила: Вы можете выбрать любой из трех типов игры:
1 - Простая игра. В случае победы в бою вы переходите на следующий уровень. Всего в игре 12 уровней, различающихся числом снарядов у вашего танка и числом рядов на поле боя. Число снарядов у остальных танков очень большое. Сохраняться в простой игре нельзя.
2 - Произвольная игра. Здесь нет уровней. Число снарядов и число рядов вы настраиваете сами.
3 - Трудная игра. Уровни те же, что и в простой игре, но для перехода на следующий уровень мало просто победить в бою, надо победить убедительно.
При трудной игре ваши результаты сохраняются автоматически. При входе в трудную игру вы должны ввести свое имя и пароль. Пароль хорош тем, что никто другой не сможет войти в игру под вашим именем и таким образом воспользоваться вашими достижениями. Плох пароль тем, что если вы его забудете, то вам придется начинать игру с 1 уровня и под другим именем.
Отчаявшись пройти уровень в трудной игре, вы можете перейти на тот же уровень в простой.
Когда я программировал эту игру, я не заботился о красоте и занимательности. Это - хотя и большая, но всего лишь учебная задача на использование объектов. Улучшайте игру и ее правила, как вам заблагорассудится.
Советы по программированию. Первые две игры не требуют объектов, третья требует. Правда, в морском бое вполне можно создать массив объектов "Корабль". Хоть корабли и неподвижны, но так, возможно, будет проще анализировать игру. Не знаю, не пробовал.
В первых двух играх информацию о ходе игры удобно представлять в двумерных массивах, в третьей игре это не нужно.
В первых двух играх программы получатся проще, если после каждого хода человека компьютер будет анализировать игровое поле с самого начала, так, как если бы он видел его впервые и не знал, какой из ходов человека был последним. Очень трудно в крестиках-ноликах заставить компьютер размышлять о том, почему человек поставил нолик именно в данную клетку и что за каверзу он там задумал. Гораздо легче просмотреть все поле и поискать там четверки с одним свободным концом и тройки с двумя.
В танковой битве объектами будут:
· Танк под управлением компьютера
· Танк под управлением человека
· Снаряд
Для простоты запретите танку стрелять, пока его снаряд от предыдущего выстрела все еще летит. Тогда размер массива снарядов не превысит размер массива танков.
Любая из этих задач достаточно сложна и потребует многих дней напряженной работы. В книге таких сложных задач я не программировал. Если вам кажется, что вы не сможете удовлетворить всем перечисленным в задании требованиям, потому что «мы этого не проходили», то я вам заявляю – все, что нужно, мы проходили! Нужно только как следует подумать над самым важным: над представлением информации об игре и над алгоритмами, по которым компьютер будет делать ходы.
У вас есть все шансы сделать так, что любая программа может приобрести популярность во всем мире, так как при выполнении всех требований задания и при некоторой фантазии с вашей стороны у нее будет достаточно привлекательный вид.
Желаю успеха!
Дата добавления: 2015-10-26; просмотров: 137 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Работа с базами данных. Элементы управления Data и DBGrid. Язык SQL. | | | Пример настоящей программы для компьютера на языке Лого |