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

Реферат

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

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

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

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

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

Игра на ловкость "Змейка" Постановка задачи Цель: Создать законченный вариант игры на ловкость “Змейка” Законченный вариант игры змейка должен содержать: 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 End Sub ------------------------------------------------------------------------------------------------Private Sub Taimer_Timer() Движение Перерисовка End Sub ------------------------------------------------------------------------------------------------Private Sub Движение () НЛ = Chr(10) & Chr(13) ' Перевод строки Поле . AutoRedraw = True Поле . 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 = 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 ------------------------------------------------------------------------------------------------Priva te Sub TaimerBomba_Timer() TaimerBomba. Interval = (5 + Int(Rnd() * 11) ) * 1000 Поле. ForeColor = BackCollor Поле . PSet (Bomba. XPos * 100, 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: Bomba. 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 End 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 ------------------------------------------------------------------------------------------------‘ Обработка нажатий кнопок Pr ivate 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() КнопкаВыход_Click 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