Как сделать игру на бейсике

Table of Contents:

Начало работы с QBasic

Если у вас нет QBasic в вашей системе, вы можете загрузить оригинальную версию с сайта Пита QB (см. Ресурсы) или более свежую версию под названием QB64, которая разработана для совместимости с оригиналом. Как только вы откроете его, вы увидите синий экран. Введите следующее:

Затем нажмите Shift + F5, чтобы запустить программу. Вот что происходит:

«CLS» означает «очистить экран» и гарантирует, что ваша программа запускается с пустого экрана; в противном случае вы увидите остатки от предыдущей программы.

«PRINT» просто печатает строку текста на экране. Если вы просто печатаете число, вам не нужны кавычки.

Вторая строка «PRINT» печатает текст вместе с тем, что вводил пользователь.

«КОНЕЦ», как и ожидалось, завершает программу.

QBasic Guessing Games

Введите следующий код в QBasic:

CLS chances% = 1 RANDOMIZE TIMER number% = INT (RND * 10) + 1 PRINT «Я думаю о числе от 1 до 10. У вас есть три шанса сделать это правильно».

ДЕЛАЙТЕ, КОГДА ШАНСЫ% число% ПОТОМ ПЕЧАТИ «Слишком высоко». Иначе печать «Произошла ошибка. Попробуйте еще раз.» END IF шансы% = шансы% + 1 LOOP

ПЕЧАТАТЬ ПЕЧАТЬ «У тебя кончились шансы! Извини!» КОНЕЦ

youwin: PRINT PRINT «Вы угадали номер! Номер был»; число%; «!» КОНЕЦ

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

После очистки экрана «chances% = 1» создает числовую переменную и устанавливает ее равной 1. Это позволит отследить все шансы игрока угадать число.

Затем программа запрашивает предположение с помощью команды INPUT, сохраняет ее в предположении% и переходит к обработке с помощью метода «IF … THEN … ELSE». Как видите, он работает логически: «ЕСЛИ утверждение верно, ТОГДА сделайте это; В противном случае, если другое утверждение истинно, затем сделайте это; В противном случае, остальное верное, затем сделайте это».

Прямо перед концом цикла есть строка «chances% = chances% + 1». Это гарантирует, что цикл запускается только три раза.

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

Больше игровых идей

С PRINT, INPUT, IF … THEN … ELSE и GOTO у вас есть все необходимое для создания простого текстового приключения. Вот пример кода:

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

Вектор-06Ц, игра The House на Бейсике (Vector-06C, Basic game The House) (Февраль 2021).

Источник

Программирование игр в Visual Basic на уроках информатики

При изучении наук примеры полезнее, чем правила. Иссак Ньютон.

Предлагаемые вниманию коллег практические работы по программированию игр целесообразно использовать после изучения следующих тем: «Создание массива управляющих элементов», «Обработка массивов», «Графические возможности Visual Basic». После непосредственного изучения темы «Обработка событий мыши. Технология Drag-and-Drop» мы выполняем несколько практических работ по программированию несложных игр, основная цель которых – обобщение, систематизация и закрепление на практике изученного ранее материала.

При объяснении нового материала удобно использовать распечатки с изложением теории и примерами, либо методические пособия для каждого студента (мы используем оба варианта).

Приведённые практические работы рассчитаны на 3 занятия по 2 часа.

Обработка событий мыши. Технология Drag-and-Drop.

Для перетаскивания различных объектов при помощи мыши используется технология Drag-and-Drop (перетащить и бросить). Перемещаемый элемент называется источником (source), а объект, в котором он будет после этого находиться, носит название адресата (target). Объект становится адресатом в том случае, когда при завершении операции перетаскивания указатель мыши находится в его границах.

Для перемещения объекта необходимо наличие в программе соответствующих процедур. К элементу управления может применяться описанная технология только в том случае, если он не имеет фокус в этот момент. Для запрещения получения фокуса элементом необходимо для него задать свойство TabStop = False.

Свойства, события и методы технологии Drag-and-Drop.

Если установлен ручной режим перемещения (DragMode = 0), то в этом случае операция может быть выполнена только при помощи метода Drag. При автоматическом режиме возможно перетаскивание элемента без использования Drag.

Событие DragDrop, возникающее при завершении операции, имеет следующие параметры:

КонстантаЗначениеОписание
vbCancel0Отмена операции
vbBeginDrag1Начало перетаскивания
vbEndDrag2Окончание операции

Пример 1: Имитация действия Корзины путём перетаскивания в неё объекта. Восстановление объекта происходит при двойном щелчке по корзине.

Как сделать игру на бейсике. Смотреть фото Как сделать игру на бейсике. Смотреть картинку Как сделать игру на бейсике. Картинка про Как сделать игру на бейсике. Фото Как сделать игру на бейсике

На форме разместить метку Label1 (Положи мяч в корзину), кнопку Command1 (Выход), 2 элемента управления Image (в один поместить изображение мяча, в другой – пустой корзины).

Dim Mx, My As Single, P As Boolean

Private Sub Form_Load() ‘загрузка формы

P = False ‘признак пустой корзины

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = vbLeftButton Then ‘если нажата левая кнопка мыши

Call Image1.Drag(vbBeginDrag) ‘начало перетаскивания

Private Sub Image2_DragDrop(Source As Control, X As Single, Y As Single) ‘завершение перетаскивания объекта в корзину

Source.Visible = False ‘мяч стал невидим

P = True ‘признак полной корзины

Image2.Picture = LoadPicture(«LEO4.ICO») ‘рисунок полной корзины

Label1.Caption = «Достань мяч из корзины. » ‘изменили надпись в метке

Private Sub Image2_DblClick() ‘извлечение объекта из корзины

Image1.Visible = True ‘мяч стал видимым

P = False ‘признак пустой корзины

Image2.Picture = LoadPicture(«LEO3.ICO») ‘загрузить рисунок пустой корзины

Label1.Caption = «Положи мяч в корзину!» ‘изменить надпись в метке

‘Завершение перетаскивания объекта на форме с учётом поправки (необязательная процедура)

Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)

При автоматическом перетаскивании элемента по форме при завершении операции его левый верхний угол будет находиться в той точке, где располагался указатель при отпускании кнопки мыши, независимо от того, где он находился на элементе в начале перетаскивания. Для того, чтобы конечное расположение совпадало с контуром, который отображается по умолчанию при перетаскивании (или с изображением, установленным в свойстве DragIcon), необходимо ввести поправку. После установления ручного режима становится возможным определение координат точки, в которой находился указатель в начале перетаскивания путём обработки события MouseDown для соответствующего элемента, что позволяет откорректировать параметры метода Move. [1]

Практическая работа 1

Предварительная подготовка к работе (может быть выполнена дома): в любом графическом редакторе разбить произвольный рисунок на 4 части и сохранить в разных файлах (Ris1.bmp, Ris2.bmp, Ris3.bmp, Ris4.bmp). Например, в Paint можно использовать команду ПРАВКА – Копировать в файл. Не изменяйте пропорций рисунков. Создайте ещё один рисунок Ris5.bmp – квадрат с однотонной заливкой (будем использовать его в качестве фона, когда необходимо скрыть предыдущие рисунки).

Задание. Разработать проект «Пазлы». Исходный рисунок разбит на 4 части. Необходимо сложить его на пустом поле, разбитом на 4 части. Исходный вид формы показан на рисунке .

Интерфейс проекта. На форме разместить следующие элементы управления:

Как сделать игру на бейсике. Смотреть фото Как сделать игру на бейсике. Смотреть картинку Как сделать игру на бейсике. Картинка про Как сделать игру на бейсике. Фото Как сделать игру на бейсике

Dim Mx, My As Single, Path As String, k, i, j, t As Integer, A(0 To 3) As Integer

‘Mx, My – координаты объекта при перемещении; Path – путь к файлу с рисунком;

Private Sub Form_Load() ‘загрузка формы

Private Sub Command1_Click() ‘Выход

Private Sub Command2_Click() ‘Проверка

k = 0 ‘количество верных ответов

If Image2(i).Index = A(i) Then k = k + 1 ‘индекс в массиве рисунков должен совпадать с номером рисунка

Private Sub Command3_Click() ‘Сброс

Image3(i).Visible = True ‘восстанавливаем все рисунки

Image2(i).Picture = LoadPicture(«Ris5.bmp») ‘загружаем пустой фон

Label1.Caption = «Собери картинку»

Private Sub Command4_Click() ‘Справка

Label2.Visible = True ‘метка становится видимой и появляется текст справки

Label2.Caption = «Перемещайте картинки при нажатой левой кнопке мыши в нужные клетки. При двойном щелчке по картинке она вернётся на прежнее место!»

Timer1.Enabled = True ‘включаем таймер

Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) ‘Поправка

Private Sub Image2_DblClick(Index As Integer) ‘Возвратить картинку на место по двойному щелчку по рисунку

Image2(Index).Picture = LoadPicture(«Ris5.bmp») ‘загружаем пустой фон

t = A(Index) ‘запоминаем номер рисунка, который нужно вернуть на место

Image3(t).Visible = True ‘делаем рисунок с номером t видимым

Private Sub Image2_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single) ‘завершение перетаскивания

Private Sub Image3_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = vbLeftButton Then

Call Image3(Index).Drag(vbBeginDrag) ‘начало перетаскивания рисунка

i = Index ‘запоминаем индекс поля в Image3, из которого перемещаем рисунок

If i = 0 Then Path = «Ris1.bmp» ‘путь к рисунку

If i = 1 Then Path = «Ris2.bmp»

If i = 2 Then Path = «Ris3.bmp»

If i = 3 Then Path = «Ris4.bmp»

Private Sub Timer1_Timer() ‘Таймер

Label2.Visible = False ‘скрыть текст справки

Практическая работа 2

Проект «Расположить объекты в хронологическом порядке».

Как сделать игру на бейсике. Смотреть фото Как сделать игру на бейсике. Смотреть картинку Как сделать игру на бейсике. Картинка про Как сделать игру на бейсике. Фото Как сделать игру на бейсике

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

С некоторыми проектами можно познакомиться на сайте ПОРТФОЛИО 2006/2007 г. («Информатика в играх и задачах», «Компьютерный тест Умник»), 2007/08 г. («Электронные кроссворды по информатике», проект «Компьютерная графика»).

Источник

Создание игр на VB: использование графики и звуков

Меня заинтересовала тема создания своих игр, поэтому у меня сразу возникли вопросы:

1. Возможно ли на VB 6.0 создать игру с неплохой графикой и физикой, как например в том же Counter-Strike 1.6 (потому что простые 2D игры типа тетриса и сапёра не интересуют)? А если нет, то какой язык мне выбрать? (C++, C#, Delphi).

2. Есть ли где подробные какие-либо руководства для новичков (прямо совсем чайников!) в этом направлении, например по OpenGL, DivX, структура движков, как их создавать, как использовать спрайты и т.д., поскольку у меня в этом вопросе знания базовые.

3. И в довершении к этому такой вопрос: как сделать так, чтобы после определённого события проигрывался звук?

Как сделать игру на бейсике. Смотреть фото Как сделать игру на бейсике. Смотреть картинку Как сделать игру на бейсике. Картинка про Как сделать игру на бейсике. Фото Как сделать игру на бейсикеСоздание звуков для игр
Здравствуйте! Не знаю тот ли это раздел форума, но у меня вопрос: в какой программе лучше всего.

Использование одновременно двух звуков
Не могли бы вы попонятнее объяснить как можно использовать одновременно две звуковые дорожки? Это.

Создание звуков в Delphi
Доброго времени суток уважаемые форумчане, я тут решил немного поизвращаться, и меня интересует.

Создание звуков/музыки на SoundForge с нуля
Можна на SoundForge создать музыку как DJ? Если можна то как.

Меня умиляют такие советчики! Люди по 5 лет под руководством опытных преподавателей изучают С++, и то не всякий после этого игру напишет. Вряд ли топикстартеру этот совет подойдет.
Есть же для игроделов простые и эффективные ЯП типа ДаркБейсик, BlitzMax, Blitz3D и т.п. продукты, специально предназначенные для быстрого создания 3D игр. Их можно изучить в течении пары недель и уже начать писать свою игру.

Добавлено через 20 минут
Небольшой обзор игродела
3D Game Maker
Рано или поздно даже самая лучшая компьютерная игра может надоесть. Надо идти за новой? Вовсе нет!
С помощью программы «Конструктор 3D игр» вы сможете создать неограниченное количество собственных неповторимых игр, даже если вы не знакомы с программированием.
Никогда прежде создание компьютерной игры не было таким увлекательным и простым занятием.
Всего за несколько минут ваша идея воплотится в настоящую трехмерную игру, а количество таких игр может быть ограничено только вашей фантазией. Несколько щелчков мыши, и задуманная вами игра становится реальной!

3D Rad Rus
Весьма и весьма интересный конструктор трехмерных игр. Этот конструктор является одним из самых легких в плане программирования трехмерных игр: здесь набор кода почти отсутствует, а если что вам и придётся набирать, так это координаты объектов или путь к текстуре. Отныне вы можете запускать свои игры, сделанные в 3D Rad, на своих веб-страницах! Это стало возможным благодаря плагину OSAKit! В компилятор внесены функции относительно создания файлов для просмотра в браузере (.osa формат). Насчет OSAKit читайте подробности на официальной странице.

GameMaker: Studio
Создание игр в нем достаточно простое и не требует предварительного знакомства с каким либо из языков программирования. Игра в GameMaker строится как набор игровых объектов, поведение которых задаётся путём программирования реакции на события. Программировать можно, используя графическое представление программ. Это представление отличается от обычного, например, тем, что для того чтобы начать условный оператор, нужно перетащить на панель действия восьмиугольник с иконкой, обозначающей тип проверки, а затем, возможно, ввести какие-либо значения в появившуюся форму. Имеется в нём и скриптовый язык GML. Рассчитан в основном он на создание 2D игр любых жанров. Также подойдёт для создания различных презентаций и т. п. Начиная с 6-й версии появилась ограниченная возможность работать с 3D. Может быть рекомендован для изучения программирования детьми.

3D Мастер
Программа для визуального создания 3D игр, на русском языке, без единой строчки программного кода или инструкций.

3D Rad
Весьма и весьма интересный конструктор трехмерных игр. Этот конструктор является одним из самых легких в плане программирования трехмерных игр: здесь набор кода почти отсутствует, а если что вам и придётся набирать, так это координаты объектов или путь к текстуре.

Источник

Пишем игры на. VBA (Pt. 1)

Все мы знакомы с Excel. Вот и я, душный банковский служащий, что-то да слышал об этом инструменте.

Одни люди умеют лишь форматировать ячейки, другие создают клоны Doom, используя встроенный в Microsoft Office язык программирования.

Я не претендую на второй тип, но и к первым себя не отношу. Для меня Visual Basic for Applications, или VBA, стал тем первым ЯП, который заинтересовал и позволил уверовать в свои силы. Путешествие в этот интересный мир началось с автоматической записи макросов и разбора созданного программой кода.

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

Однако наступил такой момент, когда все рабочие задачи оказались решены и автоматизированы, а внутреннему программисту (ха-ха) все ещё хотелось чего-то большего.

Тогда меня осенило! В Excel ведь можно делать игры. Первая же найденная статья от программиста, который в армии клепал на основе VBA разные вещи, подтвердила мою теорию.

Эта серия статей не была задумана как обучающая (ведь я сам ещё учусь), но если что-нибудь изложенное будет полезно начинающим программистам, которые только погружаются в мир Visual Basic, то считайте, что я пополнил интернет одной полезной ссылкой.

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

К тому же где, как не в комментариях, мне доходчиво и культурным языком укажут на допущенные ошибки?

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

В этих статьях я буду описывать процесс создания игр в Excel, начиная с простейших пятнашек и заканчивая глобальной RPG. Это позволит мне больше углубиться в тему, а вам поглумиться над неумехой-программистом. Или, в лучшем случае, забрать готовое решение на работу и скрывать безделье за мнимой подготовкой отчета. Ссылки на все исходные материалы будут в свободном доступе.

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

Если вам, к моему удивлению, будет интересен такой формат, то пишите в комментариях, какого типа игры вы бы хотели, чтобы я реализовал на базе Excel.

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

На этом этапе необходимо в случайном порядке расположить числа от 1 до 15, а также пустое поле на выбранном диапазоне. Для этого открываем окно редактирования кода (Alt + F11), добавляем простой модуль (при желании и его можно переименовать для красоты).

Создаем публичную переменную rngPlayField, которая будет хранить координаты нашего игрового поля, и в методе initializeField() пишем следующий код:

Сперва метод создаёт коллекцию чисел от 1 до 16.

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

InitializeField() запускает цикл For Each, который распространяется на каждую ячейку нашего диапазона. На первом этапе цикла программа рассчитывает случайное число от 1 до значения размера нашей коллекции (в настоящий момент 16) и помещает в первую ячейку диапазона число, хранящееся в коллекции под полученным случайным индексом.

Далее цикл удаляет из коллекции использованное число и переходит к следующей ячейке.

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

UPD. Уже в процессе написания статьи я выяснил, что не все комбинации, полученные таким образом, изначально решаемы. Тогда мной в ускоренном темпе был написан код, который сперва формирует правильное поле от 1 до 16, а затем в стиле песков времени разбирает пятнашки в течении 300 ходов (что мы собственно и делаем в реальной жизни, когда хотим «рестартнуть» игру). Направление движения «костяшки» рассчитывается случайным образом.

Сперва создаём обработчик события нажатия на определенную ячейку. Для этого в модуле листа, на котором расположено игровое поле, формируем метод Worksheet_SelectionChange и пишем в нем следующий код. Переменная Target при этом содержит адрес выбранной ячейки.

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

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

В основном модуле в методе moveCells(byVal rngCell as range) пишем следующее:

Цикл проверяет, есть ли слева, справа, снизу или сверху от нажатой ячейки пустое поле (его имитирует число 16) и считывает вхождение смещенной ячейки в диапазон игрового поля. Если условия выполнены, то программа просто меняет числа местами.

Создаём в рабочей книге второй лист и размещаем на нем победный вариант. Пример:

Далее пишем следующий код:

Данная программа с помощью цикла проверяет значение каждой ячейки игрового поля на соответствие аналогичной ячейке поля с победной расстановкой значений и закрашивает правильные варианты в зелёный цвет. И наоборот. Далее метод проверяет поле на наличие числа 16 (которое имитирует пустую «костяшку», не забываем) и устанавливает для шрифта белый цвет. Последний момент: проверка победы. При каждом совпадении каких-либо чисел с правильной позицией увеличивается переменная countRight, и когда ее значение станет равно 15, игра сообщит о победе.

В итоге должно получиться примерно следующее:

Вот таким нехитрым образом можно создать себе развлечение на случай скучных рабочих дней. А тем временем на ум приходит следующая картинка:

При желании в игру можно добавить подсчет ходов, рейтинговую таблицу или график динамики побед.

Сейчас же я считаю, что на этом можно остановиться.

Следующая статья выйдет When it’s done. Скорее всего в течение недели.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *