Реферат по предмету "Компьютеры и цифровые устройства"


Игра на ловкость "Змейка"

Владивостокский Государственный Университет Экономикии СервисаКафедраУТВЕРЖДАЮЗаведующий кафедрой Н. Н. 1998 г. ОтчетПо лабораторной работе Руководитель Глытина К. У Исполнитель студент ИС-97 Гавриленко А. С. Находка 1998 г. Постановка задачи.Цель Создать законченный вариант игры на ловкость

Змейка Законченныйвариант игры змейка должен содержать 1 Змейку ,которая может двигаться в ограниченной плоскости. Маневрами Змейки должен управлять играющий. Змейка должна увеличиваться в размерах пристолкновении с яблоком и погибать пристолкновении с бомбой , при пересечении самой себя и при выходе заграницы плоскости заданной программистом.2 Яблоко или другойобъект, при столкновении с которым

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

Алгоритм1 Описываются переменные и константы Dim, Const 2 Выбор начальных координат случайным образом Rnd .3 Прорисовка начального положения. Pset x,y 4 Генерация на поле яблок и бомб случайным образом Rnd .5 Проверка не появилось ли яблоко или бомба на черве, атакже друг на друге.6 Управление Змейкой с клавиатуры и мышкой.7 Проверка не укусила ли змейка сама себя , еслиукусила выводится

информационное окно Инфоформационнаяформа , в противномслучае переходим к следующему пункту.8 Проверка не съела ли змейка яблоко если съела,то наращиваем ей хвост и переходим к пункту 3 , в противном случае см.Следующий пункт.9 Проверка не съела ли змейка бомбу , если съела,то выводится информационное окно Инфоформационнаяформа , в противном случаепереходим к следующему пункту.10 Перерисовка Змейки P.S. За движение Змейки появление яблок и бомб отвечают три разных таймера.

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

Змейка Описаниепеременных Option ExplicitDim Змейка As ЗмеяDim LastPos As ЗмеяDim Apple As ЗмеяDim Bomba As ЗмеяDim i, j, Длина As IntegerDim XDir, YDir As IntegerDim FirstXPos, FirstYPos As IntegerDim Проверочная1 As ByteDim Проверочная2 As SingleDim НЛ As String Начальныеприсвоения

Const TIC 1 Период таймераConst BackCollor amp H80F Цвет заднегопланаConst WormCollor amp H80 amp Цвет ЗмейкиConst AppleCollor amp HFF00 amp Цвет яблокаConst BombaCollor amp H8012 Цвет бомбыConst Толщина 10 Толщина червякаConst НачДлина 5 Начальная длинаЗмейкиConst ПриращениеДлины 3

Приращение длины Змейки Public Sub Form Load Поле.BackColor BackCollorПоле.DrawWidth ТолщинаДлина НачДлинаReDim Preserve Змейка 1 ToНачДлина Начальноеположение FirstXPos 5 Int Rnd 41 FirstYPos 5 Int Rnd 41 For i 1 To 5YPos FirstYPos iNext iНачПоложение

Направление движения XDir 0YDir -1 Caption ДлинаFor i 1 To ДлинаПоле.PSet Змейка i .XPos 100, Змейка i .YPos 100

Next iEnd Sub Private Sub Taimer Timer ДвижениеПерерисовкаEnd Sub Private Sub Движение НЛ Chr 10 amp Chr 13 DrawWidth ТолщинаLastPos Змейка Длина For i Длина To 2 Step -1Змейка i Змейка i - 1 Next iЗмейка 1 .XPos Змейка 1 .XPos XDirЗмейка 1 .YPos

Змейка 1 .YPos YDir Не вышел ли за пределы поля On Error GoTo ВышелЗаПределыПроверочная1 Змейка 1 .XPos- 1Проверочная1 Змейка 1 .YPos- 1Проверочная1 Змейка 1 .XPos 206Проверочная1 Змейка 1 .YPos 206 Не укусил ли самого себя УкусилСамогоСебя For i 2 To ДлинаIfЗмейка 1 .XPos Змейка i .

XPos And Змейка 1 .YPos Змейка i .YPos Then Taimer.Interval 0IfNext i Не наткнулся ли на яблоко

On Error GoTo Наткнулась1Проверочная2 1 Abs Змейка 1 .XPos - Apple.XPos Abs Змейка 1 .YPos - Apple.YPos Не наткнулась ли на бомбу On Error GoTo Наткнулась2Проверочная2 1 Abs Змейка 1 .XPos - Bomba.XPos Abs Змейка 1 .YPos - Bomba.YPos Exit Sub Обравотка столкновений ВышелЗаПределы Taimer.Interval 0ИнформационнаяФорма.

ИнфоПоле.Caption НЛ amp ВАША ЗМЕЙКА amp НЛ amp ВЫШЛА ЗА ПРЕДЕЛЫ ПОЛЯ amp НЛ amp НЛ amp Длина змейки amp ДлинаИнформационнаяФорма.ShowФорма Змейка.Enabled FalseExit SubНаткнулась1 Длина Длина ПриращениеДлиныReDim Preserve Змейка 1 ToДлина Перемещаемхвост в конец For i Длина

ToПриращениеДлины 1 Step -1Длины To 1Step -1XPos Змейка i 1 .XPos XYPos Змейка i 1 .YPos YDirNext iAppleGenНачПоложениеExit SubНаткнулась2 Interval 0ИнформационнаяФорма.

ИнфоПоле.Caption НЛ amp ВАША ЗМЕЙКА amp НЛ amp СЪЕЛА БОМБУ amp НЛ amp НЛ amp Длина змейки amp ДлинаИнформационнаяФорма.ShowФорма Змейка.Enabled FalseExit SubEnd Sub Private Sub Перерисовка Рисуем змейку Поле.ForeColor BackCollorПоле.PSet LastPos.XPos 100, LastPos.YPos 100 Поле.ForeColor

WormCollorПоле.PSet Змейка 1 .XPos 100, Змейка 1 .YPos 100 Поле.PSet Змейка Длина .XPos 100, Змейка Длина .YPos 100 Рисуем Яблоко Поле.ForeColor AppleCollorПоле.PSet Apple.XPos 100,Apple.YPos 100 Рисуем бомбу Поле.ForeColor BombaCollorПоле.PSet Bomba.XPos 100,Bomba.YPos 100

End Sub Private SubTaimerApple Timer TaimerApple.Interval 5 Int Rnd 11 1000Поле.ForeColor BackCollorПоле.PSet Apple.XPos 100,Apple.YPos 100 AppleGenEnd Sub Private SubTaimerBomba Timer TaimerBomba.Interval 5 Int Rnd 11 1000Поле.ForeColor BackCollorПоле.PSet Bomba.XPos 100,Bomba.YPos 100 BombaGenEnd

Sub Private Sub AppleGen Метка1 Apple.XPos 1 Int Rnd 49 Apple.YPos 1 Int Rnd 49 i 1Do While i lt ДлинаIfApple.XPos Змейка i .XPos And Apple.YPos Змейка i .YPos ThenGoTo Метка1Exit DoEndIfi i 1LoopEnd Sub Private Sub BombaGen Метка2 Bomba.XPos 1 Int Rnd 49 Bomba.YPos 1 Int Rnd 49 i 1Do

While i lt ДлинаIfBomba.XPos Змейка i .XPos And Bomba.YPos Змейка i .YPos Or Bomba.XPos Apple.XPos And Bomba.YPos Apple.YPos ThenGoTo Метка2Exit DoEndIfi i 1LoopEnd Sub Обработка клавиш управления Private Subполе KeyDown KeyCode As Integer, Shift As Integer Select Case KeyCodeCase38 вверхXDir 0YDir -1Case40 внизXDir 0YDir 1Case37

влевоXDir -1YDir 0Case39 вправоXDir 1YDir 0Case27 ESCEndCase113 F2-играФорма Змейка.Enabled TrueФорма Змейка.Form LoadИнформационнаяФорма.HideEndSelectEnd Sub Обработканажатий кнопокPrivate Sub Up Click XDir 0YDir -1End SubPrivate Sub Down Click XDir 0YDir 1End SubPrivate Sub Left Click XDir -1YDir 0End

SubPrivate Sub Right Click XDir 1YDir 0End SubPrivate Sub Command1 Click EndEnd SubPrivate Sub Command2 Click Форма Змейка.Enabled TrueФорма Змейка.Form LoadИнформационнаяФорма.HideEnd SubИнформационнаяФормаDim НЛ As String Private Sub Avtor Click НЛ Chr 10 amp Chr 13 AboutAvtor.Label4.Caption

Все права защищены, amp НЛ amp использованиев комерческих целях преследуется по закону ИнформационнаяФорма.Enabled FalseAboutAvtor.ShowEnd Sub Обработканажатий кнопокPrivate Sub Exit Click КнопкаВыход ClickEnd SubPrivate Sub NewGame Click КнопкаПовторить ClickEnd SubPrivate SubКнопкаВыход Click Unload Форма

ЗмейкаUnload MeEnd SubPrivate SubКнопкаПовторить Click Форма Змейка.Enabled TrueФорма Змейка.Form LoadИнформационнаяФорма.HideEnd SubAboutAvtor Закрытиеформы щелчко кнопки мышы по фотографииPrivate Sub Image1 Click ИнформационнаяФорма.Enabled TrueUnload MeEnd SubModule1Option Explicit Создаем новый тип переменной

Public Type XPos As IntegerYPos As IntegerEnd Type



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.