Программирование игры "Змейка"

Автор работы: Пользователь скрыл имя, 09 Февраля 2011 в 11:55, курсовая работа

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

Курсовий проект складається зі вступу , двох розділів , висновків , списку використаної літератури , графічної частини та додатків. Текст пояснювальної записки набрано та розрдуковано з використанням текстового редактора Word. Графічна частина виконана з допомогою графічного редактора Visio.

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

Вступ…………………………………………………………....3.


1.ТЕОРЕТИЧНА ЧАСТИНА………………………………….5.


1.1.Постановка задачі………………………………………....5.


2.ПРАКТИЧНА ЧАСТИНА…………………………………...6.


2.1.Архітектура програми…………………………………….6.


2.2.Опис програми………………………………………….....8.


2.3.Контрольний приклад………………………………………


та аналіз результатів машинного експерименту……………13.


ВИСНОВКИ……………………………………………………18.


СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ…………………18.


ДОДАТКИ……………………………………………………...19.

Файлы: 1 файл

Курсовая.doc

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

  Перегляд  раніше записаних результатів 

                 

  Розроблена  програма-гра дає можливість добре  відпочити після тривалого робочого дня. 
 
 
 
 
 
 

  Висновки. 

                  Розв’язування задач обчислювального характеру з використанням персональних комп’ютерів має велике практичне значення, оскільки дає можливість значно економити час при виконанні простих , але громістких обчислень. Використання з цією метою готових пакетів прикладних програм для виконання математичних обчислень має певні вади. Ліцензовані пакети прикладних програм мають високу вартість і достатньо високу складність експлуатації. Тому їх використання для розв’язування нескладних задач (а саме такою є сортування масиву) є недоцільним. Надзвичайно важливо вміти самостійно складати прості програми для розв’язування задач обчислювального характеру. 

                В даному курсовому проекті розроблено і описано програму-гру «Змійка». Для розробки програми вибрано мову Паскаль (середовище Borland Pascal) . Програма розроблена із застосуванням методики процедурного проектування. 

               Програма відкомпільована з отриманням ехе-файла та відладжена. 

          Вибір алгоритмічної мови Паскаль  для реалізації постановленої  задачі повністю виправдав себе. 
 
 
 
 
 
 
 
 
 
 
 
 
 

  Список  використаної літератури: 

  1. Т.В. Ковалюк, видавнича група «BHV», 2005- «ОСНОВИ ПРОГРАММУВАННЯ».
 
 
 
 
 
 
 
 

  ДОДАТКИ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

                     
 
 
 
 
 
 
 
 

                                           
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    
 
 
 
 
 
 
 
 

  

                                                                                                

 

  Додаток 2.

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

    001}Program ZMEjKA;

    002}uses CRT;

    003}label 1;

    004}type result=record

    005}      scor:integer;

    006}     name:string[15];

    007}      len:integer;

    008}     end;

    009}  res=file of result;

    010}

    Var

    011} f:                                res;

    012}SnakeX,SnakeY:  array[1..4000] of longint;

    013}HeadX,HeadY:                      longint;

    014}BonusX,BonusY:  array[1..40]   of longint;

    015}DeathX,DeathY:  array[1..30]   of longint;

    016}Dlina,Naprav:                     longint;

    017}key:                              char;

    018}i,score:                          integer;

    019}MenuItem:       array[1..6]    of string;

    020}DTime,ScorePlus,ScoreMinus,MenuSelect,x,y:       integer;

  {-----------------------------------------------------}

    021}Procedure Ramka(x,y:integer);

    022}Begin

    023}TextColor(2);

    024} TextBackground(0);

    025}gotoxy(x,y);

    026} writeln('╔═ ЗМЕЙКА 0.1 ══════╗');

    027} gotoxy(x,y+1);

    028} writeln('║     VERY SLOW     ║');

    029} gotoxy(x,y+2);

  1. } writeln('║       SLOW        ║');
  2. } gotoxy(x,y+3);
  3. } writeln('║      MEDIUM       ║');
  4. } gotoxy(x,y+4);
  5. } writeln('║       HIGH        ║');
  6. } gotoxy(x,y+5);
  7. } writeln('║     VERY HIGH     ║');
  8. } gotoxy(x,y+6);
  9. }writeln('║      RESULT       ║');
  10. }gotoxy(x,y+7);
  11. }writeln('╚═══════════════════╝');
  12. }gotoxy(x,y+8);
  13. }textcolor(14);
  14. }writeln('  Виберiть рiвень    ');
  15. }textcolor(0);
  16. }gotoxy(1,1);
  17. }End;

  {------------------------------------------------------}

  1. } Procedure Symbol(x,y:integer; sym:char);
  2. } Begin
  3. } gotoxy(x,y);
  4. } write(sym);
  5. } gotoxy(1,1);
  6. } End;

  {------------------------------------------------------}

  1. } Procedure Rezultat(var d:res;scr,dl:integer);
  2. } var f1:result;
 
   
  1. } Begin
  2. } {$I-}
  3. } Reset(d);
  4. } {$I+}
  5. } IF IOResult<>0 THen rewrite(d);
  6. } clrscr;
  7. } gotoxy(28,22);
  8. } textcolor(green);
  9. } write('Введить ваше iм`я: ');
  10. } readln(f1.name);
  11. } f1.scor:=scr;
  12. } f1.len:=dl;
  13. } seek(d,filesize(d));
  14. } write(d,f1);
  15. } Close(d);
  16. } Textcolor(0);
  17. } Halt;
  18. } End;

  {--------------------------------------------------------}

  1. } Procedure OverRes(var d:res);
  2. } var f1:result;
  3. } y:integer;
  4. } Begin
  5. } ClrScr;
  6. } {$I-}
  7. } Reset(d);
  8. } {$I+}
  9. } IF IOResult<>0 THEN begin
  10. } gotoxy(28,22);
  11. }  textcolor(green);
  12. }  write('Результатiв немає!');end
  13. } Else
  14. } begin
  15. } textcolor(green);
  16. } y:=1;
  17. } while not eof(d) do begin
  18. } read(d,f1);
  19. } gotoxy(1,y); write('Iм`я: ',f1.name);
  20. } gotoxy(30,y); write('Довжина: ',f1.len);
  21. } gotoxy(45,y); write('Oчки: ',f1.scor:5);
  22. } y:=y+1;
  23. } end;
  24. } Close(d);
  25. } end;
  26. } repeat until keypressed;
  27. } textcolor(0);

      100}End;

   {-------------------------------------------------------------------} 

  1. } Procedure GoUp(x,y:integer);
  2. } Begin
  3. } Ramka(x,y);
  4. } MenuSelect:=Menuselect-1;
  5. } IF MenuSelect < 1 THEN MenuSelect:=6;
  6. } TextColor(14);
  7. } TextBackground(0);
  8. } GotoXY(x+1,y+MenuSelect);
  9. } write(MenuItem[MenuSelect]);
  10. } Textbackground(0);
  11. } textcolor(0);
  12. } gotoxy(1,1);
  13. } End;

  {------------------------------------------------------}

  1. }Procedure GoDown(x,y:integer);
  2. }Begin
  3. }ramka(x,y);
  4. }MenuSelect:=MenuSelect+1;
  5. }IF MenuSelect > 6 THEN MenuSelect:=1;
  6. }textcolor(14);
  7. }textbackground(0);
  8. }gotoxy(x+1,y+MenuSelect);
  9. }write(MenuItem[MenuSelect]);
  10. }textcolor(0);
  11. }textbackground(0);
  12. }gotoxy(x,y);
  13. }End;

  {------------------------------------------------------}

  1. }Procedure Menu;
  2. }label b;
  3. }Var
  4. }X,Y,I:integer;
  5. }Begin
  6. }b:
  7. }dlina:=5;
  8. }Naprav:=1;
  9. }HeadX:=5;
  10. }HeadY:=1;
  11. }Score:=0;
  12. }X:=28;Y:=20;
  13. }clrscr;
  14. }Ramka(x,y);
  15. }textcolor(14);
  16. }textbackground(0);
  17. }gotoxy(x+1,y+Menuselect);
  18. }write(MenuItem[MenuSelect]);
  19. }textcolor(0);
  20. }textbackground(0);
  21. }gotoxy(1,1);
  22. }repeat
  23. }I:=ord(readkey);
  24. }case I of
  25. }72:GoUp(x,y);
  26. }80:GoDown(x,y);
  27. }end;
  28. }Until (I=27)or(I=13);
  29. }IF i=27 THEN halt;
  30. }Case MenuSelect of
  31. }1: Begin

      DTime:=10000;

      ScorePlus:=5;

      End;

  1. }2: Begin

      DTime:=8000;

      ScorePlus:=10;

      End;

  1. }3: Begin

       DTime:=6000;

       ScorePlus:=15;

       End;

  1. }4: Begin

        DTime:=4000;

        ScorePlus:=20;

        End;

  1. }5: Begin

        DTime:=2000;

        ScorePlus:=25;

        End;

  1. }6: Begin

        OverRes(f);

        ClrScr;

        goto b;

        End;

  1. }End;
  2. }CLRSCR;
  3. }End;

  {---------------------------------------------------------}

  1. }Procedure DrawSnake;
  2. }Begin
  3. }textcolor(15);
  4. }gotoxy(1,50);
  5. }write('            ');
  6. }gotoxy(1,50);
  7. }write('Oчки:  ',Score);
  8. }gotoxy(20,50);
  9. }write('Програму разрoбив Матковський Руслан aka Pat');
  10. }gotoxy(65,50);
  11. }write('              ');
  12. }gotoxy(65,50);
  13. }write('Довжина: ',Dlina);
  14. }Symbol(SnakeX[1],SnakeY[1],chr(15));
  15. }textcolor(2);
  16. }for i:=2 to Dlina do  begin
  17. }Symbol(SnakeX[i],SnakeY[i],chr(15));
  18. }end;
  19. }textcolor(red);
  20. }for i:=1 to 40 do
  21. }Symbol(BonusX[i],BonusY[i],chr(64));
  22. }textcolor(0);
  23. }gotoxy(1,1);
  24. }End;

    {----------------------------------------------------------}

  1. }Procedure AddBonus(b:longint);
  2. }label 1;
  3. }var
  4. }Err,f:integer;
  5. }Begin
  6. }1:
  7. }Err:=0;
  8. }BonusX[b]:=Random(78)+1;
  9. }BonusY[b]:=Random(48)+1;
  10. }For f:=1 to 40 do
  11. }if f<>b THEN
  12. }if ((BonusX[f]=BonusX[b]) and (BonusX[f]<>0) and (BonusY[f]=BonusY[b]) and (BonusY[f]<>0)) THEN Err:=1;
  13. }For f:=1 to Dlina do
  14. }if (SnakeX[f]=BonusX[b]) and (SnakeY[f]=BonusY[b]) THEN Err:=1;
  15. }IF Err=1 THEN goto 1;
  16. }textcolor(0);
  17. }gotoxy(1,1);
  18. }End;

    {-----------------------------------------------------------}

  1. }Procedure Kill;
  2. }Var c:array[1..6] of char;
  3. }j:integer;
  4. }label 1;
  5. }Begin
  6. }c[1]:='X';
  7. }c[2]:='x';
  8. }c[3]:=':';
  9. }c[4]:='.';
  10. }c[5]:='.';
  11. }c[6]:=' ';
  12. }Textcolor(2);
  13. }for i:=1 to 6 do begin
  14. }for j:=1 to Dlina do Symbol(SnakeX[j],SnakeY[j],c[i]);
  15. }delay(5000);
  16. }end;
  17. }1:
  18. }CLRSCR;
  19. }textcolor(15);
  20. }gotoxy(1,50);
  21. }write('            ');
  22. }gotoxy(1,50);
  23. }write('Oчки:  ',Score);
  24. }gotoxy(20,50);
  25. }write('Програму разрoбив Матковський Руслан aka Pat');
  26. }gotoxy(65,50);
  27. }write('              ');
  28. }gotoxy(65,50);
  29. }write('Довжина: ',Dlina);
  30. }textcolor(2);
  31. }gotoxy(28,22);
  32. }write('╔═══════════════════╗');
  33. }gotoxy(28,23);
  34. }write('║                   ║');
  35. }gotoxy(28,24);
  36. }write('║ Продовжити(Y/N)? ║');
  37. }gotoxy(28,25);
  38. }write('║                   ║');
  39. }gotoxy(28,26);
  40. }write('╚═══════════════════╝');
  41. }gotoxy(1,1);
  42. }key:=readkey;
  43. }case key of
  44. }'Y','y','Н','н': begin

Информация о работе Программирование игры "Змейка"