Вход

Разработка игровой программы «МОРСКОЙ БОЙ».

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 294633
Дата создания 13 мая 2014
Страниц 32
Мы сможем обработать ваш заказ (!) 23 декабря в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 150руб.
КУПИТЬ

Описание

Целью работы является создание игровой программы «Морской бой». Текст программы создавался с помощью интегрированной среды разработки Turbo C++ IDE версии 3.11 . Тип использованной ЭВМ—AMD Duron-750. Особенностью данного курсового проекта является структурный подход к разработке программы, что сделало данный процесс более эффективным ...

Содержание


Введение………………………………………………………………….
1. Постановка задачи……………………………………………………….
2. Разработка алгоритма решения задачи…………………………………
3. Разработка программы:
3.1 Описание программы……………………………………………
3.2 Руководство программиста……………………………………..
3.3 Руководство оператора……………………………………….....
Заключение……………………………………………………………….....
Список литературы………………………………………………………....
Приложение 1……………………………………………………………....
Приложение 2……………………………………………………………....
Приложение 3……………………………………………………………....

Введение

Рассматриваемая в данном курсовом проекте проблема (создание игровой программы) в настоящее время весьма актуальна. Разработка игровых программных продуктов очень перспективное направление в области информационных технологий, так как подавляющее большинство обладателей персональных компьютеров, независимо от возраста и социального положения, увлекаются компьютерными играми. И это неудивительно, ведь компьютерные игры позволяют перенестись в, к сожалению нереальный, мир межзвездных путешествий, битв с монстрами, инопланетными захватчиками, террористами и прочей нечистью, развивая внимание, реакцию на внешние раздражители, скорость мышления, в некоторой степени интеллект, координацию движения (пальцев кисти рук) и т.д. Многие крупные компании-разработчики программного обеспечения параллельн о с созданием серьезных программных продуктов включают в себя подразделения, занимающиеся созданием компьютерных игр, пытаясь занять свою нишу в этом, довольно прибыльном сегменте рынка программных продуктов. В настоящее время можно наблюдать следующую тенденцию: разработчики компьютерных игр одними из первых берут на вооружение новейшие разработки в области аппаратного обеспечения ЭВМ, создают с помощью сверхпроизводительных процессоров и мощных видео акселераторов потрясающие визуальные эффекты, делая компьютерные игры все реальнее и, как следствие, стимулируя дальнейшие исследования разработчиков аппаратного обеспечения. Так что такому стремительному прогрессу в области компьютерного «железа» мы в немалой степени обязаны компьютерным развлечениям

Фрагмент работы для ознакомления

SHIP Ship;
SIGHT Sight;
unsigned char key_pressed()
{
unsigned char a;
int far *head,*tail;
head=(int*)MK_FP(0x40,0x1A);
tail=(int*)MK_FP(0x40,0x1C);
asm{
in al,60h
mov a,al
}
*head=(*tail);
return a;
}
void InitGraph()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "d:\\programm\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}
randomize();
}
void DrawBaseMessage()
{
setfillstyle(1,MAGENTA);
bar(0,0,639,80);
setcolor(BLACK);
settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
outtextxy(1,70,"Player");
outtextxy(599,70,"Enemy");
}
void Message(char* msg)
{
приложение 1(продолжение)
DrawBaseMessage();
setcolor(BLACK);
settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
outtextxy(320-textwidth(msg)/2,50,msg);
}
void DrawArea()
{
DrawBaseMessage();
setfillstyle(1,CORE_SEA);
bar(PL_X,PL_Y,PL_X+DIM*SIZE,PL_Y+DIM*SIZE);
setcolor(GREEN);
for(char k=0;k<=DIM;k++)
{
line(PL_X+k*SIZE,PL_Y,PL_X+k*SIZE,PL_Y+DIM*SIZE);
line(PL_X,PL_Y+k*SIZE,PL_X+DIM*SIZE,PL_Y+k*SIZE);
}
bar(EN_X,EN_Y,EN_X+DIM*SIZE,EN_Y+DIM*SIZE);
setcolor(GREEN);
for(k=0;k<=DIM;k++)
{
line(EN_X+k*SIZE,EN_Y,EN_X+k*SIZE,EN_Y+DIM*SIZE);
line(EN_X,EN_Y+k*SIZE,EN_X+DIM*SIZE,EN_Y+k*SIZE);
}
}
void DrawSquare(int x,int y,char i,char j,char color)
{
setfillstyle(1,color);
bar(x+j*SIZE+1,y+i*SIZE+1,x+(j+1)*SIZE-1,y+(i+1)*SIZE-1);
}
void DrawShip()
{
char color;
for(char i=0;i<Ship.sections;i++)
{
switch( PlayerField[Ship.Section[i].i][Ship.Section[i].j] )
{
case CLEAR:color=CORE_SHIP;break;
case SHIPS: color=CORE_CROSS_SHIP;break;
}
DrawSquare(PL_X,PL_Y,Ship.Section[i].i,Ship.Section[i].j,color);
}
}
void DrawBk()
{
char bk_color;
for(char i=0;i<Ship.sections;i++)
{
switch( PlayerField[Ship.Section[i].i][Ship.Section[i].j] )
{
case CLEAR: bk_color=CORE_SEA;break;
case SHIPS: bk_color=CORE_SHIP;break;
}
DrawSquare(PL_X,PL_Y,Ship.Section[i].i,Ship.Section[i].j,bk_color);
}
приложение 1(продолжение)
}
void DrawDamage(int x,int y,char i,char j,char color)
{
setfillstyle(1,color);
bar(x+j*SIZE+10,y+i*SIZE+10,x+(j+1)*SIZE-10,y+(i+1)*SIZE-10);
}
void DrawSight()
{
char i=Sight.i;
char j=Sight.j;
setcolor(RED);
setfillstyle(1,RED);
line(EN_X+j*SIZE+1,EN_Y+i*SIZE+1,EN_X+(j+1)*SIZE-1,EN_Y+(i+1)*SIZE-1);
line(EN_X+(j+1)*SIZE-1,EN_Y+i*SIZE+1,EN_X+j*SIZE+1,EN_Y+(i+1)*SIZE-1);
bar(EN_X+j*SIZE+13,EN_Y+i*SIZE+13,EN_X+(j+1)*SIZE-13,EN_Y+(i+1)*SIZE-13);
}
void DrawEnBk()
{
char bk_color,dm_color;
switch( EnemyField[Sight.i][Sight.j] )
{
case CLEAR:
case SHIPS: bk_color=CORE_SEA;break;
case DAMAGED:bk_color=CORE_DAMAGED;break;
case SHOOTED:
{
bk_color=CORE_SEA;
dm_color=CORE_SHOOTED;
DrawSquare(EN_X,EN_Y,Sight.i,Sight.j,bk_color);
DrawDamage(EN_X,EN_Y,Sight.i,Sight.j,dm_color);
return;
}
}
DrawSquare(EN_X,EN_Y,Sight.i,Sight.j,bk_color);
}
void HorMoveShip(char direct)
{
if(Ship.orient==HORIZ)
{
if(direct== -1 && Ship.Section[0].j== 0) return;
else
if(direct== 1 && Ship.Section[0].j== DIM-Ship.sections) return;
}
else
if(Ship.orient==VERT)
{
if(direct== -1 && Ship.Section[0].j== 0) return;
if(direct== 1 && Ship.Section[0].j== DIM-1) return;
}
DrawBk();
Ship.InitShip(Ship.Section[0].i,Ship.Section[0].j+direct,Ship.orient);
DrawShip();
приложение 1(продолжение)
}
void VerMoveShip(char direct)
{
if(Ship.orient==VERT)
{
if(direct== -1 && Ship.Section[0].i== 0) return;
else
if(direct== 1 && Ship.Section[0].i== DIM-Ship.sections) return;
}
else
if(Ship.orient==HORIZ)
{
if(direct== -1 && Ship.Section[0].i== 0) return;
if(direct== 1 && Ship.Section[0].i== DIM-1) return;
}
DrawBk();
Ship.InitShip(Ship.Section[0].i+direct,Ship.Section[0].j,Ship.orient);
DrawShip();
}
void AlignShip()
{
if(Ship.orient==HORIZ && Ship.Section[0].j>DIM-Ship.sections)
{
Ship.InitShip(Ship.Section[0].i,DIM-Ship.sections,Ship.orient);
return;
}
else if(Ship.orient==VERT && Ship.Section[0].i>DIM-Ship.sections)
{
Ship.InitShip(DIM-Ship.sections,Ship.Section[0].j,Ship.orient);
return;
}
}
void RotateShip()
{
if(Ship.sections==1)
return;
DrawBk();
if(Ship.orient==HORIZ)
{
Ship.InitShip(Ship.Section[0].i,Ship.Section[0].j,VERT);
}
else Ship.InitShip(Ship.Section[0].i,Ship.Section[0].j,HORIZ);
AlignShip();
DrawShip();
}
char NextShip()
{
char k,i;
if(Ship.orient==HORIZ)
{
for( k=Ship.Section[0].j-1;k<=Ship.Section[Ship.sections-1].j+1;k++)
{ if(k<0||k>DIM-1) continue;
приложение 1(продолжение)
for(i=Ship.Section[0].i-1;i<=Ship.Section[0].i+1;i++)
{
if(i<0||i>DIM-1) continue;
if(PlayerField[i][k]==SHIPS)
{
sound(1000);
delay(300);
nosound();
return 0;
}
}
}
}

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

Список использованной литературы.

1. Франка П. С++: учебный курс. – СПб.: Питер, 2001.
2. А. Фролов, Г. Фролов. Аппаратное обеспечение IBM PC. – М.: Диалог-МИФИ, 1992.
3. Г. Шилдс. С для профессиональных программистов. – Москва, 1989.
4. Т. Фейсон. Обьектно-ориентированное программирование на Borland C++ 4.5.-К.: «Диалектика», 1996.
Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00461
© Рефератбанк, 2002 - 2024