LINE.PAS 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. Uses CRT,Graph;
  2. Var
  3. C :char;
  4. W : word;
  5. l,r,u,d : boolean;
  6. a : array [1..79, 1..24] of boolean;
  7. {-----------------======================-----------------}
  8. Procedure Ext;
  9. var Gd, Gm :integer;
  10. begin
  11. Sound(100);
  12. Delay(2000);
  13. Nosound;
  14. Gd := Detect;
  15. InitGraph(Gd, Gm, '');
  16. if GraphResult <> grOk then Halt(1);
  17. ClearDevice;
  18. SetColor(Magenta);
  19. SetTextStyle(TriplexFont, HorizDir,10);
  20. OutTextXY(150,100,'Game');
  21. OutTextXY(170,200,'OveR');
  22. ReadKey;
  23. CloseGraph;
  24. Halt
  25. end; {Ext}
  26. {-------------------------------------------------------}
  27. Procedure StartUp;
  28. var
  29. Gd, Gm : Integer;
  30. begin
  31. Gd := Detect;
  32. InitGraph(Gd, Gm, '');
  33. if GraphResult <> grOk then Halt(1);
  34. ClearDevice;
  35. SetColor(Blue);
  36. SetTextStyle(3, HorizDir,8);
  37. OutTextXY(80,100,'Game Piton');
  38. SetColor(White);
  39. SetTextStyle(1,HorizDir,2);
  40. OutTextXY(200,450,'///Press any key\\\');
  41. ReadKey;
  42. CloseGraph
  43. end; {StartUp}
  44. {------------------==================-------------------}
  45. Procedure Game;
  46. begin
  47. l := false;
  48. r := false;
  49. u := false;
  50. d := false;
  51. clrscr;
  52. GotoXY(40,13);
  53. repeat
  54. c := readkey;
  55. if c = #0 then
  56. Begin
  57. w := ord(readkey);
  58. case w of
  59. 77 : begin
  60. if WhereX > 78 then ext;
  61. if u then
  62. begin
  63. GotoXY(WhereX-1,WhereY);
  64. Write('É');
  65. a[WhereX-1,WhereY] := true;
  66. u := false;
  67. end;
  68. if d then
  69. begin
  70. GotoXY(WhereX-1,WhereY);
  71. Write('È');
  72. a[WhereX-1,WhereY] := true;
  73. d := false;
  74. end;
  75. if a[WhereX,WhereY] then ext;
  76. Write('Í');
  77. a[WhereX-1,WhereY] := true;
  78. l := false;
  79. r := true;
  80. end;
  81. 75 : Begin
  82. if WhereX > 2 then
  83. begin
  84. if u then
  85. begin
  86. GotoXY(WhereX-1,WhereY);
  87. Write('»');
  88. a[WhereX-1,WhereY] := true;
  89. u := false
  90. end;
  91. if d then
  92. begin
  93. GotoXY(WhereX-1,WhereY);
  94. Write('¼');
  95. a[WhereX-1,WhereY] := true;
  96. d := false
  97. end;
  98. if a[WhereX-2,WhereY] then ext;
  99. GotoXY(WhereX - 2, WhereY);
  100. Write('Í');
  101. a[WhereX-1,WhereY] := true;
  102. r := false;
  103. l := true
  104. end
  105. else ext;
  106. end;
  107. 72 : begin
  108. if WhereY > 2 then
  109. begin
  110. if l then
  111. begin
  112. GotoXY(WhereX-1,WhereY);
  113. Write('È');
  114. a[WhereX-1,WhereY] := true;
  115. l := false
  116. end;
  117. if r then
  118. begin
  119. GotoXY(WhereX-1,WhereY);
  120. Write('¼');
  121. a[WhereX-1,WhereY] := true;
  122. r := false
  123. end;
  124. if a[WhereX-1,WhereY-1] then ext;
  125. GotoXY(WhereX - 1, WhereY - 1);
  126. Write('º');
  127. a[WhereX-1,WhereY] := true;
  128. d := false;
  129. u := true
  130. end
  131. else ext;
  132. end;
  133. 80 : begin
  134. if WhereY < 24 then
  135. begin
  136. if l then
  137. begin
  138. GotoXY(WhereX-1,WhereY);
  139. Write('É');
  140. a[WhereX-1,WhereY] := true;
  141. l := false
  142. end;
  143. if r then
  144. begin
  145. GotoXY(WhereX-1,WhereY);
  146. Write('»');
  147. a[WhereX-1,WhereY] := true;
  148. r := false
  149. end;
  150. if a[WhereX-1,WhereY+1] then ext;
  151. GotoXY(WhereX-1,WhereY + 1);
  152. Write('º');
  153. a[WhereX-1,WhereY] := true;
  154. u := false;
  155. d := true;
  156. end
  157. else ext;
  158. end;
  159. Else ClrScr;
  160. end;
  161. end;
  162. Until c = #27;
  163. ext;
  164. end;{game}
  165. {----------------------------------------------------------------------}
  166. Begin
  167. StartUp;
  168. Game
  169. end.