Invisible_Ghost | Дата: Среда, 21 Января 2015, 21:46 | Сообщение # 1 | Тема: Помогите в создании змейки |
уже был
Сейчас нет на сайте
| Она создаётся в двух местах сразу.Дальше вообще хз что творится. Чтобы упростить прогу я многое закомментил. Это мой первый опыт, если я реально серьёзно ошибся, сильно не хайте. Код: program easy_snake; uses graphabc; type {breakpoint=record bpos,bnapr:integer; created:boolean; procedure create(pos,napr:integer); begin bpos:=pos; bnapr:=napr; created:=true; end; procedure destroy; begin bpos:=0; bnapr:=0; created:=false; end; end; } part=record px,py:integer; pnapr:integer; created:boolean; //journal: text; procedure create(x,y,napr:integer); var defcolor:color; begin px:=x; py:=y; pnapr:=napr; defcolor:=brush.Color; writeln(px,' ',py); setbrushcolor(clred); fillrect(px,py,px+5,py+5); textout(x,y,'Created there2'); setbrushcolor(defcolor); created:=true; textout(x,y,'Created there2'); // assign(journal,'C:\Users\user\Desktop\ghostpascal\snake\journal.txt'); //rewrite(journal);
//write(journal,'Part created'); end; procedure destroy; var defcolor:color; begin defcolor:=brush.Color; setbrushcolor(clwhite); //journal.Close; fillrect(px,py,px+5,py+5); setbrushcolor(defcolor); //redraw; created:=false; //writeln(journal,'closed'); //journal.Close; end; procedure move; var defcolor:color; begin defcolor:=brush.Color; setbrushcolor(clwhite); fillrect(px,py,px+5,py+5); case pnapr of 1:px+=5; 2:py+=5; 3:px-=5; 4:py-=5; end; setbrushcolor(clred); fillrect(px,py,px+5,py+5); //writeln(journal,' Moved'); setbrushcolor(defcolor); //redraw;
end; end; snake=record //bps:array [1..101] of breakpoint; body:array [1..101] of part; created:boolean; size:byte; n:integer; procedure create(x2,y2,napr:integer); var x3,y3:integer; begin x3:=x2; y3:=y2;
body[10].create(x3,y3,napr); body[10].created:=true; created:=true; size:=1; setbrushcolor(clbrown); textout(x3,y3,'Created there1'); end; procedure move; var a,b:integer; begin for a:=1 to size do begin {for b:=1 to n do begin if bps[b].created=true then begin if bps[b].bpos=a then body[a].pnapr:=bps[b].bnapr; bps[b].bpos-=1; if bps[b].bpos<1 then bps[b].destroy;
end;
end;} body[a].move; end; //redraw; end;{ procedure rotate(napr:integer); begin n+=1; if n=11 then n:=1; bps[n].create(size,napr); end; } procedure grow; begin size+=1; body[(size-101)*(-1)].create(body[(size-102)*(-1)].px,body[(size-102)*(-1)].py,body[(size-102)*(-1)].pnapr); end; end; var a,b:integer; sn:snake; p:part; begin coordinate.SetOrigin(50,50); sn.create(50,50,1); sn.grow; for a:=1 to 100 do begin sn.move; //sn.rotate(random(5));
sleep(100); end; end.
|
|
| |