Люди, помогите написать пожалуйста змейку, обычную змейку в графическом режиме; без всяких $, ассемблеров и неизвестных вещей начинающему программисту. Вот начальный код (только это начало и в нём мнооооооооогое не осуществлено):
uses crt, graph; type arr = Array[1..60, 1..60] of byte; {=================} procedure newt(var field : arr); var i, j : byte; begin randomize; i := random(60); j := random(60); if (field[i, j] <> 1) and (field[i, j] <> 2) then field[i, j] := 2; end; {=================} function st(a : longint) : String; var s : string; Begin Str(a, s); st := s; End; {=================} procedure snake(var snake : arr); var i, j : byte; begin i := 30; for j := 29 to 31 do snake[i, j] := 1; end; {=================} procedure grafika(field : arr); var i, j : byte; begin for i := 1 to 60 do begin for j := 1 to 60 do begin if field[i, j] = 0 then begin setcolor(0); setfillstyle(1, 0); bar((i - 1) * 8, (j - 1) * 8, i * 8, j * 8); end; if field[i, j] = 1 then begin setcolor(4); setfillstyle(1, 4); bar((i - 1) * 8, (j - 1) * 8, i * 8, j * 8); end; if field[i, j] = 2 then begin setcolor(2); setfillstyle(1, 10); bar((i - 1) * 8, (j - 1) * 8, i * 8, j * 8); end; end; end; end; {=================} {=================} var speed, score, grdriver, grmode : integer; field : arr; BEGIN grDriver:=Detect; InitGraph(grDriver, grMode, ''); setcolor(1); rectangle(0, 0, 480, 480); settextstyle(defaultfont, horizdir, 1); outtextxy(getmaxx - 100, 30, 'SPEED'); outtextxy(getmaxx - 40, 30, st(speed)); outtextxy(getmaxx - 100, 15, 'SCORE'); outtextxy(getmaxx - 40, 15, st(score)); grafika(field); newt(field); END.
Ещё такая проблема: если повторяю через репит вывод newt, то границы поля не отображаются, и не выводится процедура snake.