📄 snake.pas
字号:
uses crt;
var
x,y,dx,dy:array[1..100]of integer;
bdnular:array[1..100]of char;
ditekan:char;
i:integer;
pjgsnake:integer;
xmakan,ymakan:integer;
muncul:integer;
makanan:char;
begin
randomize;
x[1]:=5;
x[2]:=4;
x[3]:=3;
x[4]:=2;
x[5]:=1;
y[1]:=5;
y[2]:=5;
y[3]:=5;
y[4]:=5;
y[5]:=5;
bdnular[1]:='*';
bdnular[2]:='*';
bdnular[3]:='*';
bdnular[4]:='*';
bdnular[5]:='*';
pjgsnake:=5;
xmakan:=random(70)+1;
ymakan:=5;
muncul:=1;
makanan:=chr(random(26)+65); {chr(65)='A' ord('A')=65}
i:=ord('A');
{ chr(65);}
repeat
if keypressed then
begin
ditekan:=readkey;
end;
if ditekan=#77 then
begin
for i:=pjgsnake downto 2 do
begin
x[i]:=x[i-1];
y[i]:=y[i-1];
end;
x[1]:=x[1]+1;
end;
if ditekan=#75 then
begin
for i:=pjgsnake downto 2 do
begin
x[i]:=x[i-1];
y[i]:=y[i-1];
end;
x[1]:=x[1]-1;
end;
if ditekan=#72 then
begin
for i:=pjgsnake downto 2 do
begin
x[i]:=x[i-1];
y[i]:=y[i-1];
end;
y[1]:=y[1]-1;
end;
if ditekan=#80 then
begin
for i:=pjgsnake downto 2 do
begin
x[i]:=x[i-1];
y[i]:=y[i-1];
end;
y[1]:=y[1]+1;
end;
delay(100);
clrscr;
for i:=1 to pjgsnake do
begin
gotoxy(x[i],y[i]);write(bdnular[i]);
end;
if muncul=1 then
begin
gotoxy(xmakan,ymakan);write(makanan);
end;
if (x[1]=xmakan)and(y[1]=ymakan) then
begin
muncul:=0;
inc(pjgsnake);
bdnular[pjgsnake]:=makanan;
if ditekan=#77 then
begin
x[pjgsnake]:=x[pjgsnake-1]-1;
y[pjgsnake]:=y[pjgsnake-1];
end;
if ditekan=#75 then
begin
x[pjgsnake]:=x[pjgsnake-1]+1;
y[pjgsnake]:=y[pjgsnake-1];
end;
if ditekan=#72 then
begin
x[pjgsnake]:=x[pjgsnake-1];
y[pjgsnake]:=y[pjgsnake-1]+1;
end;
if ditekan=#80 then
begin
x[pjgsnake]:=x[pjgsnake-1];
y[pjgsnake]:=y[pjgsnake-1]-1;
end;
if muncul=0 then
begin
xmakan:=random(70)+1;
ymakan:=random(20)+1;
muncul:=1;
makanan:=chr(random(26)+65); {chr(65)='A' ord('A')=65}
end;
end;
until ditekan=#27;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -