Demo game PASCAL with gravity

Bạn có thích xài Pascal không?


  • Số người tham gia
    1

tanzeal2000gts

Thành viên
Tham gia
8/12/2013
Bài viết
2
Đây là ý tưởng game có trọng lực bằng Pascal, các bạn cho ý kiến nha. Vì mình làm random nên có một số map sẽ không thể thắng được, các bạn nhớ nhìn trước rồi hãy chơi kẻo tốn mana :)

Direct link

Còn đây là code cho các bạn ngâm cứu (mình viết hơi sát, hi vọng các bạn đọc được)
Mã:
USES crt;
VAR x,y,i,k,flr_x,flr_y,can_jump:BYTE;
 a:ARRAY[1..80,1..25] OF STRING;
 mov:CHAR;
BEGIN
 REPEAT
 textcolor(10); writeln; writeln('THIS IS AN EXAMPLE OF THE GAME WITH GRAVITY');
 textcolor(13); write('Press ',#27,' and ',#26,' to move '); textcolor(11); write(#15);
 textcolor(13); write(', X to jump (Press, do not hold it). Reach ');
 textcolor(14); write(#30); textcolor(13); writeln(' to win.');
 write('If you touch '); textcolor(12); write(#173); textcolor(13); write(', you will lose.');
 textcolor(11); x:=10; y:=6; a[x,y]:=#15; gotoxy(x,y); write(#15); textcolor(7);
 REPEAT
 flr_x:=random(80)+1; flr_y:=random(18)+6; i:=i+1; a[flr_x,flr_y]:=#219; gotoxy(flr_x,flr_y); write(#219);
 UNTIL i=100;
 FOR i:=1 TO 80 DO BEGIN a[i,5]:=#219; gotoxy(i,5); write(#219); END;
 a[80,21]:=#30; gotoxy(80,21); textcolor(14); write(#30);
 textcolor(12); FOR i:=1 TO 80 DO BEGIN gotoxy(i,24); write(#173); END;
 REPEAT
 IF keypressed THEN mov:=readkey; a[x,y]:=' '; gotoxy(x,y); write(' ');
 IF mov='x' THEN IF a[x,y+1]=#219 THEN can_jump:=6;
 IF can_jump>0 THEN BEGIN
 can_jump:=can_jump-1; IF a[x,y-1]<>#219 THEN y:=y-1 ELSE can_jump:=0;
 END ELSE IF a[x,y+1]<>#219 THEN y:=y+1;
 IF mov=#77 THEN IF a[x+1,y]<>#219 THEN x:=x+1;
 IF mov=#75 THEN IF a[x-1,y]<>#219 THEN x:=x-1;
 a[x,y]:=#15; gotoxy(x,y); textcolor(11); write(#15); delay(80); mov:=' ';
 UNTIL (a[x+1,y]=#30) OR (a[x,y+1]=#30) OR (a[x-1,y]=#30) OR (a[x,y-1]=#30) OR (y=23);
 window(30,10,50,20);
 IF y<>23 THEN BEGIN textcolor(10); writeln('You WIN!'); END
 ELSE BEGIN textcolor(15); writeln('You LOSE!'); END;
 writeln; textcolor(13); write('Again? (Y/N)');
 REPEAT mov:=readkey; UNTIL (upcase(mov)='Y') OR (upcase(mov)='N');
 IF upcase(mov)='Y' THEN BEGIN
 window(1,1,80,25); clrscr; FOR i:=1 TO 80 DO FOR k:=1 TO 25 DO a[i,k]:=' '; i:=0;
 END;
 UNTIL upcase(mov)='N'
END.
 
×
Quay lại
Top