Змейка на Паскале

Задача

Используя модуль graph или ctr языка программирования Паскаль написать программу "Змейка".

Решение

Змейка - это игра, в которой по экрану движется полоска, изменяющая свое направление при нажатии клавиш вверх, вниз, влево и вправо. Цель игры, управляя движением змейки, не столкнуться с бордюром, "врагами", собрать "бонусы". При столкновении с последними длина змейки увеличивается.

Написать полную версию игры на любом языке программирования, в том числе Паскаль, - достаточно сложная задача для начинающих. Можно остановиться на варианте, когда по экрану движется полоска, управляемая клавиатурой.

Ниже представлен вариант кода, при выполнении которого по экрану перемещается курсор, управляемый нажатием клавиш d, a, w, s. Игра заканчивается, как только его позиция выходит за края дозволенной области, которая указана в заголовке цикла while.

В данном случае хвоста у змейки нет.

uses crt;
 
var
    x,y,vx,vy: integer;
    ch: char;
 
begin
    clrscr;
    x := 1;
    y := 25 div 2;
 
    while (x>=1) and (x<=80) and (y>=1) and (y<=25) do begin
        gotoxy(x,y);
        write('0');
        delay(60);
        if keypressed then begin
            ch := readkey;
            case ch of
                'd':begin vx:=1; vy:=0 end;
                'a':begin vx:=-1; vy:=0 end; 
                'w':begin vx:=0; vy:=-1 end; 
                's':begin vx:=0; vy:=1 end; 
            end;
        end;
        gotoxy(x,y);
        write(' ');
        inc(x,vx);
        inc(y,vy);
 
    end;
end.

Тема

Графика и псевдографика

Уровень

Сложные задачи

Последняя редакция