Ôn tập chương Cấu trúc và bảo mật các hệ cơ sở dữ liệu

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Hoàng Quốc Huy

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ác câu hỏi tương tự
Nụ Lữ
Xem chi tiết
Thanh Dung
Xem chi tiết
Amanda Elizabeth
Xem chi tiết
hoàng hải quỳnh
Xem chi tiết
Huy Hoàng
Xem chi tiết
Anh Nguyen
Xem chi tiết
Huy Hoàng
Xem chi tiết
Lê Quang Kiệt
Xem chi tiết
Nguyễn
Xem chi tiết