program uptowin;
uses crt;
const dong=5; tocdo=1000;
var
memory:array[1..dong]of word;
vt:shortint;thua,Qexit:boolean;x,y,z:word;{x,y,z la bien nhap}
dem,key:byte;c:char;
{_}
function wall(a:word;b:byte):boolean;
begin
b:=16-b;
if odd(a shr (b)) then wall:=true
else wall:=false;
end;
{_}
procedure vekhung(x1,y1,x2,y2:word);
var z,a,b:word;
begin
if (x1<>x2) and (y1<>y2) then
begin
a:=wherex; b:=wherey;
if x1>x2 then
begin z:=x1; x1:=x2; x2:=z; end;
if y1>y2 then
begin z:=y1; y1:=y2; y2:=z; end;
gotoxy(x1,y1); write(#201);
if x2-x1>1 then for z:=1 to x2-x1-1 do write(#205);
gotoxy(x2,y1); write(#187);
gotoxy(x1,y2); write(#200);
if x2-x1>1 then for z:=1 to x2-x1-1 do write(#205);
gotoxy(x2,y2); write(#188);
if y2-y1>1 then for z:=1 to y2-y1-1 do begin
gotoxy(x1,z+y1); write(#186); end;
if y2-y1>1 then for z:=1 to y2-y1-1 do begin
gotoxy(x2,z+y1); write(#186); end;
end;
gotoxy(a,b);
end;
function rand:word;
var a:word;b,c:byte;
begin
b:=random(14)+1;
for c:=1 to b do
a:=a+ 1 shl (c-1);
a:=a shl random(14);
rand:=not a;
if (a=0) or (not a=0) then a:=rand;
end;
{_}
procedure run(x:boolean);
var e:byte;
{\}
procedure traiphai(var a:word);
var d:boolean;
begin
if odd(dem+e) then
begin
if a>maxint then
begin d:=true;
a:=a-maxint-1; end
else d:=false;
a:=a shl 1;
if d then a:=a+1;
if (wall(memory[1],vt)) then
vt:=vt-1;
end
else
begin
if odd(a) then
begin a:=a-1;
d:=true; end
else d:=false;
a:=a shr 1;
if d then a:=a+maxint+1;
if (wall(memory[1],vt)) then
vt:=vt+1;
end;
end;
{/}
begin
for e:=1 to dong do
if x and odd(e) then
traiphai(memory[e])
else if not x and not odd(e)then
traiphai(memory[e]);
end;
{_}
procedure draw;
var x,y:byte;
{\}
procedure help;
begin
textcolor(white);
vekhung(51,5,70,22);
vekhung(8,5,25,22);
textcolor(yellow);
gotoxy(54,8);write(' W : Up');
gotoxy(54,11);write(' A : Left');
gotoxy(54,14);write(' D : Right');
gotoxy(54,17);write(' Space : Pause');
gotoxy(54,20);write(' Esc : Exit');
vekhung(54,7,58,9);
vekhung(54,10,58,12);
vekhung(54,13,58,15);
vekhung(54,16,62,18);
vekhung(54,19,60,21);
gotoxy(9,6); write('Go up each floor');
gotoxy(9,7); write(', you will add 1');
gotoxy(9,8); write('bonus. But must');
gotoxy(9,9); write('not passing wall');
gotoxy(11,10); write('Example:');
gotoxy(11,12); write('Can''t go up:');
gotoxy(12,13);write(#219#32#219#219#32#219);
gotoxy(12,14);write(#205#205#205#205#205#205);
gotoxy(12,15);write(' ',#15,' ');
gotoxy(12,17);write('Can go up:');
gotoxy(12,18);write(#219#32#219#219#32#219);
gotoxy(12,19);write(#205#205#205#205#205#205);
gotoxy(12,20);write(' ',#15,' ');
end;
{/}
begin
clrscr;
textcolor(white);
vekhung(20,1,60,3);
gotoxy(30,2); write('*** GO UP TO WIN! ***');
vekhung(28,5,47,22);
textcolor(yellow);
gotoxy(30,7);
writeln(#205#205#205#205#205#205#205#205,
#205#205#205#205#205#205#205#205);
for x:=dong downto 1 do
begin
gotoxy(30,8+(dong-x)*2);
for y:=1 to 16 do
if memory[x] shl (y-1)>maxint-1 then write(#219)
else write(' ');
writeln;
gotoxy(30,8+(dong-x)*2+1);
writeln(#205#205#205,
#205#205#205#205#205#205#205,
#205#205#205#205#205#205);
end;
help;
gotoxy(30,20); write('Lines:',dem,' Key:',key,'/50');
gotoxy(vt+29,16); write(#15);
end;
procedure pause;
begin
clrscr;
vekhung(15,10,65,15);
gotoxy(18,13);
write(' Paused! Press any key to continue...');
readkey;
end;
procedure thuchon;
begin{+3}
c:=readkey;
case upcase(c) of{+4}
'D':if not wall(memory[1],vt+1) then vt:=vt+1;
'A':if not wall(memory[1],vt-1) then vt:=vt-1;
'W':if not wall(memory[2],vt) then begin{+5}
dem:=dem+1;
for z:= 1 to dong-1 do
memory[z]:=memory[z+1];
memory[dong]:=rand;
end;{-5}
' ': pause;
#27:begin
qexit:=true;
thua:=true;
end;
end;{-4}
if upcase(c) in['D','A','W'] then
begin key:=key+1; draw; end;
if key=50 then thua:=true;
end;{-3}
{____Main Program____}
begin
textbackground(blue); textcolor(yellow); clrscr;
randomize;
vekhung(15,10,65,15);
gotoxy(18,13);
write('Press any key to continue...');
repeat x:=random(1); until keypressed;
window(1,1,80,25);
repeat
key:=0;thua:=false;Qexit:=false;
vt:=8;x:=0;clrscr;
for x:=2 to dong do
memory[x]:=rand;
repeat{+0}
draw;
for x:=0 to 1000 do
begin{+1}
if x=0 then
run(true);
if x=500 then
run(false);
for y:=0 to tocdo do
begin{+2}
if keypressed then
thuchon;
if not (vt in[1..16]) then
begin thua:=true; break; end;
end;{-2}
end;{-1}
until thua;
gotoxy(1,4);
for x:= 1 to 80*21 do
begin write(' ');
for y:=1 to 1000 do
for z:=1 to 600 do; end;
textcolor(white);
vekhung(15,11,65,15);
gotoxy(30,11); write(' Infomation ');
textcolor(yellow);
gotoxy(19,12); write('Score: ',dem);
if not qexit then
write(' You are lost!');
gotoxy(19,13); write('Press Enter or Esc to quit!');
gotoxy(19,14); write('Press Space to replay!');
repeat c:=readkey; until c in [#27,#13,#32];
until c in [#27,#13];
end.
Trên là một chương trình game mình soạn trên Free Pascal nhưng không được. Lỗi thì không có rồi. Khi ấn Ctrl+F9 thì có dòng chữ "Press any key to continue", ấn xong thì bị thoát và có dòng chữ mới: "Program.... exited with exitcode = 201".
Ai phát hiện và tìm ra cách sửa lỗi thì báo mình nhé!!!
@ Cô hoài fake, nếu bạn đã giả mạo cô Thương Hoài rồi, thì làm ơn đừng nhắn những câu hỏi linh tinh như vậy, ảnh hưởng đến diễn đàn.
ngắn lắm bạn ạ :>
bạn dùng máy tính à
vuốt cx đến cuối trang=)))))))))
thử có công mài sát có ngày lên kim đi
mình bạn sợ là gãy kim
Bro
báo cáo đăng linh tinh giờ, ngứa tay lắm à, trò vui của bạn à, đây còn là diễn đàn à, diễn đàn để bạn đăng linh tinh thế à?
mời các bạn cút
ko giả mạo cô hoài
tớ đã cố tình viết chữ fake vào
còn non lắm chưa đủ dài đâu
khi nào mình dùng công tắ chuột mà nhích chậm thì mới làm nhé ok
yew cầu bn Hùng ko đăng kiểu này :>