1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
нажатие кнопок..., считывание нажатия в цикле без его ост.
я хотел бы знать как в цикле фиксировать нажатие кнопки не останавливая при этом цикл ... т.е. например в теле цикла х имзеняется по форуле x:=x+1; ... нажал что нада а цикл всё идёт и ёдет ... но уже x:=x+2; ... вот так вот ...
вот в догонку кому еще интересно ... всё выглядит как нормальная змейка толко пака без собирания фруктов и терь она сама в себя врезается и транспортикуется при врезании в стену ... короче почти полноценная змея!
program MuXaZ_zmeika; uses crt,graph; label 1,2,3,4,5; var dl,dl1,start,xx,sp,yy,rx1,rx2,ry2,ry1,i,i1,i2,i3,i4,i5,i6,i7,gd,gm:integer; st,st1,st2,st3:string; sx:array[0..880] of integer; sy:array[0..880] of integer;
i:=7; setcolor(8); while i<=318 do begin i:=i+12; line(i,20,i,234); end; i:=7; setcolor(8); while i<=233 do begin i:=i+12; line(20,i,318,i); end;
i1:=20; i2:=20; for i:= 1 to 50 do begin sx[i]:=1; sy[i]:=1; end; randomize; xx:=trunc((1590-random(1490))/5); yy:=trunc((1170-random(1070))/5); bar(xx,yy,xx+5,yy+5); {knopki} i:=0; i3:=2; readkey; while i<240 do begin if keypressed then begin key:=readkey; if key=#52 then i3:=1; if key=#50 then i3:=2; if key=#54 then begin i3:=3; end; if key=#56 then begin i3:=4; end; if (key=#43) or (key=#27) then i3:=9; if key=#42 then i7:=i7+1; if key=#47 then i6:=i6+1; if key=#45 then i6:=i6-1; end;
{dvigenie} if i3=1 then i1:=i1-12; if i3=2 then i2:=i2+12; if i3=3 then i1:=i1+12; if i3=4 then i2:=i2-12; if i3=9 then goto 1;
{proverka udara}
for i:= 1 to i7 do begin if (i1=sx[i]) and (i2=sy[i]) then goto 1; end;
{zargranica} if i1+10>rx2 then i1:=rx1; if i2+10>ry2 then i2:=ry1; if i1<rx1 then i1:=rx2-10; if i2<ry1 then i2:=ry2-10;
{skorost`} if i6<>dl then begin str(sp,st1); setcolor(black); outtextxy(300,255,st1); str(i6,st1); setcolor(11); outtextxy(300,255,st1); sp:=i6; end; if i6>0 then delay(trunc(52000/i6)) else begin i6:=1; delay(trunc(52000/i6)); end; setcolor(green); {zmeya} line(i1,i2,i1+10,i2); line(i1+10,i2,i1+10,i2+10); line(i1+10,i2+10,i1,i2+10); line(i1,i2+10,i1,i2); {dlinna} if i7<>dl then begin str(dl,st1); setcolor(black); outtextxy(180,255,st1); str(i7,st1); setcolor(11); outtextxy(180,255,st1); dl:=i7; end;
{massiv zmei} i4:=i7+1; while i4>1 do begin sx[i4]:=sx[i4-1]; sy[i4]:=sy[i4-1]; i4:=i4-1; end; sx[1]:=i1; sy[1]:=i2; setcolor(black); {zatiranie zmei} line(sx[i7+1],sy[i7+1],sx[i7+1]+10,sy[i7+1]); line(sx[i7+1]+10,sy[i7+1],sx[i7+1]+10,sy[i7+1]+10); line(sx[i7+1]+10,sy[i7+1]+10,sx[i7+1],sy[i7+1]+10); line(sx[i7+1],sy[i7+1]+10,sx[i7+1],sy[i7+1]); setcolor(green);