Advertisement
Hamikadze

ver5.game(с расширением лабиринта)

Apr 16th, 2014
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 7.78 KB | None | 0 0
  1. uses
  2.   crt;//Подрубаем модуль, без него не работает
  3.  
  4. var
  5.   x, y, e, g, e1, r, l, lx, ly, x1, x2, x3, x4, y1, y2, y3, y4, EXTx, EXTy, v1, v2, a, c, d, z1, z2, lvl, t1, t2, CQL: integer;
  6.   Sym: char;//Значение 'Sym' - будет только для знаков (букв)
  7.  
  8. begin
  9.   textbackground(white); //Перекраска фона
  10.   clrscr; //Очистка экрана и применени цвета фона
  11.   lx := 14;//лабик
  12.   ly := 14;//лабик
  13.   l := lx * ly;//лабик
  14.   r := 16;//арена
  15.   EXTx := 19;
  16.   EXTy := 17;
  17.   t1 := 2;
  18.   t2 := 2;
  19.   lvl := 1;
  20.   for g := 1 to 3 do
  21.   begin
  22.     x := 5; //Корды перемеения курсора -
  23.     y := 3; //Корды перемеения курсора |
  24.     x1 := 4;// |
  25.     x2 := 20;// |
  26.     x3 := 4;// -
  27.     x4 := 4;// -
  28.     y1 := 2;// |
  29.     y2 := 18;// |
  30.     y3 := 2;// -
  31.     y4 := 18;// -
  32.     CQL := 1;//часть цикла
  33.     //-------
  34.     if lvl = 2 then begin
  35.       r := r + 5;
  36.       x2 := x2 + 5;
  37.       y2 := y2 + 5;
  38.       y4 := y4 + 5;
  39.     end;
  40.     if lvl = 3 then begin
  41.       r := r + 10;
  42.       x2 := x2 + 10;
  43.       y2 := y2 + 10;
  44.       y4 := y4 + 10;
  45.     end;
  46.     //-------
  47.     textcolor(black); //Текст будет цветом
  48.     gotoxy(x1, y1); // рисуем первые квадратики арены
  49.     write('H');
  50.     gotoxy(x2, y2);
  51.     write('H');
  52.     gotoxy(x3, y3);
  53.     write('H');
  54.     gotoxy(x4, y4);
  55.     write('H');
  56.     //--------
  57.     textcolor(red); //Текст будет цветом
  58.     v1 := 5;
  59.     v2 := 3;
  60.     assign(output, 'lvl.txt');
  61.     rewrite(output);
  62.     for d := 1 to l do
  63.     begin
  64.       a := random(5);
  65.       writeln(a);
  66.     end;
  67.     close(output);
  68.     reset(output);
  69.     for d := 1 to lx do
  70.     begin
  71.       for c := 1 to ly do
  72.       begin
  73.         gotoxy(v1, v2);
  74.         //v1 := v1 + 1;
  75.         read(output, a);
  76.         if a = 1 then begin
  77.           writeln('*');
  78.           if (x = v1) and (y = v2) then begin
  79.             gotoxy(1, 1); //Если закрытие перемещаем на новые корды
  80.             clrscr; //Очистка экрана
  81.             textcolor(green); //Если закрытие меняем цвет текста на зеленый
  82.             writeln('Спасибо за тестирование данной фигни'); //Если закрытие пишем хрень какую-то
  83.             EXIT; //ПРЕКРАЩЕНИЕ ЦИКЛА!!!
  84.           end;
  85.         end;
  86.         v1 := v1 + 1;
  87.       end;
  88.       v1 := 5;
  89.       v2 := v2 + 1;
  90.     end;
  91.     v1 := 5;
  92.     v2 := 3;
  93.     close(output);
  94.     //--------
  95.     for e1 := 1 to r do //рисуем всю арену
  96.     begin
  97.       textcolor(black); //Текст будет цветом
  98.       y1 := y1 + 1;
  99.       gotoxy(x1, y1);
  100.       write('H');
  101.       y2 := y2 - 1;
  102.       gotoxy(x2, y2);
  103.       write('H');
  104.       x3 := x3 + 1;
  105.       gotoxy(x3, y3);
  106.       write('H');
  107.       x4 := x4 + 1;
  108.       gotoxy(x4, y4);
  109.       write('H');
  110.     end;
  111.     //--------
  112.     while CQL = 1 do
  113.     begin
  114.       gotoxy(EXTx, EXTy);
  115.       textcolor(blue); //Текст будет цветом
  116.       write('O');
  117.       gotoxy(x, y); //Курсор будет перемещён в точку
  118.       textcolor(green); //Текст будет цветом
  119.       write('o'); //Вывод текста
  120.       Sym := readkey; //Значение 'Sym' клавиша
  121.       if Sym = 'a' then x := x - 1; //Влево
  122.       if Sym = 'w' then y := y - 1; //Вверх
  123.       if Sym = 'd' then x := x + 1; //Вправо
  124.       if Sym = 's' then y := y + 1; //Вниз
  125.       if Sym = 'x' then begin//Закрытие
  126.         gotoxy(1, 1); //Если закрытие перемещаем на новые корды
  127.         clrscr; //Очистка экрана
  128.         textcolor(green); //Если закрытие меняем цвет текста на зеленый
  129.         writeln('Спасибо за тестирование данной фигни'); //Если закрытие пишем хрень какую-то
  130.         EXIT; //ПРЕКРАЩЕНИЕ ЦИКЛА!!!
  131.       end;
  132.       clrscr; //Очистка экрана
  133.       x1 := 4;// |
  134.       x2 := 20;// |
  135.       x3 := 4;// -
  136.       x4 := 4;// -
  137.       y1 := 2;// |
  138.       y2 := 18;// |
  139.       y3 := 2;// -
  140.       y4 := 18;// -
  141.       //--------
  142.      
  143.       //-------
  144.       if lvl = 2 then begin
  145.         //r := r + 5;
  146.         x2 := x2 + 5;
  147.         y2 := y2 + 5;
  148.         y4 := y4 + 5;
  149.       end;
  150.       if lvl = 3 then begin
  151.         //r := r + 10;
  152.         x2 := x2 + 10;
  153.         y2 := y2 + 10;
  154.         y4 := y4 + 10;
  155.       end;
  156.       //-------
  157.       textcolor(red); //Текст будет цветом
  158.       reset(output);
  159.       for d := 1 to lx do
  160.       begin
  161.         for c := 1 to ly do
  162.         begin
  163.           gotoxy(v1, v2);
  164.           //v1 := v1 + 1;
  165.           read(output, a);
  166.           if a = 1 then begin
  167.             writeln('*');
  168.             if (x = v1) and (y = v2) then begin//Закрытие
  169.               gotoxy(1, 1); //Если закрытие перемещаем на новые корды
  170.               clrscr; //Очистка экрана
  171.               textcolor(green); //Если закрытие меняем цвет текста на зеленый
  172.               writeln('Спасибо за тестирование данной фигни'); //Если закрытие пишем хрень какую-то
  173.               EXIT; //ПРЕКРАЩЕНИЕ ЦИКЛА!!!
  174.             end;
  175.           end;
  176.           v1 := v1 + 1;
  177.         end;
  178.         v1 := 5;
  179.         v2 := v2 + 1;
  180.       end;
  181.       close(output);
  182.       v1 := 5;
  183.       v2 := 3;
  184.       //--------
  185.       textcolor(black); //Текст будет цветом
  186.       gotoxy(x1, y1); // рисуем первые квадратики арены
  187.       write('H');
  188.       if (x = x1) and (y = y1) then begin
  189.         clrscr; //Очистка экрана
  190.         EXIT;
  191.       end;
  192.       gotoxy(x2, y2);
  193.       write('H');
  194.       if (x = x2) and (y = y2) then begin
  195.         clrscr; //Очистка экрана
  196.         EXIT;
  197.       end;
  198.       gotoxy(x3, y3);
  199.       write('H');
  200.       if (x = x3) and (y = y3) then begin
  201.         clrscr; //Очистка экрана
  202.         EXIT;
  203.       end;
  204.       gotoxy(x4, y4);
  205.       write('H');
  206.       if (x = x4) and (y = y4) then begin
  207.         clrscr; //Очистка экрана
  208.         EXIT;
  209.       end;
  210.       for e1 := 1 to r do //рисуем всю арену
  211.       begin
  212.         textcolor(black); //Текст будет цветом
  213.         y1 := y1 + 1;
  214.         gotoxy(x1, y1);
  215.         write('H');
  216.         if (x = x1) and (y = y1) then begin
  217.           clrscr; //Очистка экрана
  218.           EXIT;
  219.         end;
  220.         y2 := y2 - 1;
  221.         gotoxy(x2, y2);
  222.         write('H');
  223.         if (x = x2) and (y = y2) then begin
  224.           clrscr; //Очистка экрана
  225.           EXIT;
  226.         end;
  227.         x3 := x3 + 1;
  228.         gotoxy(x3, y3);
  229.         write('H');
  230.         if (x = x3) and (y = y3) then begin
  231.           clrscr; //Очистка экрана
  232.           EXIT;
  233.         end;
  234.         x4 := x4 + 1;
  235.         gotoxy(x4, y4);
  236.         write('H');
  237.         if (x = x4) and (y = y4) then begin
  238.           clrscr; //Очистка экрана
  239.           EXIT;
  240.         end;
  241.         if (EXTx = x) and (EXTy = y) then begin
  242.           gotoxy(t1, t2);
  243.           CQL := 2;
  244.         end;
  245.       end;
  246.     end;
  247.     //-------
  248.     rewrite(output);
  249.     close(output);
  250.     if (t1 = 2) and (t2 = 2) then begin
  251.       clrscr;
  252.       lvl := lvl + 1;
  253.       writeln('Finish! LEVEL ', lvl);
  254.     end;
  255.     //--------
  256.    
  257.     //--------
  258.   end;
  259.   readln; //Это чтоб окно сразу не закрылось
  260. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement