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

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

Введите в вашу программу параметры по числу цветов и числу шашек в комбинации, как и по степени сложности:

простая: 4 шашки, 6 цветов, 6 попыток;

средняя: 6 шашек, 8 цветов, 8 попыток.

Особой трудности нет. Игра заведомо приятна. Отладьте диалог…

Игра 7. Пляж Ботафого.

Несколько лет назад я отправился вести курс в Понтификальном университете Рио-де-Жанейро. Часть моей семьи смогла присоединиться ко мне на несколько дней. Мы отправились посмотреть на знаменитую «Сахарную голову», расположенную вблизи Ботафого. Мы прибыли на место. В нескольких стах метров перед нами «Сахарная голова» на берегу маленькой бухты открывала весьма привлекательный пляж. Чтобы его достичь, мы должны были преодолеть одно препятствие: автостраду. Нам очень хотелось отправиться на пляж и насладиться морем (мы еще не знали, насколько оно может быть загрязнено!). Но очевидным образом не было никаких средств пересечь эту автостраду. Ни один переход не пересекал ее поверху, это мы видели. Не было поблизости и подземных переходов. Мы не говорили по-бразильски (он произошел от португальского, но он отошел от языка, на котором говорят в Лиссабоне, так же сильно, как язык Квебека отличается от французского в Париже). Наконец, мы попытались что-нибудь понять с помощью моего приблизительного английского. «Чтобы попасть туда? Пересеките автостраду…» Это не было многообещающим развлечением. Движение было интенсивным. Бразильцы водят машины на большой скорости. Не слушая ничего, кроме зова нашей отвагу мы успешно достигли покрытой дерном полосы, разделяющей два направления автострады, и впали в глубокое уныние. Никогда нам не добраться до цели! Но отступать было некуда. Либо в одном, либо в другом направлении, но дорогу нужно было пересечь. Я не знаю, каким образом нам удалось ее перейти. И вот, после того, как мы решили, что пробил наш последний час, мы вылезли из моря на пляж Ботафого и — обнаружили в ста метрах подземный переход, позволявший безопасно перейти дорогу. Когда я позже рассказывал эти злоключения одному из своих коллег, он заявил мне, что вообще молодые люди не имеют привычки пользоваться ни подземными, ни нажимными переходами, они бросаются прямо под автомобили безо всякой боязни. Он рассказал мне также, что после торжественного открытия надземного перехода, который пересекал ту же автостраду немного выше Фламенко, в одном журнале был опубликован юмористический рисунок. На нем была изображена мать семейства, катящая детскую коляску и тянущая другой рукой ребенка, чтобы перейти пешком автотрассу у надземного перехода, говоря «Какой удобный переход! Наконец-то мы сможем переходить дорогу в тенечке…»

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

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

Расстояние между машинами постоянно, В верхней полосе оно равно 18 (17 точек между двумя машинами) и возрастает на 1 в каждой следующей полосе (24 точки между двумя стрелками в нижней полосе). Стрелки представляют машины острием в направлении их перемещения. Тире указывают место вашего перехода, но это отнюдь не переход «зебра»: ни одна машина не замедлит хода, чтобы дать вам перейти! В начале игры вы находитесь вне автострады, как на рис. 2.

Скорость машин постоянна. В верхней полосе я выбрал 5: любое перемещение машин продвигает их на 5 точек влево. В результате одна из машин может уйти влево или справа может появиться новое транспортное средство, если интервал вправо увеличится более чем на 17 точек до края: расстояние между машинами поддерживается постоянным. Я решил сделать скорость машин растущей на 1 точку при каждой смене полосы: она равна 6 во второй полосе, 7 — в третьей…

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

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

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

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

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT