Исправить код лабиринта - QBasic

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. DO
  2. K$ = INKEY$
  3. IF K$ = "K" THEN GOSUB LABIRINT
  4. LOOP
  5. LABIRINT:
  6. OPEN "WWW.BAS" FOR APPEND AS #1
  7. PRINT #1, "A = INT(RND(1)*2)"
  8. PRINT #1, "IF A = 1 THEN LINE (10,10)-(50,10),1"
  9. CLOSE #1
  10. PRINT "WOD"
  11. RETURN
  12. 'WWW.BAS
  13. 'SCREEN 13
  14. 'RANDOMIZE TIMER

Решение задачи: «Исправить код лабиринта»

textual
Листинг программы
  1. SCREEN 13
  2. RANDOMIZE TIMER
  3. LINE (5, 5)-(225, 145), 1, B
  4. A = INT(RND(1) * 2)
  5. IF A = 1 THEN LINE (25, 5)-(25, 25), 1
  6. A = INT(RND(1) * 2)
  7. IF A = 1 THEN LINE (45, 5)-(45, 25), 1
  8. A = INT(RND(1) * 2)
  9. IF A = 1 THEN LINE (65, 5)-(65, 25), 1
  10. A = INT(RND(1) * 2)
  11. IF A = 1 THEN LINE (85, 5)-(85, 25), 1
  12. A = INT(RND(1) * 2)
  13. IF A = 1 THEN LINE (105, 5)-(105, 25), 1
  14. A = INT(RND(1) * 2)
  15. IF A = 1 THEN LINE (125, 5)-(125, 25), 1
  16. A = INT(RND(1) * 2)
  17. IF A = 1 THEN LINE (145, 5)-(145, 25), 1
  18. A = INT(RND(1) * 2)
  19. IF A = 1 THEN LINE (165, 5)-(165, 25), 1
  20. A = INT(RND(1) * 2)
  21. IF A = 1 THEN LINE (185, 5)-(185, 25), 1
  22. A = INT(RND(1) * 2)
  23. IF A = 1 THEN LINE (205, 5)-(205, 25), 1
  24. A = INT(RND(1) * 2)
  25. IF A = 1 THEN LINE (225, 5)-(225, 25), 1
  26. A = INT(RND(1) * 2)
  27. IF A = 1 THEN LINE (5, 25)-(25, 25), 1
  28. A = INT(RND(1) * 2)
  29. IF A = 1 THEN LINE (25, 25)-(45, 25), 1
  30. A = INT(RND(1) * 2)
  31. IF A = 1 THEN LINE (45, 25)-(65, 25), 1
  32. A = INT(RND(1) * 2)
  33. IF A = 1 THEN LINE (65, 25)-(85, 25), 1
  34. A = INT(RND(1) * 2)
  35. IF A = 1 THEN LINE (85, 25)-(105, 25), 1
  36. A = INT(RND(1) * 2)
  37. IF A = 1 THEN LINE (105, 25)-(125, 25), 1
  38. A = INT(RND(1) * 2)
  39. IF A = 1 THEN LINE (125, 25)-(145, 25), 1
  40. A = INT(RND(1) * 2)
  41. IF A = 1 THEN LINE (145, 25)-(165, 25), 1
  42. A = INT(RND(1) * 2)
  43. IF A = 1 THEN LINE (165, 25)-(185, 25), 1
  44. A = INT(RND(1) * 2)
  45. IF A = 1 THEN LINE (185, 25)-(205, 25), 1
  46. A = INT(RND(1) * 2)
  47. IF A = 1 THEN LINE (205, 25)-(225, 25), 1
  48. A = INT(RND(1) * 2)
  49. IF A = 1 THEN LINE (25, 25)-(25, 45), 1
  50. A = INT(RND(1) * 2)
  51. IF A = 1 THEN LINE (45, 25)-(45, 45), 1
  52. A = INT(RND(1) * 2)
  53. IF A = 1 THEN LINE (65, 25)-(65, 45), 1
  54. A = INT(RND(1) * 2)
  55. IF A = 1 THEN LINE (85, 25)-(85, 45), 1
  56. A = INT(RND(1) * 2)
  57. IF A = 1 THEN LINE (105, 25)-(105, 45), 1
  58. A = INT(RND(1) * 2)
  59. IF A = 1 THEN LINE (125, 25)-(125, 45), 1
  60. A = INT(RND(1) * 2)
  61. IF A = 1 THEN LINE (145, 25)-(145, 45), 1
  62. A = INT(RND(1) * 2)
  63. IF A = 1 THEN LINE (165, 25)-(165, 45), 1
  64. A = INT(RND(1) * 2)
  65. IF A = 1 THEN LINE (185, 25)-(185, 45), 1
  66. A = INT(RND(1) * 2)
  67. IF A = 1 THEN LINE (205, 25)-(205, 45), 1
  68. A = INT(RND(1) * 2)
  69. IF A = 1 THEN LINE (5, 45)-(25, 45), 1
  70. A = INT(RND(1) * 2)
  71. IF A = 1 THEN LINE (25, 45)-(45, 45), 1
  72. A = INT(RND(1) * 2)
  73. IF A = 1 THEN LINE (45, 45)-(65, 45), 1
  74. A = INT(RND(1) * 2)
  75. IF A = 1 THEN LINE (65, 45)-(85, 45), 1
  76. A = INT(RND(1) * 2)
  77. IF A = 1 THEN LINE (85, 45)-(105, 45), 1
  78. A = INT(RND(1) * 2)
  79. IF A = 1 THEN LINE (105, 45)-(125, 45), 1
  80. A = INT(RND(1) * 2)
  81. IF A = 1 THEN LINE (125, 45)-(145, 45), 1
  82. A = INT(RND(1) * 2)
  83. IF A = 1 THEN LINE (145, 45)-(165, 45), 1
  84. A = INT(RND(1) * 2)
  85. IF A = 1 THEN LINE (165, 45)-(185, 45), 1
  86. A = INT(RND(1) * 2)
  87. IF A = 1 THEN LINE (185, 45)-(205, 45), 1
  88. A = INT(RND(1) * 2)
  89. IF A = 1 THEN LINE (205, 45)-(225, 45), 1
  90. A = INT(RND(1) * 2)
  91. IF A = 1 THEN LINE (25, 45)-(25, 65), 1
  92. A = INT(RND(1) * 2)
  93. IF A = 1 THEN LINE (45, 45)-(45, 65), 1
  94. A = INT(RND(1) * 2)
  95. IF A = 1 THEN LINE (65, 45)-(65, 65), 1
  96. A = INT(RND(1) * 2)
  97. IF A = 1 THEN LINE (85, 45)-(85, 65), 1
  98. A = INT(RND(1) * 2)
  99. IF A = 1 THEN LINE (105, 45)-(105, 65), 1
  100. A = INT(RND(1) * 2)
  101. IF A = 1 THEN LINE (125, 45)-(125, 65), 1
  102. A = INT(RND(1) * 2)
  103. IF A = 1 THEN LINE (145, 45)-(145, 65), 1
  104. A = INT(RND(1) * 2)
  105. IF A = 1 THEN LINE (165, 45)-(165, 65), 1
  106. A = INT(RND(1) * 2)
  107. IF A = 1 THEN LINE (185, 45)-(185, 65), 1
  108. A = INT(RND(1) * 2)
  109. IF A = 1 THEN LINE (205, 45)-(205, 65), 1
  110. A = INT(RND(1) * 2)
  111. IF A = 1 THEN LINE (5, 65)-(25, 65), 1
  112. A = INT(RND(1) * 2)
  113. IF A = 1 THEN LINE (25, 65)-(45, 65), 1
  114. A = INT(RND(1) * 2)
  115. IF A = 1 THEN LINE (45, 65)-(65, 65), 1
  116. A = INT(RND(1) * 2)
  117. IF A = 1 THEN LINE (65, 65)-(85, 65), 1
  118. A = INT(RND(1) * 2)
  119. IF A = 1 THEN LINE (85, 65)-(105, 65), 1
  120. A = INT(RND(1) * 2)
  121. IF A = 1 THEN LINE (105, 65)-(125, 65), 1
  122. A = INT(RND(1) * 2)
  123. IF A = 1 THEN LINE (125, 65)-(145, 65), 1
  124. A = INT(RND(1) * 2)
  125. IF A = 1 THEN LINE (145, 65)-(165, 65), 1
  126. A = INT(RND(1) * 2)
  127. IF A = 1 THEN LINE (165, 65)-(185, 65), 1
  128. A = INT(RND(1) * 2)
  129. IF A = 1 THEN LINE (185, 65)-(205, 65), 1
  130. A = INT(RND(1) * 2)
  131. IF A = 1 THEN LINE (205, 65)-(225, 65), 1
  132. A = INT(RND(1) * 2)
  133. IF A = 1 THEN LINE (25, 65)-(25, 85), 1
  134. A = INT(RND(1) * 2)
  135. IF A = 1 THEN LINE (45, 65)-(45, 85), 1
  136. A = INT(RND(1) * 2)
  137. IF A = 1 THEN LINE (65, 65)-(65, 85), 1
  138. A = INT(RND(1) * 2)
  139. IF A = 1 THEN LINE (85, 65)-(85, 85), 1
  140. A = INT(RND(1) * 2)
  141. IF A = 1 THEN LINE (105, 65)-(105, 85), 1
  142. A = INT(RND(1) * 2)
  143. IF A = 1 THEN LINE (125, 65)-(125, 85), 1
  144. A = INT(RND(1) * 2)
  145. IF A = 1 THEN LINE (145, 65)-(145, 85), 1
  146. A = INT(RND(1) * 2)
  147. IF A = 1 THEN LINE (165, 65)-(165, 85), 1
  148. A = INT(RND(1) * 2)
  149. IF A = 1 THEN LINE (185, 65)-(185, 85), 1
  150. A = INT(RND(1) * 2)
  151. IF A = 1 THEN LINE (205, 65)-(205, 85), 1
  152. A = INT(RND(1) * 2)
  153. IF A = 1 THEN LINE (5, 85)-(25, 85), 1
  154. A = INT(RND(1) * 2)
  155. IF A = 1 THEN LINE (25, 85)-(45, 85), 1
  156. A = INT(RND(1) * 2)
  157. IF A = 1 THEN LINE (45, 85)-(65, 85), 1
  158. A = INT(RND(1) * 2)
  159. IF A = 1 THEN LINE (65, 85)-(85, 85), 1
  160. A = INT(RND(1) * 2)
  161. IF A = 1 THEN LINE (85, 85)-(105, 85), 1
  162. A = INT(RND(1) * 2)
  163. IF A = 1 THEN LINE (105, 85)-(125, 85), 1
  164. A = INT(RND(1) * 2)
  165. IF A = 1 THEN LINE (125, 85)-(145, 85), 1
  166. A = INT(RND(1) * 2)
  167. IF A = 1 THEN LINE (145, 85)-(165, 85), 1
  168. A = INT(RND(1) * 2)
  169. IF A = 1 THEN LINE (165, 85)-(185, 85), 1
  170. A = INT(RND(1) * 2)
  171. IF A = 1 THEN LINE (185, 85)-(205, 85), 1
  172. A = INT(RND(1) * 2)
  173. IF A = 1 THEN LINE (205, 85)-(225, 85), 1
  174. A = INT(RND(1) * 2)
  175. IF A = 1 THEN LINE (25, 85)-(25, 105), 1
  176. A = INT(RND(1) * 2)
  177. IF A = 1 THEN LINE (45, 85)-(45, 105), 1
  178. A = INT(RND(1) * 2)
  179. IF A = 1 THEN LINE (65, 85)-(65, 105), 1
  180. A = INT(RND(1) * 2)
  181. IF A = 1 THEN LINE (85, 85)-(85, 105), 1
  182. A = INT(RND(1) * 2)
  183. IF A = 1 THEN LINE (105, 85)-(105, 105), 1
  184. A = INT(RND(1) * 2)
  185. IF A = 1 THEN LINE (125, 85)-(125, 105), 1
  186. A = INT(RND(1) * 2)
  187. IF A = 1 THEN LINE (145, 85)-(145, 105), 1
  188. A = INT(RND(1) * 2)
  189. IF A = 1 THEN LINE (165, 85)-(165, 105), 1
  190. A = INT(RND(1) * 2)
  191. IF A = 1 THEN LINE (185, 85)-(185, 105), 1
  192. A = INT(RND(1) * 2)
  193. IF A = 1 THEN LINE (205, 85)-(205, 105), 1
  194. A = INT(RND(1) * 2)
  195. IF A = 1 THEN LINE (5, 105)-(25, 105), 1
  196. A = INT(RND(1) * 2)
  197. IF A = 1 THEN LINE (25, 105)-(45, 105), 1
  198. A = INT(RND(1) * 2)
  199. IF A = 1 THEN LINE (45, 105)-(65, 105), 1
  200. A = INT(RND(1) * 2)
  201. IF A = 1 THEN LINE (65, 105)-(85, 105), 1
  202. A = INT(RND(1) * 2)
  203. IF A = 1 THEN LINE (85, 105)-(105, 105), 1
  204. A = INT(RND(1) * 2)
  205. IF A = 1 THEN LINE (105, 105)-(125, 105), 1
  206. A = INT(RND(1) * 2)
  207. IF A = 1 THEN LINE (125, 105)-(145, 105), 1
  208. A = INT(RND(1) * 2)
  209. IF A = 1 THEN LINE (145, 105)-(165, 105), 1
  210. A = INT(RND(1) * 2)
  211. IF A = 1 THEN LINE (165, 105)-(185, 105), 1
  212. A = INT(RND(1) * 2)
  213. IF A = 1 THEN LINE (185, 105)-(205, 105), 1
  214. A = INT(RND(1) * 2)
  215. IF A = 1 THEN LINE (205, 105)-(225, 105), 1
  216. A = INT(RND(1) * 2)
  217. IF A = 1 THEN LINE (25, 105)-(25, 125), 1
  218. A = INT(RND(1) * 2)
  219. IF A = 1 THEN LINE (45, 105)-(45, 125), 1
  220. A = INT(RND(1) * 2)
  221. IF A = 1 THEN LINE (65, 105)-(65, 125), 1
  222. A = INT(RND(1) * 2)
  223. IF A = 1 THEN LINE (85, 105)-(85, 125), 1
  224. A = INT(RND(1) * 2)
  225. IF A = 1 THEN LINE (105, 105)-(105, 125), 1
  226. A = INT(RND(1) * 2)
  227. IF A = 1 THEN LINE (125, 105)-(125, 125), 1
  228. A = INT(RND(1) * 2)
  229. IF A = 1 THEN LINE (145, 105)-(145, 125), 1
  230. A = INT(RND(1) * 2)
  231. IF A = 1 THEN LINE (165, 105)-(165, 125), 1
  232. A = INT(RND(1) * 2)
  233. IF A = 1 THEN LINE (185, 105)-(185, 125), 1
  234. A = INT(RND(1) * 2)
  235. IF A = 1 THEN LINE (205, 105)-(205, 125), 1
  236. A = INT(RND(1) * 2)
  237. IF A = 1 THEN LINE (5, 125)-(25, 125), 1
  238. A = INT(RND(1) * 2)
  239. IF A = 1 THEN LINE (25, 125)-(45, 125), 1
  240. A = INT(RND(1) * 2)
  241. IF A = 1 THEN LINE (45, 125)-(65, 125), 1
  242. A = INT(RND(1) * 2)
  243. IF A = 1 THEN LINE (65, 125)-(85, 125), 1
  244. A = INT(RND(1) * 2)
  245. IF A = 1 THEN LINE (85, 125)-(105, 125), 1
  246. A = INT(RND(1) * 2)
  247. IF A = 1 THEN LINE (105, 125)-(125, 125), 1
  248. A = INT(RND(1) * 2)
  249. IF A = 1 THEN LINE (125, 125)-(145, 125), 1
  250. A = INT(RND(1) * 2)
  251. IF A = 1 THEN LINE (145, 125)-(165, 125), 1
  252. A = INT(RND(1) * 2)
  253. IF A = 1 THEN LINE (165, 125)-(185, 125), 1
  254. A = INT(RND(1) * 2)
  255. IF A = 1 THEN LINE (185, 125)-(205, 125), 1
  256. A = INT(RND(1) * 2)
  257. IF A = 1 THEN LINE (205, 125)-(225, 125), 1
  258. A = INT(RND(1) * 2)
  259. IF A = 1 THEN LINE (25, 125)-(25, 145), 1
  260. A = INT(RND(1) * 2)
  261. IF A = 1 THEN LINE (45, 125)-(45, 145), 1
  262. A = INT(RND(1) * 2)
  263. IF A = 1 THEN LINE (65, 125)-(65, 145), 1
  264. A = INT(RND(1) * 2)
  265. IF A = 1 THEN LINE (85, 125)-(85, 145), 1
  266. A = INT(RND(1) * 2)
  267. IF A = 1 THEN LINE (105, 125)-(105, 145), 1
  268. A = INT(RND(1) * 2)
  269. IF A = 1 THEN LINE (125, 125)-(125, 145), 1
  270. A = INT(RND(1) * 2)
  271. IF A = 1 THEN LINE (145, 125)-(145, 145), 1
  272. A = INT(RND(1) * 2)
  273. IF A = 1 THEN LINE (165, 125)-(165, 145), 1
  274. A = INT(RND(1) * 2)
  275. IF A = 1 THEN LINE (185, 125)-(185, 145), 1
  276. A = INT(RND(1) * 2)
  277. IF A = 1 THEN LINE (205, 125)-(205, 145), 1

Объяснение кода листинга программы

Данный код на языке QBasic представляет собой лабиринт, в котором случайно генерируются стены. В начале каждой строки кода задается точка начала лабиринта (координаты (5, 5)), а затем с помощью функции RND() генерируется случайное число от 1 до 25, которое затем используется для определения следующей точки в лабиринте. В каждой строке кода после генерации случайного числа происходит проверка: если число равно 1, то с помощью функции LINE() рисуется линия от текущей точки до следующей точки в лабиринте. Цель игры - провести линию от начала лабиринта до его конца (точка с координатами (225, 225)). Для этого необходимо корректно пройти через все точки лабиринта и нарисовать линии между ними. Код написан таким образом, что он будет работать до тех пор, пока не будет прерван пользователем или не будет достигнут конец лабиринта.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут