Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

pascal-snake

Текстовая змейка и прочая моя хрень, написанная когда-то давно на паскале.

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

# pascal-snake

Текстовая змейка и прочая моя хрень, написанная когда-то давно на паскале. Игру написал в январе 2020.

pascal
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????:2414 ??????????:25 ??????-????:4 ??????????:1 ??????????:687??????????????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                    ??????                          ?????????
?????????                                                ?????????
?????????                  ????????????                          ?????????
?????????                  ??????                            ?????????
?????????                  ??????                            ?????????
?????????                  ??????                            ?????????
?????????                  ??????????????????????????????????????????????????????            ?????????
?????????                                  ??????            ?????????
?????????                                  ??????            ?????????
?????????                                  ??????            ?????????
?????????                    ????????????????????????????????????????????????            ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Алгоритм игры

Основные переменные алгоритма игры

За положение объектов на карте отвечает двумерный массив map:array[0..25,0..25] of byte. Каждая ячейка map[x,y] (кроме [0,0..25] и [0..25,0]) хранит в себе состояние клетки на координатах x, y.

0 - пустая клетка “ ”

1 - стенка или тело змейки “██”

2 - яблоко или место смерти “██”

3 - голова змейки “█▄”(если змейка смотрит вправо или вверх), “▀█”(если вниз) “▄█”(если влево)

За направление движения отвечает переменная direction:byte

1 - вверх

2 - вправо

3 - вниз

4 - влево

За длину змейки отвечает переменная tail:byte. За координаты каждого звена змейки отвечает двумерный массив body:array[0..1,0..48] of byte. В ячейке body[0,n] хранятся координаты ячейки n(счёт от головы включительно) по оси x. В ячейке body[1,n] хранятся координаты ячейки n по оси y. body[0..1,0] используется в процедуре move для записи координат на какие координаты нужно переместить голову.

Процедура move

За обработку массивов map, body отвечает процедура move

pascal
procedure move; 
var i:integer; 
begin
  nowallcheck;
  if time>15 then endcheck; if (time=15) or (time=20) 
    then levelgen;
  eatcheck;
  if direction=1 
    then begin 
      body[1,0]:=body[1,1]-1; body[0,0]:=body[0,1]; 
    end;
  if direction=2 
    then begin 
      body[0,0]:=body[0,1]+1; body[1,0]:=body[1,1]; 
    end;
  if direction=3 
    then begin 
      body[1,0]:=body[1,1]+1; body[0,0]:=body[0,1]; 
    end;
  if direction=4 
    then begin 
      body[0,0]:=body[0,1]-1; body[1,0]:=body[1,1]; 
    end;
  for i:=tail+1 downto 1 do 
  begin
    body[1,i]:=body[1,i-1];
    body[0,i]:=body[0,i-1]; 
  end; 
  map[body[0,1],body[1,1]]:=3;
  map[body[0,2],body[1,2]]:=1; 
  map[body[0,tail+1],body[1,tail+1]]:=0; 
  map[eatx,eaty]:=2;
end;

При вызове процедуры nowallcheck любое звено змейки, оказавшееся на координатах 0 или 25 по x или y, переносится на координаты 24 или 1 по x или y. Затем, если прошло больше 15 игровых кадров, вызывается процедура endcheck. На 15 и 20 кадр вызывается процедура levelgen. Это нужно для того, чтобы первые 15 игровых кадров змейка получала бессмертие и чтобы исключить вариант проигрыша в случае попадения начальных координаты змейки в стену или при нахождении стены вплотную с её головой, ведь начальные координаты и направление генерируются случайно. А процедура levelgen чинит стены, через которые прошла змейка за эти 15 кадров.

Затем вызывается процедура eatcheck - она проверяет наличие яблока перед головой змейки. Дальше в зависимости от направления в body[0..1,0] записываются новые координаты головы. Следующий цикл записывает новые координаты n-1 звена для каждого n звена змейки, начиная с хвоста до головы, как по оси x, так и по y. В конце в массив map записываются изменения состояний 3-х клеток, головы и второй ячейки, ведь при любом раскладе на экране за кадр изменятся только 3 клетки (у змейки, изменение map в случае генерации еды прописано в eatgen). И в конце записывает в map[eatx,eaty] значение 3, потому что при генерации яблока перед головой змейка может пройти под ним, заменив его на пустую клетку, не съев.

Остальные процедуры алгоритма игры

Процедура deathcheck

pascal
procedure endcheck; 
begin
  if direction=1 then if map[body[0,1],body[1,1]-1]=1 then game:=false;
  if direction=2 then if map[body[0,1]+1,body[1,1]]=1 then game:=false;
  if direction=3 then if map[body[0,0],body[1,1]+1]=1 then game:=false;
  if direction=4 then if map[body[0,1]-1,body[1,1]]=1 then game:=false;
  if tail=48 then game:=false; 
end;

В зависимости от направления и координат головы процедура deathcheck проверяет массив map на наличие стены или тела змейки перед головой, в случае обнаружения препятствия или достижения змейкой длины 48 значение переменной game меняется c true на false.

Процедура eatcheck

pascal
procedure eatcheck; 
begin
  if direction=1 then if map[body[0,1],body[1,1]-1]=2 then begin body[0,tail+1]:=body[0,tail]; body[1,tail+1]:=body[1,tail]; tail:=tail+1; score:=score+25*difficulty; eatgen end;
  if direction=2 then if map[body[0,1]+1,body[1,1]]=2 then begin body[0,tail+1]:=body[0,tail]; body[1,tail+1]:=body[1,tail]; tail:=tail+1; score:=score+25*difficulty; eatgen end;
  if direction=3 then if map[body[0,0],body[1,1]+1]=2 then begin body[0,tail+1]:=body[0,tail]; body[1,tail+1]:=body[1,tail]; tail:=tail+1; score:=score+25*difficulty; eatgen end;
  if direction=4 then if map[body[0,1]-1,body[1,1]]=2 then begin body[0,tail+1]:=body[0,tail]; body[1,tail+1]:=body[1,tail]; tail:=tail+1; score:=score+25*difficulty; eatgen end;
end;

В зависимости от направления и координат головы проверяет наличие яблока перед головой, в случае обнаружения увеличивает tail на 1, прибавляет уровень сложности * 25 очков, вызывает процедуру eatgen, которая генерирует новое яблоко в свободной клетке карты, а в ячейку body[0..1,tail] записывает значение body[0..1,tail-1], чтобы длина змеи увеличилась следующим ходом.

Процедура eatgen

pascal
procedure eatgen; 
var seteat:boolean;
  x,y:byte; 
begin
  repeat
    x:=random(24)+1; y:=random(24)+1;
    if map[x,y]=0 then 
    begin 
      map[x,y]:=2; seteat:=true 
    end;
  until seteat=true;
end;

Генерирует случайные координаты для нового яблока до тех пор, пока клетка по этим координатам не будет свободной.

Процедура nowallcheck

pascal
procedure nowallcheck; var i,j:byte;
begin
  for i:=1 to 48 do 
  begin
    if body[0,i]=0 then body[0,i]:=24; 
    if body[0,i]=25 then body[0,i]:=1; 
    if body[1,i]=0 then body[1,i]:=24; 
    if body[1,i]=25 then body[1,i]:=1;
  end; 
end;

Меняет координаты любого звена змейки с 0 или 25 (по обеим осям) на 24 и 1 соответственно.

Управление

В основном цикле игры перед вызовом move вызывается control

pascal
procedure control; 
var key:char; 
begin
  if keypressed then key:=readkey;
  case key of 
    'w','W','ц','Ц': 
      if direction<>3 then direction:=1; 
    's','S','ы','Ы': 
      if direction<>1 then direction:=3; 
    'a','A','Ф','ф': 
      if direction<>2 then direction:=4; 
    'd','D','в','В': 
      if direction<>4 then direction:=2; 
 end;
end;

В случае нажатия любой кнопки на клавиатуре, эта кнопка считывается. Если она отвечает за клавиши WASD(в любом регистре и на любой раскладке), то изменяется значение переменной, отвечающей за направление. Но только в том случае, если это не обратное направление. То есть нельзя пойти направо, имея текущее направление влево. Это нужно для того, чтобы змейка не врезалась сама в себя, пытаясь развернуться.

Вывод изображения

Двумерный массив lastmap:array[1..24,1..24] of byte в каждой ячейке хранит значение этой же ячейки массива map, но за прошлый кадр, таким образом, программа вместо перерисовки всего кадра определяет, какие символы на экране необходимо заменить.

За вывод изображения отвечает процедура render, которая вызывается сразу после move в главной процедуре

pascal
procedure render; 
var x,y:integer; 
begin
  gotoxy(4,2); 
  write('Счёт:',score,' Длина:',tail,' Сложностьть:',difficulty,' Карта:',level,' Время:',time);
  for y:=1 to 24 do for x:=1 to 24 do 
  begin
    if (map[x,y]=0) and (lastmap[x,y]<>0) then 
    begin 
      gotoxy(x*2+2,y+2); 
      write(' '); 
      lastmap[x,y]:=map[x,y]; 
    end;
    if (map[x,y]=1) and (lastmap[x,y]<>1) then 
    begin 
      gotoxy(x*2+2,y+2); 
      write('██'); 
      lastmap[x,y]:=map[x,y]; 
    end;
    if (map[x,y]=2) and (lastmap[x,y]<>2) then 
    begin 
      textcolor(4); 
      gotoxy(x*2+2,y+2); 
      write('██'); 
      textcolor(0); 
      lastmap[x,y]:=map[x,y]; 
    end;
    if (map[x,y]=3) and (lastmap[x,y]<>3) then 
    begin 
      if (direction=1) or (direction=2) then 
        begin
          gotoxy(x*2+2,y+2); 
          write('█▄'); 
          lastmap[x,y]:=map[x,y]; 
        end;
      if direction=3 then 
        begin 
          gotoxy(x*2+2,y+2); 
          write('▀█'); 
          lastmap[x,y]:=map[x,y]; 
        end;
      if direction=4 then 
        begin 
          gotoxy(x*2+2,y+2); 
          write('▄█'); 
          lastmap[x,y]:=map[x,y]; 
        end;
    end; 
  end;
  gotoxy(2,1); 
 end;

Вначале переносится курсор на строчку выше игры, и выводит основную информацию: Счёт, Длину, Сложность и т.д. Затем проверяется значение каждой ячейки двумерного массива map[1..24,1..24], и, если это значение не совпадает с той же ячейкой массива lastmap, то курсор перемещается в необходимое место и заменяет два символа, значительно экономя ресурсы. В конце процедура перемещает курсор в сторону, чтобы он не мешал на игровом поле.

Игровой процесс

Основные игровые переменные

Переменная difficulty:byte хранит в себе уровень сложности от 1 до 5 включительно. Сложность влияет на начальную задержку между обновлением кадров по формуле 25*(8-difficulty) и на минимальную по формуле 25*(6- difficulty). Также она влияет на задержку, которая идёт первые 10 кадров по формуле 50*(8-difficulty), она увеличена, чтобы игрок мог определить, где находится змейка; на основную часть игры это никак не влияет.

Переменная time:integer хранит в себе количество отрисованных кадров.

Переменная score:integer хранит в себе количество очков. В зависимости от сложности кол-во очков увеличивается с каждым ходом по условию:

pascal
if time mod 6-difficulty = 0 then score:=score+1

т.е. чем выше сложность, тем чаще дают очки за время. Также очки дают за съеденные яблоки.

Главная процедура

pascal
begin
  menu; 
  gotoxy(1,1); 
  writeln('▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒'); 
  writeln('▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒');
  for k:=1 to 24 do 
  begin
    writeln('▒▒▒'); 
    gotoxy(52,k+2); 
    writeln('▒▒▒'); 
  end;
  writeln('▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒'); 
  writeln('▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒'); 
  game:=true; levelgen;
  direction:=random(4)+1;
  body[0,1]:=random(24)+1; 
  body[1,1]:=random(24)+1; 
  eatgen;
  tail:=2; 
  render; 
  repeat
    time:=time+1;
    if time mod 6-difficulty = 0 then 
      score:=score+1; 
    if time<10 then 
      delay(50*(8-difficulty));
    if time<2500 then 
      delay(25*((8-difficulty))-time div 100) else delay(25*((8-difficulty))-2500 div 50); 
    control;
    move; 
    render;
  until game=false;
  if tail <48 then 
    map[body[0,1],body[1,1]]:=2;
  render;
  gotoxy(4,1);
  if tail>47 then 
    writeln('Вы победили!') 
  else 
    writeln('Вы проиграли!');
  delay(2500); 
  gotoxy(4,27); 
end.

В начале вызывается процедура menu, в ней игрок выбирает сложность и одну из 6 карт.

Затем курсор переносится в угол экрана и отрисовываются границы поля.

Затем вызывается процедура levelgen, которая в зависимости от выбранной игроком карты, записывает необходимую карту в массив map.

Затем генерируется случайное начальное направление змейки, а также случайные её координаты. Генерируется яблоко и указывается начальная длина.

pascal
repeat
  time:=time+1;
  if time mod 6-difficulty = 0 then 
    score:=score+1; 
  if time<10 then 
    delay(50*(8-difficulty));
  if time<2500 then 
    delay(25*((8-difficulty))-time div 100) else delay(25*((8-difficulty))-2500 div 50); 
  control;
  move; 
  render;
until game=false;

Данный цикл является основным циклом игры. В нем вызываются все основные процедуры такие как move, control и render, а также выполняется задержка. В случае если игра закончена, по причине смерти или достижения длины змейки в 48 звеньев, цикл прерывается. Игра еще раз проверяет длину змейки, если она = 48 выводится сообщение о победе, в противном случае о проигрыше.

Процедура levelgen

pascal
procedure levelgen;
var i,j:byte;
begin
  if level=2 then for i:=1 to 24 do begin map[12,i]:=1; map[13,25-i]:=1; if time=0 then begin render; delay(20); end; end;
  if level=3 then for i:=1 to 24 do begin map[12,i]:=1; map[13,i]:=1; map[i,12]:=1; map[i,13]:=1; if time=0 then begin render; delay(20); end; end;
  if level=4 then for i:=1 to 14 do begin map[5,5+i]:=1; map[19,5+i]:=1; if i<7 then begin map[4+i,5]:=1; map[20-i,5]:=1; end; map[5+i,19]:=1; if time=0 then begin render; delay(20); end; end;
  if level=5 then for i:=1 to 24 do begin map[1,i]:=1; map[24,25-i]:=1; map[i,1]:=1; map[25-i,24]:=1; if time=0 then begin render; delay(20); end; end;
  if level=6 then begin
    for i:=1 to 24 do begin map[i,10]:=1; map[25-i,15]:=1; if time=0 then begin render; delay(20); end; end;
    for i:=1 to 10 do begin map[2,i+6]:=1; map[6,i+7]:=1; map[10,10-i+9]:=1; map[14,i+7]:=1; map[18,10-i+7]:=1; map[22,10-i+8]:=1; if time=0 then begin render; delay(35); end; end;
    map[3,15]:=0; map[16,10]:=0; map[6,13]:=0; map[10,11]:=0; map[18,11]:=0; map[18,11]:=0; map[2,12]:=0; map[22,14]:=0; map[14,13]:=0;
  end;
end;

Данная процедура записывает в массив map текущую карту. Всего есть 6 карт:

1 карта - без границ.

pascal
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????:1 ??????????:2 ??????-????:1 ??????????:1 ??????????:6????????????????????????????????????
?????????                                                ?????????
?????????          ??????                                    ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????          ??????                                    ?????????
?????????          ??????                                    ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

2 карта - 1/2.

pascal
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????:1 ??????????:2 ??????-????:2 ??????????:2 ??????????:7????????????????????????????????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????            ????????????      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????              ??????      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

3 карта - 1/4.

pascal
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????:1 ??????????:2 ??????-????:1 ??????????:3 ??????????:2????????????????????????????????????
?????????                  ??????  ????????????                      ?????????
?????????                  ??????  ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????          ??????          ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
?????????                      ????????????                      ?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

4 карта - коробка.

pascal
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????:1 ??????????:2 ??????-????:3 ??????????:4 ??????????:8????????????????????????????????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????        ????????????????????????????????????      ????????????????????????????????????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????  ??????    ??????                          ??????          ?????????
?????????  ??????    ??????                          ??????          ?????????
?????????    ??????  ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????                          ??????          ?????????
?????????        ??????????????????????????????????????????????????????????????????????????????????????????          ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

5 карта - с границами.

pascal
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????:0 ??????????:2 ??????-????:4 ??????????:5 ??????????:2????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????                                            ???????????????
?????????????????????                                          ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????            ????????????                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
???????????????                                            ???????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

6 карта - рельсы.

pascal
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????:1 ??????????:2 ??????-????:4 ??????????:6 ??????????:6????????????????????????????????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                    ????????????                        ?????????
?????????  ??????                              ??????            ?????????
?????????  ??????      ??????              ??????      ??????      ??????    ?????????
?????????  ??????      ??????      ??????      ??????      ??????      ??????    ?????????
???????????????????????????????????????????????????????????????????????????????????????????????????  ?????????????????????????????????????????????????????????
?????????  ??????      ??????              ??????              ??????    ?????????
?????????          ??????      ??????      ??????      ??????      ??????    ?????????
?????????  ??????              ??????              ??????      ??????    ?????????
?????????  ??????      ??????      ??????      ??????      ??????            ?????????
?????????????????????  ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????  ??????      ??????      ??????      ??????      ??????      ??????    ?????????
?????????          ??????      ??????      ??????              ??????    ?????????
?????????                  ??????                            ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????                                                ?????????
?????????              ??????                                ?????????
?????????                                                ?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Другие программы из репозитория

pcboot.pas

Текстовая визуализация запуска системы с падением в BSOD

graph.pas

Текстовое построение графика квадратного уравнения вида ax^2+bx+c=y

Примеры:

pascal
y=1x^2+1x+-20                                                              Y
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  . 25  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  . 24  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  . 23  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  . 22  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 21  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 20  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 19  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 18  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 17  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 16  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 15  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 14  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 13  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 12  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 11  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  . 10  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  9  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  8  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  7  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  6  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  5  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  4  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  3  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  2  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  1  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
-25-24-23-22-21-20-19-18-17-16-15-14-13-12-11-10-9 -8 -7 -6 ## -4 -3 -2 -1  0  1  2  3 ##  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24   X
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  . -1  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  . -2  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  . -3  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  . -4  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  . -5  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  . -6  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  . -7  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  . -8  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  . -9  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  . -10 .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  . -11 .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  . -12 .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  . -13 .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  . -14 . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  . -15  # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  . -16  # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  . -17  # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  . -18##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . #####  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -21 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -22 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -23 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -24 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
pascal
y=0x^2+1x+1                                                                Y
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 25  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 24  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 23  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 22  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 21  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 20  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 19  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 18  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 17  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 16  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 15  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 14  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 13  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 12  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 11  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 10  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  7  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  6  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  5  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  4  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  3  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  2 ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
-25-24-23-22-21-20-19-18-17-16-15-14-13-12-11-10-9 -8 -7 -6 -5 -4 -3 -2 ##  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24   X
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  . -1  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  . -2  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  . -3  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  . -4  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  . -5  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  . -6  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  . -7  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  . -8  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  . -9  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  . -10 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  . -11 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  . -12 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  . -13 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  . -14 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -15 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -16 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -17 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -18 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -19 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -20 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -21 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -22 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -23 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -24 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
pascal
y=-0.2x^2+0x+24                                                            Y
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 25  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   #######23 ###### .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   #### .  . 22  .  . ### .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  . 21  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   #### .  .  . 20  .  .  . ### .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  . 19  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  . 18  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  . 17  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   #### .  .  .  .  . 16  .  .  .  .  . ### .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  . 15  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   #### .  .  .  .  .  . 14  .  .  .  .  .  . ### .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  . 13  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  . 12  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   #### .  .  .  .  .  .  . 11  .  .  .  .  .  .  . ### .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  . 10  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  9  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  8  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   #### .  .  .  .  .  .  .  .  7  .  .  .  .  .  .  .  . ### .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  6  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  5  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  4  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  3  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  2  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  1  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .
-25-24-23-22-21-20-19-18-17-16-15-14-13-12  #-10-9 -8 -7 -6 -5 -4 -3 -2 -1  0  1  2  3  4  5  6  7  8  9   #11 12 13 14 15 16 17 18 19 20 21 22 23 24   X
 .  .  .  .  .  .  .  .  .  .  .  .  .   #### .  .  .  .  .  .  .  .  .  . -1  .  .  .  .  .  .  .  .  .  . ### .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  . -2  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  . -3  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  . -4  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .   #### .  .  .  .  .  .  .  .  .  .  . -5  .  .  .  .  .  .  .  .  .  .  . ### .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  . -6  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  . -7  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  . -8  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  . -9  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .   #### .  .  .  .  .  .  .  .  .  .  .  . -10 .  .  .  .  .  .  .  .  .  .  .  . ### .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  . -11 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  . -12 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  . -13 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  . -14 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  . -15 .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .   #### .  .  .  .  .  .  .  .  .  .  .  .  . -16 .  .  .  .  .  .  .  .  .  .  .  .  . ### .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  . -17 .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  . -18 .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  . -19 .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  . -20 .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .  .  .  .  .  . -21 .  .  .  .  .  .  .  .  .  .  .  .  .  . ##  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -22 .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -23 .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .  .  .  .  .  .  . -24 .  .  .  .  .  .  .  .  .  .  .  .  .  .   # .  .  .  .  .  .  .  .  .

zmeyka.pas

Моя первая попытка написать змейку на паскале. Написана где-то в конце 2019 года. Поле оказалось слишкком большим 128 на 128, а по неопотности я не использовал константы и на размере поля была завязана вся логика игры.

pascal
0   48   57/45     27/509044
 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                             ?????????????????????????????????                                                                      ???
 ???                                             ???         ???                                                                      ???
 ???                                             ???         ???                                                                      ???
 ???                                             ???         ???                                                                      ???
 ???                                             ???                                                                                ???
 ???                         ???????????????????????????????????????????????????????????????                                                                                ???
 ???                ???                                                                                                             ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ???                                                                                                                              ???
 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????