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

Реферат

Помощь в обучении программированию

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

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

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

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

Наше предложени е для тех , кто хочет научиться программиро вать на Delphi, изучая исходники других прогр амм ! Вы можете бесплатно скачать саму игру (ТЕТРИС ), но обязаны заплатить 5 долларов за исходник программы . Вы получае те полный текст программы на Delphi и коммента рии к ней ! Всего за 5 долларов вы сможе те изучить текс т самой известной прог раммы и понять , как создаются игры , такие как Tetris! Мы дадим вам математический алгоритм программы ! Теперь вы станете намного опытнее и сможете самост оятельно создавать программы и зарабатывать н а этом деньги как в реальной жизни , т ак и в интернете ! Избегайте своих ошибок , мы научились правильно программирова ть и поможем научить этому вас ! www . tetriswithsource . com Описание модулей TetrisP - Основной файл проекта Tetris 00 - Модуль содержит основную форму проекта ( TMainForm ). Производи т связку между нажатиями горячих клав иш и кнопок панели управления с вызовом процедур обработки соответствующих событий нах одящихся в модуле Tetris 02 и вызовам процедур прорисовк и поля. Tetris 01 - Модуль содержит определение ячейки поля ( TFieldCell ), как з аписи о цвете и номере отображаемой в ячейке текстуры . А также реализацию и грового поля (класс TField ) - позволяющего проводить отрисовку и простейшие операции над игровым полем . Tetris 02 - Модуль содержит реализацию алгоритма игры (класс TTetrisGame ), об рабатывает события от таймера , ведет с татистику (время игры , количество выпущенных ф игур , удаленных линий ). Создает фигуру случайны м образом фигуру которая будет активной в течении следующего промежутка времени и производит с ней непосредственное взаимоде й ствие . Отлавливает все логические ошибки происходящие во время игры и св язанные например с попыткой запустить уже активную игру. Tetris 03 - Модуль содержит методы по работе со всеми ф игурами используемыми в проекте и учитывает все их особенности реализации . (классы фигур TXXXXFigure ). Tetris 04 - Модуль содержит определение констант используемых в программе и процедуру генерации цвета сл учайным образом с учетом того что цвет не должен будет сливаться с пустой яче йкой поля. Tetris 05 - Модуль содержит форму н астроек ( TOptionsForm ) позволяющую отоб ражать список существующих фигур читать и устанавливать их свойство Enabled . Tetris 06 - Модуль содержит определение структуры ( TFigureInfo ) для хранения необходимой информации о существующей фигуре , массив записей это го типа с описание м всех фигур проекта (для возможности отоб ражения в форме настроек и выбора фигуры случайным образом ), а также методы по доступу к этим данным Tetris 07 - Модуль обеспечивает многоязыковую поддержку . Он сод ержит в себе определение всех стр оков ых констант используемых в сообщениях проекта и позволяет создавать исполнимый файл с сообщениями как на английском так и на русском языке. Описание классов TMainForm - клас с основной формы проекта . Включает в себя такие объекты , как MainToolBar пане ль инс трументов ( TToolBar *) Расположена на форме в правой части и содержит в себе набор кнопок ( btnXXXX ) btnXXXX кнопки ( TButton *) Располож ены на панели инструментов и предназначены для удобного вызова заданных процедур MainImageList список изображений (TImageList*) Содержи т изображения иконок используемых кнопками ( btnXXXX ) MainActionList список действий (TActionList*) Содержит перечен ь действий ( actXXXX ) используемый программой actXXXX действия ( TAction *) Предназн ачена связи кнопок ( btnXXXX ), горя чих клавиш и выз ова заданных процедур MainPanel панель (TPanel*) Расположена в верхней части формы и предназначена для выводы статистичес кой инфорамции (время , количество фигур , количе ство удаленных линий )в процессе игры MainImage изображение (TImage)* Расположено в центральной части формы и предназначена для показа игрового поля на экране . (Но не его прорисовку !) MainStatusBar строка состояния (TStatusBar)* Расположена в нижней части основной формы , предназначена для отображения статуса игры (активна , приостановлена , з акончена и т.д .) и подсказки для кнопок над которыми находится манипулятор мышь fReg реестр (TRegistryDef*) Предназначена дл я работы с реестром - сохранением настроек программы между сеансами работы fField игровое поле ( TField ) Реа лизует хранение логической информации о состоянии поля и его прорисовку т.е . выв од в изображение ( TImage ) fOptionsForm форма настроек (TOptionsForm) Предназначен а для возможности выбора фигур используемых в программе fGame игра (TTetrisGame) Реализует алгорит м игры (* - помечены стандартные объекты Delphi ) TFieldCell - запи сь содержащая информацию об каждой ячейке игрового поля. Color longint Цвет в ячейке если не используется текстура FigureNum integer Номер фигуры которая попа дает в данную ячейку . 0 - есл и фигуры нет TextureNum smallint Номер текстуры в ячейке . Отрицательные числа со ответствуют текстурам бомб TField - класс игровое поле . Включает в себя такие о бъекты , как fBomb Список объектов ( TObjectList ) Предназначен для хранения списка текстур бомб fTexture Список объектов ( TObjectList ) Предназначен для хранения списка текстур непустых клеток fImage Изображе ние ( TImage ) Предназначено для хранения указателя на изображение основной формы fFieldMatrix Матрица (TFieldMatrix) Предназначена для хранени я массива с данными т ипа TFieldCell о клетках . поля : fFieldSize Размер ячейки ( integer ) Хранит раз мер ячейки поля в пикселах свойства : FieldCountX Число ячеек по X ( integer ) Позволя ет определить размер поля в количестве яч еек вдоль X FieldCountY Число ячеек по Y ( integer ) Позволяет определить размер поля приспособленный для игры в количестве ячеек вдоль Y * FieldRealCountY Число ячеек п о Y ( integer ) Позвол яет определить фактический размер поля в количестве ячеек вдоль Y FieldVisibleCountY Число ячеек по Y ( integer ) Позволяет определить види мый размер поля в количестве ячеек вдоль Y * Фактически размерность массива по X совпадает с тем что отображается на экране , по Y ситуация другая . Фактически в памяти поле представле но по Y с большим размером (+ Rese rvedLines ). Это вызвано н еобходимостью хранить данные о фигуре которая только начала падать и находится вне пределов видимости в верних строках и тем что именно по занятости хотя бы о дной ячейки верхних ReservedLines строк определяется окончена игра или не т . Фактический размер оп ределяется FieldRealCountY , допустимый для нахождения фигур FieldCountY . В то же время на экране может отображаться любое число строк от 1 до FieldRealCountY . Поэтому присутствует еще одно свойство FieldVisibleCountY , которое как ра з и определяет сколько строк видно пользователю . В частности этот момент использовался пр и отладке - когда на экране было все по ле целиком , фигура начинала падать не с самого верха и игра заканчивалась когда фигура застревала на верхних ReservedLines строк ах , а не обязательно достигнув верхней границы . методы : ClearAll Очистка игрового поля , путем занесения 0 во все ячейки ClearCell (x,y:integer) Очистка ячейки ( x , y ) путем занесения 0 в эту яч ейку SetAtCell (x,y:integer;const Cell:TFieldCell) Установка в ячейку ( x , y ) значения Cell . Т.е . логическо е получение занятой ячейки GetAtCell (x,y:integer) Получение значения из ячейки ( x , y ) ClearAt (x,y:integer;CurCell:PFieldCell=nil) Определяет свободна ли ячейк а ( x , y ) логически и если указан CurCell то ячейка сч итается с вободной даже когда там находится значения совпадающее с CurCell . DelFullLine Удаление одной из полностью занятых строк. IsOverflow Проверка на переполнение . Пере полненным полем считается поле для которого хотя бы одна ячейка верхних ReservedLin es занята DeleteFigure(FigureNum:integer) Удаление с поля фигуры с номером FigureNum. Используется при падении Бомбы -2 DrawToImage Прорисовка текущего состояния поля Игра может находится в одном из л огических состояний : gmNothing Игра не начата gmActive=1 Игра идет gmSuspend=2 Игра приостановлена gmEnded=3 Игра завершена gmAborted=4 Игра прервана пользователем gmGraphicError Игра завершена с ошибкой во время рисования gmCreateFigureError Игра завершена с ошибкой создания фигуры TTetrisGame - класс реализующий алгоритм игры . Включает в себя такие объекты , к ак : fFiguresEnum управление наборо м фигур ( TFigureEnumManager ) Реализует хранение и доступ к массиву существующих фигур fField игровое поле ( TField ) Пре дназначено для хранения указателя н а объект игровое поле fCurrentFigure текущая фигура ( TBaseFigure ) Предназначено для хранения указателя на текущую фигуру и проведения с ней всяких операций т ипа вращения fTimer таймер ( TTimer *) Предназначен для появления событий в программ е через определ енный промежуток времени , чтобы реализовывать перемещение фигуры поля : fQuickCoef коэффициент ускорения ( integer ) Предназна чено для хранения коэффициента , который испол ьзуется при ускоренном падении фигуры при нажатии клавиши fInProcess статус игры ( byte ) Предназначено для хранения статуса игры fFigNum количество фигур ( integer ) Предназна чено для хранения числа выпущенных фигур и отображении в статистике fTimerClicks время игры (integer) Предназначено для хранения времени игры и отображении в статистике fDeletedLines число удаленных линий ( integer ) Предназначено для хранени я числа удаленных линий и отображении в статистике fOldTimer интервал таймера ( integer ) Интервал таймера до ускорения и ли 0 если таймер находится не в ускоренном режиме события : Tim erTick(Sender:TObject) Событие от таймера . Происх одит через заданный интервал времени методы : SetInProcess(AInProcess:byte) Установка статуса игры . Ис пользование данного метода , а не непосредстве нный доступ к полю гарантирует установку только допустимых з начений и своевременно е изменение строки статуса в основной фор ме LogicalError(ErrMsg:PChar) Вызывается при необходимости со общить пользователю о произошедшей логической ошибке InitCurrentFigure; Создание текущей фигуры случайн ым образом . Указатель на те кущую фигур у остается в fCurrentFigure Start Запуск игры или продолжение после приостановки Stop Остановка игры Pause Приостановка игры NotActive:boolean Проверяет не находиться ли игра в состоянии игры , если да выдается сообщение IsGoing(ShowMsg:boolean=true) Проверяет не активна ли игра . если нет и ShowMsg то выдается сообщение ClearAll Вызов очистки игрового поля , обнуление fFigNum, fDeletedLines, fTimerClicks GetTextStatus:string Получение статистики по игре в текстовом виде д ля вывода на экран RotateAgainst Проверка активна ли игра и есть ли текущая фигура , если да то происходит поворот фигуры RotateAlong MoveLeft Проверка активна ли игра и есть ли текущая фигура , если да то происходит сдвиг фигуры MoveRight GetInfo Пол учения статуса игры в текстовом виде для отображения в стр оке статуса DoFall Реализация метода падения (вызыв ается по клавиши вниз ) StartQuickFall(Quick:boolean=true) Если Quick то установка режима ускоренно го падения , нет возврат к обычному * Основными процедурами являются : TimerTick , DoFall TimerTick Реакцию на событие от тайм ера можно представить следующим образом : Проверить есть текущая фигура Assigned ( fCurrentFigure ) Если есть проверить может ли она сдвинуться на клетку вниз fCurrentFigure . CanDown Е сли может , то сдвинуть fCurrentFigure . Down Иначе обрабатываем ситуацию упал (для бомб падение предполагает очистку других ячее к поля ) fCurrentFigure.Falled Если нет , то проверяется заполненность хотя бы одной из линий поля полностью Если таковая находится то она удаляется fField.DelFullLine Иначе проверяется заполненность ячеек из вернего уровня fField.IsOverflow Если хотя бы одна занята - игра заканчивается Иначе создается очередная фигура случайны м образом InitCurrentFigure DoFall Реакцию на событие от пользователя "отпускание фигуры " можно представ ить следующим образом : Провери ть есть текущая фигура Assigned ( fCurrentFigure ) Если есть то пока она может сдвигаться вниз (fCurrentFigure.CanDown) сдвигат ь ее вниз (fCurrentFigure.Down) обрабат ываем ситуацию упал (для бомб падение предполагает очистку других ячеек поля ) fCurrentFigure.Falled RotateAgainst , RotateAlong Реакцию на событие от поль зователя "поворот фигуры " можно представить сл едующим образом : Провери ть идет ли игра и есть текущая фигура IsGoing and Assigned ( fCurrentFigure ) Если есть то повернуть фигуру fCurrentFigure := fCurrentFigure . Rotate При выполнении перечисленных операций с фигурой совершенно не важно какая она на самом деле . Операции проводятся с базовой фигурой , которая имеет лишь методы по своем у повороту , сдвигу . Реализация всех этих д ействий выполняется в потомках объекта базова я фигура ( TBaseFigure ), перечисленных ниже . В потомках даже приходиться лишь правильно определить координа ты относительно базовой точки , остальное сдел ает TBaseF igure ! TBaseFigure - клас с базовая фигура позволяющий задать очертания фигуры и методы по ее перемещению , по вороту . Включает в себя следующие поля Cell ячейка (TFieldCell) Описание основной ячейки - цвет , текстура , номер наход ящийся в ней. Xbase координат а по X ( integer ) Координат ы базовой точки фигуры на поле Y base координата по Y ( integer ) DownLimit отступ снизу ( integer ) Отс тупы вниз , влево , вправо от базовой точки до границ фигуры , чтобы не вылазить з а границы поля при перемещении . Т.е . общие очерта ния фигуры всегда прямоугольник . Конкретно какие ячейки она занимает в этом пространстве опредялются для потомков ин дивидуально RightLimit отступ справа ( integer ) LeftLimit отступ слева ( integer ) методы : Rotate(AlongClock:boolean) Реализует поворот фи гуры по или против часовой стрелки CanDown О пределяет - может ли фигура упасть на одну клетку вниз Down Реализует фактического падения фигуры Move(Left:boolean;AField:TField) Реализует фактическое перемещение фигуры вправо или влево. Falled Реализует р еакцию после того как фигура упала . Перекрыто в бомб е и очищает клетку под ней MakeCurrent Реализует фактическое рисование фигуры на пол е IsEmptyCell Определяет свободна ли клетка (i,j) на поле IsEmptyAndOnFieldCell Определяет входит ли клетка (i,j) на поле и свободна ли она . При таком подходе работает быстрей чем два вызова - отдельная процедура "входит ли на поле " и "свободная ли она " ClearCell(i,j:integer) Реализует очистку одной клетки ( i , j )принадлежащей фигур е FillCell(i,j:integer) Реализует рисов ание в о пределенную клетку ( i , j ) AfterInit Обеспечивает возможность изменения полей наследу емой фигуры CheckEach(Proc:TCheckProc;Xabs,Yabs:integer) Конкретно определяет какие ячейки используются фигурой . Процедура обязател ьно перекрывается в потомках. C learCurrent Обеспечивает стирание фигуры с поля (п еред шагом вниз /влево /вправо /падения ) GetTwinFigure(AlongClock:boolean) Обеспечивает получение фигуры-близне ца . Т.е той фигуры , которая получается посл е поворота данной под углом 90 или -90 градусо в . Перек рыто в конкретных потомках . Ес ли нет , то поворот не осуществляется . Напр имер для квадрата. SetBaseCell Обеспечивает установку конкретного номера текстуры в потомке , таким образом обеспечив ается одна фигура , один цвет. Основными методами являются Rotate П олучить фигуру близнец . ( GetTwinFigure ) Если фигура близнец есть ( TwinConstructor <> nil ) то с оздаем фигуру близнец на основе своих пар аметров TwinConstructor . CreateTwin проверяем не залазит ли созданная фиг ура на клетки занятые другими фигурами Twin . CheckEa ch Если не залазит то Очистит ь все клетки занятые текущей фигурой ( ClearCurrent ) Нарисовать во все клетки фигуры близн еца ( Twin . MakeCurrent ) Возвратить как результат выполнения функции созданного близнеца ( Rotate := Twin ) Освободить ресурсы занятые текущей фигурой ( Free ) Иначе если залазит то удалить созданного близнец а ( Twin . Free ) Возврат ить как результат выполнения функции себя , так поворот не удался и фигура падает в прежнем виде ( Rotate := self ) CanDown Проверить не выходит ли ниж няя граница фигуры за пре делы поля (Ybase>DownLimit) и проверить не попадают ли в случа е перемещения вниз клетки данной фигуры н а клетки другой фигуры CheckEach ( IsEmptyCell , Xbase , Ybase -1) Down Очистить все клетки занятые фигурой ( ClearCurrent ) Уменьшить координату по Y базовой то чки Нарисовать во все клетки фигуры ( MakeCurrent ) Move Если движение фигуры налево Провери ть не выходит ли левая граница фигуры за пределы поля ( Xbase > LeftLimit ) и проверить не попадают л и в случае перемещения клетки данной фигу ры на клетки другой фигуры CheckEach ( IsEmptyCell , Xbase -1, Ybase ) Если не попадает то Очистит ь все клетки занятые фигурой ( ClearCurrent ) Уменьшить координату по X базовой точки Нарисовать во все клетки фигуры ( MakeCurrent ) Если движение фигуры направо Провери ть не выходит ли правая гр аница ф игуры за пределы поля (Xbase
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Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Девочки 12-15 лет пишут статусы: "Мне его так не хватает".
Это они про мозг, да?..
Anekdot.ru

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

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

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


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