Высокоуровневые методы информатики и программирования

Автор: Пользователь скрыл имя, 03 Мая 2012 в 11:46, реферат

Описание работы

В работе представлена разработка программы “ Лабиринт” на языке С++. Программа выполнена в виде игры.

Содержание

Введение
Описание программы
Листинг программы
Библиотечный список

Работа содержит 1 файл

НОУ ВПО.doc

— 44.50 Кб (Скачать)

НОУ ВПО  «Институт управления» 

Ярославский филиал 
 
 
 

Контрольная работа 

По дисциплине: «Высокоуровневые методы информатики и программирования» 
 
 
 
 
 
 

                   Преподаватель: Трушин О.С..

                   Выполнил  студент:

                3 курса, экономического               факультета

                   группы  31 ИЗ

                   № зачетной книжки: 4178

                   Троханов  А.М. 
               
               
               
               
               

Ярославль

2012г.

Содержание

Введение                                                                                                                  3

Описание программы…………………………………………………………….4

Листинг программы……………………………………………………………... 5

Библиотечный  список                                                                                           11 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Введение

Разработка программы  “ Лабиринт” на языке С++

Программа выполнена  в виде игры. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Описание  программы

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

Листинг программы.

#include "graphics.h"

#include "stdlib.h"

#include "stdio.h"

#include "conio.h" 

enum Direction {LEFT, UP, RIGHT, DOWN}; 

const int Width = 15;

const int Height = 15;

const int CellSize = 30; 

int Cell[Width][Height]={

{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},

{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},

{1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1},

{1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},

{1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1},

{1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},

{1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1},

{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0},

{1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1},

{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1},

{1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1},

{1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},

{1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1},

{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1},

{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},

}; 

void DrawField()

{

setcolor(WHITE);

rectangle(0, 0, 30 * Width, 30 * Height);

for (int i = 1; i < (Width - 1); i++)

  line(i * CellSize, 1, i * CellSize, Height * CellSize);

for (i = 1; i <= (Height - 1); i++)

  line(1, i * CellSize, Width * CellSize, i * CellSize);

setfillstyle(1, WHITE);

for (i = 0; i < Width; i++)

  for (int j = 0; j < Height; j++)

   if (Cell[i][j] == 1)

    bar(i * CellSize, j * CellSize, (i + 1) * CellSize,

  (j + 1) * CellSize);

} 

class CharacterClass

{

int Radius;

int X, Y;

public:

CharacterClass();

void Draw();

void Erase();

void Move(int Cell[Width][Height], Direction dir);

};

CharacterClass::CharacterClass()

{

Radius = 15;

X = 7; Y = 0;

}

void CharacterClass::Draw()

{

setcolor(BLUE);

setfillstyle(1, BLUE);

fillellipse((2 * X + 1) * Radius, (2 * Y + 1) * Radius, Radius,

  Radius);

}

void CharacterClass::Erase()

{

setcolor(BLACK);

setfillstyle(1, BLACK);

fillellipse((2 * X + 1) * Radius, (2 * Y + 1) * Radius, Radius,

  Radius);

}

void CharacterClass::Move(int Cell[Width][Height], Direction dir)

{

Erase();

int Ok;

switch(dir)

  {

  case LEFT: if ((X > 0) && Cell[X - 1][Y] != 1) X--; break;

  case UP: if (Y > 0 && Cell[X][Y - 1] != 1) Y--; break;

  case RIGHT: if (X < Width && Cell[X + 1][Y] != 1) X++; break;

  case DOWN: if (Y < Height && Cell[X][Y + 1] != 1) Y++; break;

  }

Draw();

} 

void main()

{

GraphInit(); 

int exitOk = 0;

char c; 

DrawField(); 

CharacterClass Character;

Character.Draw(); 

while (!exitOk)

{

c = getch();

switch (c)

  {

  case 27: exitOk = !0;

  case 75: Character.Move(Cell, LEFT); break;

  case 72: Character.Move(Cell, UP); break;

  case 77: Character.Move(Cell, RIGHT); break;

  case 80: Character.Move(Cell, DOWN); break;

  }

DrawField();

}

closegraph();

} 
 
 
 

Заключение

Результатом выполнения данной работы является игра "Лабиринт". С помощью этой игры я углубил свои знания, и получил новые. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Список литературы

Список литературы

1. Герберт Шилдт.  Полный справочник по С++. Ossborne. 2003 

2. Стивен Прата.  /Язык программирования С. - М. Издательство "Диасофт", 2002. - 896 с. 

3. П. Дейтел, X. Дейтел. / Как программировать на С++. - М, Издательство "Бином" 2001 - 1152 стр.


Информация о работе Высокоуровневые методы информатики и программирования