Контрольная: Игра на ловкость Змейка - текст контрольной. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Контрольная

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

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Контрольная работа
Язык контрольной: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 133 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникальной работы

Узнайте стоимость написания уникальной работы

Владивостокский Государственный Университет Экономики и Сервис а К афедра УТВЕРЖДАЮ Заведующий ка федрой ________ Н . Н . ___” _______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 Explicit Dim Змейка () As Змея Dim LastPos As Зме я Dim Apple As Змея Dim Bomba As Змея Dim i, j, Длина As Integer Dim XDir, YDir As Integer Dim FirstXPos, FirstYPos As Integer Dim Проверочная 1 As Byte Dim Проверочная 2 As Single Dim НЛ As String '-------Начальные присвоения-------- Const TIC = 1 'Период таймера Const BackCollor = &H8000000F 'Цвет заднего плана Const WormCollor = &H80& ' Цвет Змейки Const AppleCollor = &HFF00& ' Цвет яблока Const BombaCollor = &H80000012 ' Цвет бомбы 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 5 Змейка (i).XPos = FirstXPos Змейка (i).YPos = FirstYPos + i Next i НачПоложение '------Направление движения------ XDir = 0 YDir = -1 'Вверх '------Генерация Яблок и Бомб---- AppleGen BombaGen Taimer.Interval = TIC End Sub '---Прорисовка начального положения--- Private Sub НачПоложение () Поле .ForeColor = WormCollor СчетИгры .Caption = Длина For i = 1 To Длина Поле .PSet (Змейка (i).XPos * 100, Змейка (i).YPos * 100) Next i E nd Sub ------------------------------------------------------------------------------------------------- Private Sub Taimer_Timer() Движение Перерисовка End Sub ------------------------------------------------------------------------------------------------- Private Sub Движение () НЛ = Chr(10) & Chr(13) 'Перевод строки Поле .AutoRedraw = True Поле .DrawWidth = Толщина LastPos = Змейка (Длина ) For i = Длина To 2 S tep -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 = 0 Инф ормационнаяФорма.ИнфоПоле .Caption = НЛ & _ "ВАША ЗМЕЙКА " & НЛ & _ "САМА СЕБЯ УКУСИЛА " & НЛ & НЛ & _ "Длина змейки " & Длина ИнформационнаяФорм а .Show Форма _Змейка .Enabled = False End If Next 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 = НЛ & _ "ВАША ЗМЕЙКА " & НЛ & _ "ВЫШЛА ЗА ПРЕДЕЛЫ ПОЛЯ " & НЛ & НЛ & _ "Длина змейки " & Длина ИнформационнаяФорма .Show Форм а _Змейка .Enabled = False Exit Sub Наткнулась 1: Длина = Длина + ПриращениеДлины ReDim Preserve Змейка (1 To Длина ) ' ------- Переме щаем хвост в конец ------- For i = Длина To ПриращениеДлины + 1 Step -1 Змейка (i) = Змейка (i - ПриращениеДлины ) Next i 'Добавля ем в голову по направлению движения For i = ПриращениеДлины To 1 Step -1 Змейка (i).XPos = Змейк а (i + 1).XPos + XDir Змейка (i).YPos = Змейка (i + 1).YPos + YDir Next i AppleGen НачПоложение Exit Sub Наткнулась 2: Taimer.Interval = 0 ИнформационнаяФорма .Инфо Поле .Caption = НЛ & _ "ВАША ЗМЕЙКА " & НЛ & _ "СЪЕЛА БОМБУ " & НЛ & НЛ & _ "Длина змейки " & Длина ИнформационнаяФорма .Show Форма _Змейка .Enabled = False Exit Sub End 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 Sub TaimerApple_Timer() TaimerApple.Interval = (5 + Int(Rnd() * 11)) * 1000 Поле .ForeColor = BackCollor Поле .PSet (Apple.XPos * 100, Apple.YPos * 100 ) AppleGen End Sub ------------------------------------------------------------------------------------------------- Private Sub TaimerBomba_Timer() TaimerBomba.Interval = (5 + Int(Rnd() * 11)) * 1000 Поле .ForeColor = BackCollor Поле .PSet (Bomba.XPos * 10 0, Bomba.YPos * 100) BombaGen End Sub ------------------------------------------------------------------------------------------------- Private Sub AppleGen() Метка 1: Apple.XPos = 1 + Int(Rnd() * 49) Apple.YPos = 1 + Int(Rnd() * 49) i = 1 Do While i <= Д лина If Apple.XPos = Змейка (i).XPos And Apple.YPos = Змейка (i).YPos Then GoTo Метка 1 Exit Do End If i = i + 1 Loop End Sub ------------------------------------------------------------------------------------------------- Private Sub BombaGen() Метка 2: Bom ba.XPos = 1 + Int(Rnd() * 49) Bomba.YPos = 1 + Int(Rnd() * 49) i = 1 Do While i <= Длина If Bomba.XPos = Змейка (i).XPos And Bomba.YPos = Змейка (i).YPos Or Bomba.XPos = Apple.XPos And Bomba.YPos = Apple.YPos Then GoTo Метка 2 Exit Do End If i = i + 1 Loop E nd Sub ------------------------------------------------------------------------------------------------- '-----Обработка клавиш уп равления------ Private Sub поле _KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case 38 'вверх XDir = 0 YDir = -1 Case 40 'вниз XDir = 0 YDir = 1 Case 37 'влево XDir = -1 YDir = 0 Case 39 'вправо XDir = 1 YDir = 0 Case 27 'ESC End Case 113 'F2-игра Форма _Змейка .Enabled = True Форма _Змейка .Form_Load ИнформационнаяФорма .Hide End Select End Sub ------------------------------------------------------------------------------------------------- ‘ Обработка н ажатий кнопок Private Sub Up_Click() XDir = 0 YDir = -1 End Sub Private Sub Down_Click() XDir = 0 YDir = 1 End Sub Private Sub Left_Click() XDir = -1 YDir = 0 End Sub Private Sub Right_Click() XDir = 1 YDir = 0 End Sub Private Sub Command1_Click() End End Sub Private Sub Command2_Click() Форма _Змейка .Enabled = True Форма _Змейка .Form_Load ИнформационнаяФорма .Hide End Sub Информационная Ф ор ма Dim НЛ As String ------------------------------------------------------------------------------------------------- Private Sub Avtor_Click() НЛ = Chr(10) & Chr(13) AboutAvtor.Label4.Caption = "Все права защищены ," & НЛ & _ "использование в комерческих целях преследуется по з акону " ИнформационнаяФорма .Enabled = False AboutAvtor.Show End Sub ------------------------------------------------------------------------------------------------- ‘ Обработка н ажатий кнопок Private Sub Exit_Click() КнопкаВыход _Clic k End Sub Private Sub NewGame_Click() КнопкаПовторить _Click End Sub Private Sub КнопкаВыход _Click() Unload Форма _Змейка Unload Me End Sub Private Sub КнопкаПовторить _Click() Форма _Змейка .Enabled = True Форма _Змейка .Form_Load ИнформационнаяФорма .Hide End Sub AboutAvtor ‘ Закрытие формы щелчко кнопки мышы по фотографии Private Sub Image1_Click() ИнформационнаяФорма .Enabled = True Unload Me End Sub Module1 Option Explicit ‘ Создаем новый ти п переменной Public Type Змея XPos As Integer YPos As Integer End Type
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Совет дня: воспринимайте критику окружающих с высоко поднятым средним пальцем.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, контрольная по программированию "Игра на ловкость Змейка", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru