program mygame;
uses ptccrt,ptcgraph,keyboard;
type players=record
xplace,yplace: integer;
itscolor: byte;
end;
var gd,gm: integer;
button: tkeyevent;
i: byte;
player: array[0..1] of players;
BEGIN
initkeyboard;
detectgraph(gd,gm);
initgraph(gd,gm,'');
if GraphResult<>grok then
halt;
SetColor(White);
Bar(0,0,getmaxx,getmaxy);
player[0].xplace:=5;
player[0].yplace:=5;
player[0].itscolor:=Red;
player[1].xplace:=getmaxx-5;
player[1].yplace:=5;
player[1].itscolor:=Blue;
for i:=0 to 1 do begin
putpixel(player[i].xplace,player[i].yplace,player[i].itscolor);
writeln('pixel put at (',player[i].xplace,',',player[i].yplace,') with color ',player[i].itscolor);
end;
repeat
button:=getkeyevent;
button:=translatekeyevent(button);
case GetKeyEventFlags(button) of
kbASCII: case GetKeyEventChar(button) of
'w','W': if player[0].yplace-1>0 then player[0].yplace:=player[0].yplace-1; {w or W}
's','S': if player[0].yplace+1<getmaxy then player[0].yplace:=player[0].yplace+1; {s or S}
'a','A': if player[0].xplace-1>0 then player[0].xplace:=player[0].xplace-1; {a or A}
'd','D': if player[0].xplace-1<getmaxx then player[0].xplace:=player[0].xplace+1; {d or D}
end;
kbFnKey: case GetKeyEventCode(button) of
kbdLeft: if player[1].xplace-1>0 then dec(player[1].xplace); {left arrow}
kbdRight: if player[1].xplace+1<getmaxx then inc(player[1].xplace); {right arrow}
kbdUp: if player[1].yplace-1>0 then dec(player[1].yplace); {up arrow}
KbdDown: if player[1].yplace+1<getmaxy then inc(player[1].yplace); {down arrow}
end;
end;
for i:=0 to 1 do begin
putpixel(player[i].xplace,player[i].yplace,player[i].itscolor);
writeln('pixel put at (',player[i].xplace,',',player[i].yplace,') with color ',player[i].itscolor);
end;
delay(10);
until getkeyeventchar(button)='q';
closegraph;
donekeyboard;
END.