Программирывание на ЯВУ

Автор работы: Пользователь скрыл имя, 21 Декабря 2011 в 12:10, курсовая работа

Краткое описание

Для курсовой работы я выбрала игру Pac-Man. Меня заинтересовала история создания этой игры. Pac-Man — культовая компьютерная игра в жанре аркады, впервые вышедшая в 1979 г. в Японии. Игра была разработана в основном работником компании Namco Тору Иватани в течение восемнадцати месяцев. Сначала это творение называлось pakku-man [пакку-ман]., что на расово японском означает «поедать, откусывать, многократно широко раскрывая рот и захлопывая его». Часто упоминается, что идея игры к Иватани пришла, когда он увидел пиццу без одного кусочка пиццы. В интервью 1986 года он отметил, что это было наполовину правдой: Иватани округлил иероглиф кути (яп. рот) как символ поедания и придал ему подобие рта.
Иватани попытался сделать игру интересной для более широких слоёв населения, п

Содержание работы

Основные данные о работе 1
Содержание 2
Основная часть 5
1 Разработка эскизного и технического проектов программы 5
2 Разработка рабочего проекта 6
Заключение 42
Глоссарий 45
Список использованных источников 46
Приложения 47

Содержимое работы - 1 файл

КР, Программирование на ЯВУ.doc

— 543.00 Кб (Скачать файл)

               pl[plpacman].Play;

            end;

      end; 

   case Player.direction of

      dUp:     if Player.y mod 23>2 then Player.y:=Player.y-PacManSpeed

               else

                  if CheckDir(Player.x,Player.y,dUp, [mpWall, mpGate]) then Player.y:=Player.y-PacManSpeed;

      dRight:  if Player.x mod 23>2 then Player.x:=Player.x+PacManSpeed

               else

                  if CheckDir(Player.x,Player.y,dRight, [mpWall, mpGate]) then Player.x:=Player.x+PacManSpeed;

      dDown:   if Player.y mod 23>2 then Player.y:=Player.y+PacManSpeed

               else

                  if CheckDir(Player.x,Player.y,dDown, [mpWall, mpGate]) then Player.y:=Player.y+PacManSpeed;

      dLeft:   if Player.x mod 23>2 then Player.x:=Player.x-PacManSpeed

               else

                  if CheckDir(Player.x,Player.y,dLeft, [mpWall, mpGate]) then Player.x:=Player.x-PacManSpeed;

   end;

   case map[Player.y div 23+level*25,Player.x div 23] and 15 of

      mpSeed, mpBigseed:  if (Player.x mod 23<3) and (Player.y mod 23<3) then

                           begin

                              inc(Score.Seed);

                              dec(LevelSeed);

                              UpdateScore;

                              if map[Player.y div 23+level*25,Player.x div 23] and 15 = mpBigseed then

                                 begin

                                    pl[plbigseed].Play;

                                    for a:=0 to level+1 do

                                       begin

                                          if (Enemy[a].Speed<>0) and (Enemy[a].State<>esEyes) then // Не стоит есть большие зёрна, пока не все призраки вылезли.

                                             begin

                                                Enemy[a].ShyCount:=ShyTime;

                                                Enemy[a].State:=esShy;

                                                Enemy[a].Speed:=1;

                                             end;

                                       end;

                                 end

                                 else pl[plseed].Play;

                              ImList.DrawingStyle:=dsNormal;

                              Imlist.Draw(ImMap.Canvas,Player.x div 23*23,Player.y div 23*23,30);

                              ImList.DrawingStyle:=dsTransparent;

                              map[Player.y div 23+level*25,Player.x div 23]:=map[Player.y div 23+level*25,Player.x div 23] and 240;

                           end;

      mpPlayerStart: if (bonus.Life<>0) and (Player.x mod 23<3) and (Player.y mod 23<3) then

                        begin   // Если съедается бонус, добавляем очки

                           pl[plbonuseated].Play;

                           case bonus.Kind of

                              1:inc(Score.Tomato);

                              2:inc(Score.Carrot);

                              3:inc(Score.Grape);

                              4:inc(Score.Cherry);

                           end;

                           Bonus.Kind:=0;

                           Bonus.Life:=0;

                           UpdateScore;

                        end;

      mpPort: Teleport(Player.direction, Player.x, Player.y);  // Телепорт.

   end; 

   Imlist.Draw(ImBack.Canvas,Player.x,Player.y,PlayerFrames[Player.frame div 4]+28+Player.direction*4);

   inc(Player.Frame);

   if Player.Frame>20 then Player.Frame:=0;

  ShowPanel.Canvas.CopyRect(ShowPanel.ClientRect,ImBack.Canvas,ShowPanel.ClientRect);

   If LevelSeed=0 then

      begin

         GameTimer.Enabled:=false;

         Inc(Level);

         If Level<6 then

            begin

               pl[plother].FileName:='.\Data\newlevel.wav';

               pl[plother].Open;

               pl[plother].Play;

               LMSG.Caption:=msgNext+inttostr(level+1);

               LMSG.Left:=(575-ShowPanel.Canvas.textwidth(msgNext+inttostr(level+1))) div 2;

               LMSG.Visible:=true;

               NewLevel(level);

               DelayTimer.Enabled:=true;

            end

         else

            begin

               pl[plother].FileName:='.\Data\win.wav';

               pl[plother].Open;

               pl[plother].Play;

               LMSG.Caption:=msgWin;

               LMSG.Left:=(575-ShowPanel.Canvas.textwidth(msgWin)) div 2;

               LMSG.Visible:=true;

               State:=stMenu;

               ImStart.Visible:=true;

               ImLeave.Visible:=true;

               LStart.Visible:=true;

               LLEave.Visible:=true;

            end;

      end;

end;

//-----------------------------------------------------------------------------------------------------------

procedure TFmain.DelayTimerTimer(Sender: TObject);

begin

DelayTimer.Enabled:=false;

LMSG.Visible:=false;

Prepare(level);

end;

//-----------------------------------------------------------------------------------------------------------

end.

     Заключение

      Несмотря  на то, что в России Pac-Man не нашёл широкой поддержки, в США образ жёлтого круглого существа получил большое распространение.

      В компьютерной игре Wolfenstein 3D существовал  секретный этаж, срисованный с  игры Pac-Man. Вместо жёлтых точек игрок  мог собирать сокровища, уворачиваясь от тех самых четырёх привидений.

      В фильме Дэвида Цукера «Совершенно секретно»  маршрут героев показывается точками  на схематичной карте города, и  вскоре появляется пэкмэн, который  эти точки съедает.

      В фильме Харольда Рарниса «Каникулы» главный герой Кларк показывает детям составленный им маршрут, отображаемый точками. Его сын Расти мешает ему и съедает точки пэкмэном.

      В фильме «Люди в белом» картинка из игры Pac-Man возникает среди множества  других картинок, мелькающих на экране компьютера инопланетного космического корабля, в то время как главные герои пытаются взломать его (пародия на соответствующий эпизод в «Дне Независимости»). Один из персонажей реагирует на это следующей репликой: «Это какая-то продвинутая раса. Она крутая!»

      Во  второй части серии «Anthology of Interest II» мультсериала «Футурама» пэкмэн фигурирует в роли генерала армии Земли. В этой же серии главные герои проходят по лабиринту пэкмэна, а вечно голодный Доктор Зойдберг даже пробует точки на вкус. Когда Генерал Пэкмэн погибает, зрители видят его смерть, срисованную с игры и сопровождаемую характерным звуком, а также рыдающую вдову генерала.

      В одном из эпизодов фильма «Трон» можно также заметить игру на дисплее одного из терминалов.

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

      Возможности Delphi полностью отвечают подобным требованиям и подходят для создания систем любой сложности. Система Delphi позволят писать как крохотные программы и утилиты для персонального использования, так и корпоративные системы, работающие с базами данных на разных платформах, Интернет – решения и коммерческие игры, распределенные COM/COBRA/SOAP – приложения и всевозможные Web – службы. Очень важным, одним из ключевых нововведений Delphi 7 стало появление системы визуального моделирования ModelMart. До сих пор подобные системы, позволяющие описывать структуру, возможности и последовательность функционирования программной системы в виде набора графических диаграмм, выпускались без привязки к конкретной системе программирования.

      При написании курсовой работы я использовала Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавила в Паскаль объектно-ориентированные свойства, а в Object Pascal динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользовалась методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Object Pascal (Delphi) являются результатом функционального расширения Turbo Pascal.

      Разбираясь в системе программирования Borland Delphi 7.0, я поняла назначение и свойства основных объектов программирования в среде Delphi, подключения различных стандартных диалогов используемых в операционной системе Windows. Исходя из этого, я самостоятельно разработала игру «PacMan».

     Глоссарий

№ п/п Понятие Определение
1 Алгоритм точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных  данных к искомому результату
2 Интерфейс организация взаимодействия между пользователем и выполняемой  программой
3 Компонент Функциональный  элемент, имеющий определенные свойства и размещаемый программистом  в окне формы
4 Меню способ проведения диалога, когда на экран (дисплей) выводится  информация в виде списка альтернатив, а пользователю выбирает нужный пункт
5 Объект такая структура, компонентами которой являются взаимосвязанные  данные различных типов и использующие эти данные процедур и функций 
6 Составной оператор Последовательность  произвольных операторов программы, заключенная  в операторные скобки (BEGIN-END)
7 Программа совокупность  команд, представляющая собой алгоритм
8 Процедура Понятие, определяющее аппарат подпрограмм; часть программы, предназначенная для решения  определенной задачи или подзадачи
9 Условный оператор Оператор с  ключевыми словами IF-THEN-ELSE для программирования алгоритмов разветвляющей структуры
10 Тестирование действия по контролю правильности функционирования программы

Информация о работе Программирывание на ЯВУ