Nơi trao đổi thông tin Văn Lang
Chào mừng bạn đến với nơi trao đổi thông tin của chúng tôi !
Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây !
Thân ái !
Nơi trao đổi thông tin Văn Lang
Chào mừng bạn đến với nơi trao đổi thông tin của chúng tôi !
Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây !
Thân ái !
Nơi trao đổi thông tin Văn Lang
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
Nơi trao đổi thông tin Văn Lang

Nơi trao đổi thông tin, tăng cường hợp tác, giải đáp những vướng mắc khi học lập trình Pascal
 
Trang ChínhTìm kiếmLatest imagesĐăng kýĐăng Nhập

 

 Game uptowin.pas

Go down 
Tác giảThông điệp
Admin
Admin
Admin


Posts : 121
Danh tiếng : 6
Join date : 10/11/2014
Age : 22

Game uptowin.pas Empty
Bài gửiTiêu đề: Game uptowin.pas   Game uptowin.pas Icon_minitime16/1/2015, 05:50

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,Cool;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,Cool; 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.
Về Đầu Trang Go down
https://forumpascalvanlang.forumvi.com
 
Game uptowin.pas
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Game Can Chi
» Game Egg.pas
» Game rút cờ
» Game oẳn tù tì
» Game Xep_hinh.pas

Permissions in this forum:Bạn không có quyền trả lời bài viết
Nơi trao đổi thông tin Văn Lang  :: Các chương trình lớn viết bằng Pascal-
Chuyển đến