Hamikadze

ver6.game(BETA, Без видимых багов)

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