Advertisement
Hamikadze

ver6.game(ALPHA, баги с генерацией стен)

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