ПОНЯТНО О Visual Basic NET (том 3)

       

Миг между прошлым и будущим


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

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

  • Игра в морской бой
  • Игра в крестики-нолики на бесконечном поле
  • Игра «Танковый бой».
  • Во всех трех программах игра должна вестись между человеком и компьютером.

    Правила первых двух игр:

    Правила морского боя без компьютера общеизвестны. Вы с приятелем тайком друг от друга рисуете на листочках в клетку квадратные «моря» размером 10 на 10 клеток, обозначаете строки буквами, а столбцы цифрами и расставляете свои корабли. Стреляете по очереди, называя координаты квадратика, куда производится выстрел.

    Правила крестиков-ноликов на бесконечном поле такие же, как и у обычных крестиков-ноликов на поле 3 на 3, с тем отличием, что в линию нужно выстроить не 3, а 5 ноликов или крестиков. Между прочим, очень приятная игра. Конечно, запрограммировать игру на бесконечном поле довольно трудно, поэтому рекомендую ограничиться полем 20 на 20.

    Правила танкового боя приведу чуть ниже.

    Требования к первым двум играм:

    • Компьютер должен обнаруживать незаконное расположение кораблей и незаконные ходы в крестики-нолики.
    • Компьютер должен вести счет партий и отображать его на экране

    • Компьютер должен обеспечить возможность сохранения игры и загрузки сохраненной игры




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


    • Неплохо сделать меню с такими, примерно, пунктами:

      сохранить игру, загрузить игру, выход из игры, Help.


    • Для того, чтобы не было игр-близнецов, ходы компьютера не должны быть «железно» заданы. Например, свои корабли компьютер должен располагать от игры к игре с разумной долей случайности, чтобы человек не мог легко догадаться, где будут стоять корабли в следующей игре. То же относится к выстрелам и ходам в крестики-нолики.


    • А вот правила танкового боя:

      Посмотрите на Рис. 27.6.



      Рис. 27.6

      Танки передвигаются по коридорам. Танки вашей армии показаны светлыми треугольничками, танки противника – черными стрелками. Светлая стрелка – ваш личный танк, вы управляете им мышкой или с помощью клавиатуры. Остальными вашими танками и танками противника управляет компьютер. Танки стреляют, стараясь попасть в противника и не попасть в своего. По коридорам танки бродят случайно.

      Если ваш личный танк врежется в любой другой танк, то он погибнет, остальные танки при столкновении не погибают, а отскакивают.

      В бою побеждает сторона, уничтожившая все танки противника. При этом неважно, погиб ваш личный танк или нет.

      Необязательные правила: Вы можете выбрать любой из трех типов игры:

      1 - Простая игра. В случае победы в бою вы переходите на следующий уровень. Всего в игре 12 уровней, различающихся числом снарядов у вашего танка и числом рядов на поле боя. Чем меньше рядов, тем труднее. Число снарядов у остальных танков очень большое. Сохраняться в простой игре нельзя.

      2 - Произвольная игра. Здесь нет уровней. Число снарядов и число рядов вы настраиваете сами.

      3 – Игра с сохранением. Уровни те же, что и в простой игре, но гораздо более трудные. При этой игре ваши результаты сохраняются автоматически. При входе в игру вы должны ввести свое имя и пароль. Пароль хорош тем, что никто другой не сможет войти в игру под вашим именем и таким образом воспользоваться вашими достижениями. Плох пароль тем, что если вы его забудете, то вам придется начинать игру с 1 уровня и под другим именем.



      Отчаявшись пройти уровень в игре с сохранением, вы можете утешиться тем же уровнем в простой.

      Когда я программировал эту игру, я не заботился о красоте и занимательности. Это – хотя и большая, но всего лишь учебная задача на использование объектов. Улучшайте игру и ее правила, как вам заблагорассудится.

      Советы по программированию:

      Вот мое мнение о сложности стратегии: В морском бое

      вы вполне сможете сделать стратегию компьютера очень сильной, чтобы человеку было трудно у него выиграть. А вот в крестиках-ноликах это сделать гораздо труднее. Достаточно, если компьютер будет обнаруживать простейшие угрозы человека: четверки с одним свободным концом и тройки с двумя свободными концами – и сам стремиться к их созданию.

      Во всех трех играх используйте собственные классы, хотя в крестиках-ноликах не сразу поймешь, зачем они нужны. Подсказка: это четверки с одним свободным концом и тройки с двумя свободными концами. В морском бое класс – это корабль.

      В первых двух играх информацию о ходе игры удобно представлять в двумерных массивах, в третьей игре этого не нужно.

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

      В танковой битве объектами будут:

      • Танк под управлением компьютера


      • Танк под управлением человека


      • Снаряд


      • Для простоты запретите танку стрелять, пока его снаряд от предыдущего выстрела все еще летит. Тогда размер массива снарядов не превысит размер массива танков.

        До свидания!

        Любая из этих задач достаточно сложна и потребует многих дней напряженной работы. В книге таких больших и сложных задач я не программировал. Если вам кажется, что вы не сможете запрограммировать все, что я перечислил в требованиях и советах, потому что «мы этого не проходили», то я вам заявляю – все, что нужно, мы проходили! Надо только как следует подумать над самым важным – над представлением информации об игре и над алгоритмами, по которым компьютер будет делать ходы. Пусть алгоритмы сначала родятся у вас в голове, а потом – на компьютере. Работая над задачей, значительную долю времени вы должны проводить вдали от компьютера!

        У вас есть все шансы сделать так, чтобы созданная вами игра была интересной, удобной и привлекательной, а значит могла приобрести популярность у ваших друзей. И не только…

         Желаю успеха!


        Содержание раздела