Dobrý den,
na střední škole mám prvním rokem programování v Pascalu. Jelikož mě programování zaujalo a úkoly od učitelů pro mě zatím nebyli náročné, rozhodl jsem se zkusit napsat klasickou hru had. Nedíval jsem se na žádný kód, chtěl jsem, aby řešení bylo mé, třebaže nebude nejefektivnější.
Nicméně jsem nejspíše nepochopil funkci keypressed, kterou jsem si našel na netu. Jestli správně chápu, pozná, jestli jsem zmáčkl klávesu. (laicky řečeno) Mám tedy podmínky:
repeat begin
delay(1000);
if Keypressed then begin
if ord(readkey)=(87 or 119) then begin
gotoxy(x, y-1);
...
end;
if ord(readkey)=(83 or 115) then begin
...
end;
end;
atd...
Problémem je, že program čeká, než bude stisknuta klávesa, přitom by podle zapsání neměl. Zkoušel jsem procedurou vyprázdnit poslední buffer, na programu se však nic nezměnilo:
procedure ClearBuffer;
var c: Char;
begin
while (keypressed) do
c := ReadKey;
end;
Program je zatím v rané fázi, má okolo 150 řádků. Nemá však cenu pokračovat, když mi nefunguje základní mechanismus. Chtěl bych tedy pomoci s řešením načítání kláves, ne řešením celého hada.