codingpirates-maze 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. codingpirates_maze-0.1.0.dist-info/METADATA +105 -0
  2. codingpirates_maze-0.1.0.dist-info/RECORD +539 -0
  3. codingpirates_maze-0.1.0.dist-info/WHEEL +4 -0
  4. codingpirates_maze-0.1.0.dist-info/licenses/LICENSE +201 -0
  5. importer/code_blocks.py +339 -0
  6. importer/convert_level.py +150 -0
  7. importer/create_course.py +278 -0
  8. importer/lesson.md.j2 +3 -0
  9. importer/maze.py.j2 +20 -0
  10. importer/test.py +24 -0
  11. importer/test_all.py +24 -0
  12. maze/__init__.py +9 -0
  13. maze/bee.py +184 -0
  14. maze/beeshape.py +115 -0
  15. maze/birds.py +69 -0
  16. maze/collector.py +106 -0
  17. maze/farmer.py +95 -0
  18. maze/harvester.py +141 -0
  19. maze/images/bee/background.png +0 -0
  20. maze/images/bee/cloud.gif +0 -0
  21. maze/images/bee/honeycomb.gif +0 -0
  22. maze/images/bee/path.gif +0 -0
  23. maze/images/bee/purple_flower.gif +0 -0
  24. maze/images/bee/red_flower.gif +0 -0
  25. maze/images/birds/.gitignore +2 -0
  26. maze/images/birds/background.png +0 -0
  27. maze/images/birds/monster.gif +0 -0
  28. maze/images/birds/path.gif +0 -0
  29. maze/images/birds/tnt.gif +0 -0
  30. maze/images/birds/wall_1.gif +0 -0
  31. maze/images/birds/wall_2.gif +0 -0
  32. maze/images/birds/wall_3.gif +0 -0
  33. maze/images/birds/wall_4.gif +0 -0
  34. maze/images/birds/wall_5.gif +0 -0
  35. maze/images/collector/.gitignore +1 -0
  36. maze/images/collector/crystal.gif +0 -0
  37. maze/images/collector/floor_1.gif +0 -0
  38. maze/images/collector/floor_2.gif +0 -0
  39. maze/images/collector/floor_3.gif +0 -0
  40. maze/images/collector/floor_4.gif +0 -0
  41. maze/images/collector/wall_1.gif +0 -0
  42. maze/images/collector/wall_2.gif +0 -0
  43. maze/images/farmer/background.png +0 -0
  44. maze/images/farmer/corn.gif +0 -0
  45. maze/images/farmer/hole.gif +0 -0
  46. maze/images/farmer/lettuce.gif +0 -0
  47. maze/images/farmer/path.gif +0 -0
  48. maze/images/farmer/pile.gif +0 -0
  49. maze/images/farmer/pumpkin.gif +0 -0
  50. maze/images/farmer/sprout.gif +0 -0
  51. maze/images/pvz/background.gif +0 -0
  52. maze/images/pvz/flower.gif +0 -0
  53. maze/images/pvz/obstacle.gif +0 -0
  54. maze/images/pvz/path.gif +0 -0
  55. maze/images/pvz/pumpkin.gif +0 -0
  56. maze/levels/CourseD_2022LessonExtra14a_2023.json +46 -0
  57. maze/levels/CourseD_2022LessonExtra14a_2024.json +46 -0
  58. maze/levels/CourseD_2022LessonExtra14a_2025.json +46 -0
  59. maze/levels/CourseD_2022LessonExtra15a_2023.json +46 -0
  60. maze/levels/CourseD_2022LessonExtra15a_2024.json +46 -0
  61. maze/levels/CourseD_2022LessonExtra15a_2025.json +46 -0
  62. maze/levels/CourseD_2022LessonExtra16a_2023.json +46 -0
  63. maze/levels/CourseD_2022LessonExtra16a_2024.json +46 -0
  64. maze/levels/CourseD_2022LessonExtra16a_2025.json +46 -0
  65. maze/levels/CourseD_2022_LessonExtra14b_2023.json +47 -0
  66. maze/levels/CourseD_2022_LessonExtra14b_2024.json +47 -0
  67. maze/levels/CourseD_2022_LessonExtra14b_2025.json +47 -0
  68. maze/levels/CourseD_2022_LessonExtra15b_2023.json +47 -0
  69. maze/levels/CourseD_2022_LessonExtra15b_2024.json +47 -0
  70. maze/levels/CourseD_2022_LessonExtra15b_2025.json +47 -0
  71. maze/levels/CourseD_2022_LessonExtra16b_2023.json +47 -0
  72. maze/levels/CourseD_2022_LessonExtra16b_2024.json +47 -0
  73. maze/levels/CourseD_2022_LessonExtra16b_2025.json +47 -0
  74. maze/levels/courseA_harvester_loops10_2024.json +51 -0
  75. maze/levels/courseA_harvester_loops11_2024.json +51 -0
  76. maze/levels/courseA_harvester_loops1_2024.json +50 -0
  77. maze/levels/courseA_harvester_loops2_2024.json +54 -0
  78. maze/levels/courseA_harvester_loops3_2024.json +57 -0
  79. maze/levels/courseA_harvester_loops4_2024.json +52 -0
  80. maze/levels/courseA_harvester_loops5_2024.json +53 -0
  81. maze/levels/courseA_harvester_loops5a_2024.json +53 -0
  82. maze/levels/courseA_harvester_loops5b_2024.json +52 -0
  83. maze/levels/courseA_harvester_loops6_2024.json +55 -0
  84. maze/levels/courseA_harvester_loops7_2024.json +53 -0
  85. maze/levels/courseA_harvester_loops9_2024.json +51 -0
  86. maze/levels/courseA_harvester_seq10_2024.json +50 -0
  87. maze/levels/courseA_harvester_seq11_2024.json +50 -0
  88. maze/levels/courseA_harvester_seq12_2024.json +50 -0
  89. maze/levels/courseA_harvester_seq13_2024.json +50 -0
  90. maze/levels/courseA_harvester_seq1_2024.json +49 -0
  91. maze/levels/courseA_harvester_seq2_2024.json +54 -0
  92. maze/levels/courseA_harvester_seq3_2024.json +54 -0
  93. maze/levels/courseA_harvester_seq4_2024.json +51 -0
  94. maze/levels/courseA_harvester_seq5_2024.json +51 -0
  95. maze/levels/courseA_harvester_seq6_2024.json +50 -0
  96. maze/levels/courseA_harvester_seq7_2024.json +51 -0
  97. maze/levels/courseA_harvester_seq8_2024.json +51 -0
  98. maze/levels/courseA_harvester_seq9_2024.json +51 -0
  99. maze/levels/courseA_maze_ramp2_2024.json +53 -0
  100. maze/levels/courseA_maze_ramp3a_2024.json +53 -0
  101. maze/levels/courseA_maze_ramp3b_2024.json +50 -0
  102. maze/levels/courseA_maze_ramp4a_2024.json +48 -0
  103. maze/levels/courseA_maze_ramp5a_2024.json +47 -0
  104. maze/levels/courseA_maze_seq10_2024.json +48 -0
  105. maze/levels/courseA_maze_seq11_2024.json +47 -0
  106. maze/levels/courseA_maze_seq12_2024.json +47 -0
  107. maze/levels/courseA_maze_seq13_2024.json +49 -0
  108. maze/levels/courseA_maze_seq1_2024.json +52 -0
  109. maze/levels/courseA_maze_seq5_2024.json +47 -0
  110. maze/levels/courseA_maze_seq5a_2024.json +47 -0
  111. maze/levels/courseA_maze_seq6_2024.json +47 -0
  112. maze/levels/courseA_maze_seq8_2024.json +47 -0
  113. maze/levels/courseA_maze_seq_challenge1_2024.json +45 -0
  114. maze/levels/courseA_maze_seq_challenge2_2024.json +50 -0
  115. maze/levels/courseB_collector_loops10_2024.json +53 -0
  116. maze/levels/courseB_collector_loops11_2024.json +51 -0
  117. maze/levels/courseB_collector_loops1_2024.json +53 -0
  118. maze/levels/courseB_collector_loops2_2024.json +53 -0
  119. maze/levels/courseB_collector_loops3_2024.json +57 -0
  120. maze/levels/courseB_collector_loops4_2024.json +57 -0
  121. maze/levels/courseB_collector_loops5_2024.json +54 -0
  122. maze/levels/courseB_collector_loops6_2024.json +54 -0
  123. maze/levels/courseB_collector_loops7_2024.json +53 -0
  124. maze/levels/courseB_collector_loops8_2024.json +54 -0
  125. maze/levels/courseB_collector_loops9_2024.json +54 -0
  126. maze/levels/courseB_collector_loops_challenge1_2024.json +54 -0
  127. maze/levels/courseB_collector_loops_challenge2a_2024.json +51 -0
  128. maze/levels/courseC_collector_loops_challenge2_2024.json +53 -0
  129. maze/levels/courseC_collector_prog1_2023.json +52 -0
  130. maze/levels/courseC_collector_prog1_2024.json +52 -0
  131. maze/levels/courseC_collector_prog2_2023.json +53 -0
  132. maze/levels/courseC_collector_prog2_2024.json +53 -0
  133. maze/levels/courseC_collector_prog3_2023.json +49 -0
  134. maze/levels/courseC_collector_prog3_2024.json +49 -0
  135. maze/levels/courseC_collector_prog4_2023.json +50 -0
  136. maze/levels/courseC_collector_prog4_2024.json +50 -0
  137. maze/levels/courseC_collector_prog5_2023.json +50 -0
  138. maze/levels/courseC_collector_prog5_2024.json +50 -0
  139. maze/levels/courseC_collector_prog6_2023.json +50 -0
  140. maze/levels/courseC_collector_prog6_2024.json +50 -0
  141. maze/levels/courseC_collector_prog7_2023.json +51 -0
  142. maze/levels/courseC_collector_prog7_2024.json +51 -0
  143. maze/levels/courseC_collector_prog8_2023.json +52 -0
  144. maze/levels/courseC_collector_prog8_2024.json +52 -0
  145. maze/levels/courseC_collector_prog9_2023.json +52 -0
  146. maze/levels/courseC_collector_prog9_2024.json +52 -0
  147. maze/levels/courseC_collector_prog_challenge1_2023.json +51 -0
  148. maze/levels/courseC_collector_prog_challenge1_2024.json +51 -0
  149. maze/levels/courseC_collector_prog_challenge2_2023.json +51 -0
  150. maze/levels/courseC_collector_prog_challenge2_2024.json +51 -0
  151. maze/levels/courseC_harvester_loops10_2024.json +50 -0
  152. maze/levels/courseC_harvester_loops11_2024.json +50 -0
  153. maze/levels/courseC_harvester_loops11_predict1_2024.json +47 -0
  154. maze/levels/courseC_harvester_loops1_2024.json +52 -0
  155. maze/levels/courseC_harvester_loops2_2024.json +50 -0
  156. maze/levels/courseC_harvester_loops3_2024.json +50 -0
  157. maze/levels/courseC_harvester_loops4_2024.json +50 -0
  158. maze/levels/courseC_harvester_loops5_2024.json +50 -0
  159. maze/levels/courseC_harvester_loops6_2024.json +50 -0
  160. maze/levels/courseC_harvester_loops7_2024.json +50 -0
  161. maze/levels/courseC_harvester_loops8_2024.json +49 -0
  162. maze/levels/courseC_harvester_loops9_2024.json +50 -0
  163. maze/levels/courseC_harvester_loops_challenge1a_2024.json +50 -0
  164. maze/levels/courseC_harvester_loops_challenge2_2024.json +48 -0
  165. maze/levels/courseC_maze_debugging1.json +47 -0
  166. maze/levels/courseC_maze_debugging2.json +44 -0
  167. maze/levels/courseC_maze_debugging3.json +46 -0
  168. maze/levels/courseC_maze_debugging4.json +44 -0
  169. maze/levels/courseC_maze_debugging5.json +46 -0
  170. maze/levels/courseC_maze_debugging6.json +44 -0
  171. maze/levels/courseC_maze_debugging7.json +45 -0
  172. maze/levels/courseC_maze_debugging8_predict1.json +43 -0
  173. maze/levels/courseC_maze_debugging9.json +44 -0
  174. maze/levels/courseC_maze_loops_challenge1a_2024.json +47 -0
  175. maze/levels/courseC_maze_programming1_2023.json +50 -0
  176. maze/levels/courseC_maze_programming1_2024.json +50 -0
  177. maze/levels/courseC_maze_programming2_2023.json +53 -0
  178. maze/levels/courseC_maze_programming2_2024.json +53 -0
  179. maze/levels/courseC_maze_programming3_2023.json +47 -0
  180. maze/levels/courseC_maze_programming3_2024.json +47 -0
  181. maze/levels/courseC_maze_programming4_2023.json +46 -0
  182. maze/levels/courseC_maze_programming4_2024.json +46 -0
  183. maze/levels/courseC_maze_programming5_2023.json +46 -0
  184. maze/levels/courseC_maze_programming5_2024.json +46 -0
  185. maze/levels/courseC_maze_programming6_2023.json +50 -0
  186. maze/levels/courseC_maze_programming6_2024.json +49 -0
  187. maze/levels/courseC_maze_programming7_2023.json +54 -0
  188. maze/levels/courseC_maze_programming7_2024.json +54 -0
  189. maze/levels/courseC_maze_programming8_2023.json +52 -0
  190. maze/levels/courseC_maze_programming8_2024.json +51 -0
  191. maze/levels/courseC_maze_programming8_predict1_2024.json +45 -0
  192. maze/levels/courseC_maze_programming9_2023.json +47 -0
  193. maze/levels/courseC_maze_programming9_2024.json +47 -0
  194. maze/levels/courseC_maze_programming_challenge1_2023.json +47 -0
  195. maze/levels/courseC_maze_programming_challenge1_2024.json +47 -0
  196. maze/levels/courseC_maze_programming_challenge2_2023.json +49 -0
  197. maze/levels/courseC_maze_programming_challenge2_2024.json +49 -0
  198. maze/levels/courseD_bee_conditionals10_2023.json +57 -0
  199. maze/levels/courseD_bee_conditionals10_2024.json +57 -0
  200. maze/levels/courseD_bee_conditionals10_2025.json +57 -0
  201. maze/levels/courseD_bee_conditionals1_predict1_2023.json +51 -0
  202. maze/levels/courseD_bee_conditionals1_predict1_2024.json +51 -0
  203. maze/levels/courseD_bee_conditionals1_predict1_2025.json +51 -0
  204. maze/levels/courseD_bee_conditionals2_2023.json +60 -0
  205. maze/levels/courseD_bee_conditionals2_2024.json +60 -0
  206. maze/levels/courseD_bee_conditionals2_2025.json +60 -0
  207. maze/levels/courseD_bee_conditionals3_2023.json +57 -0
  208. maze/levels/courseD_bee_conditionals3_2024.json +57 -0
  209. maze/levels/courseD_bee_conditionals3_2025.json +57 -0
  210. maze/levels/courseD_bee_conditionals4_2023.json +58 -0
  211. maze/levels/courseD_bee_conditionals4_2024.json +58 -0
  212. maze/levels/courseD_bee_conditionals4_2025.json +58 -0
  213. maze/levels/courseD_bee_conditionals5_2023.json +58 -0
  214. maze/levels/courseD_bee_conditionals5_2024.json +58 -0
  215. maze/levels/courseD_bee_conditionals5_2025.json +58 -0
  216. maze/levels/courseD_bee_conditionals6_2023.json +57 -0
  217. maze/levels/courseD_bee_conditionals6_2024.json +57 -0
  218. maze/levels/courseD_bee_conditionals6_2025.json +57 -0
  219. maze/levels/courseD_bee_conditionals7_2023.json +57 -0
  220. maze/levels/courseD_bee_conditionals7_2024.json +57 -0
  221. maze/levels/courseD_bee_conditionals7_2025.json +57 -0
  222. maze/levels/courseD_bee_conditionals7_predict2_2023.json +54 -0
  223. maze/levels/courseD_bee_conditionals7_predict2_2024.json +54 -0
  224. maze/levels/courseD_bee_conditionals7_predict2_2025.json +54 -0
  225. maze/levels/courseD_bee_conditionals8_2023.json +57 -0
  226. maze/levels/courseD_bee_conditionals8_2024.json +57 -0
  227. maze/levels/courseD_bee_conditionals8_2025.json +57 -0
  228. maze/levels/courseD_bee_conditionals9_2023.json +55 -0
  229. maze/levels/courseD_bee_conditionals9_2024.json +55 -0
  230. maze/levels/courseD_bee_conditionals9_2025.json +55 -0
  231. maze/levels/courseD_bee_conditionals_challenge1_2023.json +57 -0
  232. maze/levels/courseD_bee_conditionals_challenge1_2024.json +57 -0
  233. maze/levels/courseD_bee_conditionals_challenge1_2025.json +57 -0
  234. maze/levels/courseD_bee_conditionals_challenge2_2023.json +58 -0
  235. maze/levels/courseD_bee_conditionals_challenge2_2024.json +58 -0
  236. maze/levels/courseD_bee_conditionals_challenge2_2025.json +58 -0
  237. maze/levels/courseD_bee_nestedLoops1.json +49 -0
  238. maze/levels/courseD_bee_nestedLoops1_2023.json +53 -0
  239. maze/levels/courseD_bee_nestedLoops1_2024.json +53 -0
  240. maze/levels/courseD_bee_nestedLoops1_2025.json +53 -0
  241. maze/levels/courseD_bee_nestedLoops1a.json +49 -0
  242. maze/levels/courseD_bee_nestedLoops1a_2023.json +55 -0
  243. maze/levels/courseD_bee_nestedLoops1a_2024.json +55 -0
  244. maze/levels/courseD_bee_nestedLoops1a_2025.json +55 -0
  245. maze/levels/courseD_bee_nestedLoops2.json +50 -0
  246. maze/levels/courseD_bee_nestedLoops2_2023.json +57 -0
  247. maze/levels/courseD_bee_nestedLoops2_2024.json +57 -0
  248. maze/levels/courseD_bee_nestedLoops2_2025.json +57 -0
  249. maze/levels/courseD_bee_nestedLoops2_predict1.json +51 -0
  250. maze/levels/courseD_bee_nestedLoops2_predict1_2023.json +51 -0
  251. maze/levels/courseD_bee_nestedLoops2_predict1_2024.json +51 -0
  252. maze/levels/courseD_bee_nestedLoops2_predict1_2025.json +51 -0
  253. maze/levels/courseD_bee_nestedLoops7.json +53 -0
  254. maze/levels/courseD_bee_nestedLoops7_2023.json +59 -0
  255. maze/levels/courseD_bee_nestedLoops7_2024.json +59 -0
  256. maze/levels/courseD_bee_nestedLoops7_2025.json +59 -0
  257. maze/levels/courseD_bee_nestedLoops8.json +52 -0
  258. maze/levels/courseD_bee_nestedLoops8_2023.json +59 -0
  259. maze/levels/courseD_bee_nestedLoops8_2024.json +59 -0
  260. maze/levels/courseD_bee_nestedLoops8_2025.json +59 -0
  261. maze/levels/courseD_bee_nestedLoops9.json +53 -0
  262. maze/levels/courseD_bee_nestedLoops9_2023.json +60 -0
  263. maze/levels/courseD_bee_nestedLoops9_2024.json +60 -0
  264. maze/levels/courseD_bee_nestedLoops9_2025.json +60 -0
  265. maze/levels/courseD_bee_nestedLoops9_predict2.json +51 -0
  266. maze/levels/courseD_bee_nestedLoops9_predict2_2023.json +54 -0
  267. maze/levels/courseD_bee_nestedLoops9_predict2_2024.json +54 -0
  268. maze/levels/courseD_bee_nestedLoops9_predict2_2025.json +54 -0
  269. maze/levels/courseD_collector_debugging1a_2023.json +50 -0
  270. maze/levels/courseD_collector_debugging1a_2024.json +50 -0
  271. maze/levels/courseD_collector_debugging1a_2025.json +50 -0
  272. maze/levels/courseD_collector_debugging2a_2023.json +50 -0
  273. maze/levels/courseD_collector_debugging2a_2024.json +50 -0
  274. maze/levels/courseD_collector_debugging2a_2025.json +50 -0
  275. maze/levels/courseD_collector_debugging3a_2023.json +50 -0
  276. maze/levels/courseD_collector_debugging3a_2024.json +50 -0
  277. maze/levels/courseD_collector_debugging3a_2025.json +50 -0
  278. maze/levels/courseD_collector_debugging4a_2023.json +50 -0
  279. maze/levels/courseD_collector_debugging4a_2024.json +50 -0
  280. maze/levels/courseD_collector_debugging4a_2025.json +50 -0
  281. maze/levels/courseD_collector_debugging5a_2023.json +50 -0
  282. maze/levels/courseD_collector_debugging5a_2024.json +50 -0
  283. maze/levels/courseD_collector_debugging5a_2025.json +50 -0
  284. maze/levels/courseD_collector_debugging6a_2023.json +56 -0
  285. maze/levels/courseD_collector_debugging6a_2024.json +56 -0
  286. maze/levels/courseD_collector_debugging6a_2025.json +56 -0
  287. maze/levels/courseD_collector_debugging8a_2023.json +49 -0
  288. maze/levels/courseD_collector_debugging8a_2024.json +49 -0
  289. maze/levels/courseD_collector_debugging8a_2025.json +49 -0
  290. maze/levels/courseD_collector_debugging9a_2023.json +49 -0
  291. maze/levels/courseD_collector_debugging9a_2024.json +49 -0
  292. maze/levels/courseD_collector_debugging9a_2025.json +49 -0
  293. maze/levels/courseD_collector_nested_loops_challenge2_2024.json +50 -0
  294. maze/levels/courseD_collector_nested_loops_challenge2_2025.json +50 -0
  295. maze/levels/courseD_farmer_while10_2023.json +50 -0
  296. maze/levels/courseD_farmer_while10_2024.json +50 -0
  297. maze/levels/courseD_farmer_while10_2025.json +50 -0
  298. maze/levels/courseD_farmer_while10_predict2_2024.json +45 -0
  299. maze/levels/courseD_farmer_while10_predict2_2025.json +45 -0
  300. maze/levels/courseD_farmer_while1_2023.json +49 -0
  301. maze/levels/courseD_farmer_while1_2024.json +49 -0
  302. maze/levels/courseD_farmer_while1_2025.json +49 -0
  303. maze/levels/courseD_farmer_while2_2023.json +45 -0
  304. maze/levels/courseD_farmer_while2_2024.json +45 -0
  305. maze/levels/courseD_farmer_while2_2025.json +45 -0
  306. maze/levels/courseD_farmer_while3_2023.json +47 -0
  307. maze/levels/courseD_farmer_while3_2024.json +47 -0
  308. maze/levels/courseD_farmer_while3_2025.json +47 -0
  309. maze/levels/courseD_farmer_while4_2023.json +50 -0
  310. maze/levels/courseD_farmer_while4_2024.json +50 -0
  311. maze/levels/courseD_farmer_while4_2025.json +50 -0
  312. maze/levels/courseD_farmer_while4_predict1_2024.json +47 -0
  313. maze/levels/courseD_farmer_while4_predict1_2025.json +47 -0
  314. maze/levels/courseD_farmer_while5_2023.json +52 -0
  315. maze/levels/courseD_farmer_while5_2024.json +52 -0
  316. maze/levels/courseD_farmer_while5_2025.json +52 -0
  317. maze/levels/courseD_farmer_while6_2023.json +51 -0
  318. maze/levels/courseD_farmer_while6_2024.json +51 -0
  319. maze/levels/courseD_farmer_while6_2025.json +51 -0
  320. maze/levels/courseD_farmer_while7_2023.json +52 -0
  321. maze/levels/courseD_farmer_while7_2024.json +52 -0
  322. maze/levels/courseD_farmer_while7_2025.json +52 -0
  323. maze/levels/courseD_farmer_while8_2023.json +51 -0
  324. maze/levels/courseD_farmer_while8_2024.json +51 -0
  325. maze/levels/courseD_farmer_while8_2025.json +51 -0
  326. maze/levels/courseD_farmer_while9_2023.json +50 -0
  327. maze/levels/courseD_farmer_while9_2024.json +50 -0
  328. maze/levels/courseD_farmer_while9_2025.json +50 -0
  329. maze/levels/courseD_farmer_while_challenge1_2023.json +50 -0
  330. maze/levels/courseD_farmer_while_challenge1_2024.json +50 -0
  331. maze/levels/courseD_farmer_while_challenge1_2025.json +50 -0
  332. maze/levels/courseD_harvester_nested_loops_challenge1_2024.json +51 -0
  333. maze/levels/courseD_harvester_nested_loops_challenge1_2025.json +51 -0
  334. maze/levels/courseD_iceage_loops10_2024.json +48 -0
  335. maze/levels/courseD_iceage_loops10_2025.json +48 -0
  336. maze/levels/courseD_iceage_loops11_2024.json +46 -0
  337. maze/levels/courseD_iceage_loops11_2025.json +46 -0
  338. maze/levels/courseD_iceage_loops12_2024.json +46 -0
  339. maze/levels/courseD_iceage_loops12_2025.json +46 -0
  340. maze/levels/courseD_iceage_loops1_2024.json +49 -0
  341. maze/levels/courseD_iceage_loops1_2025.json +49 -0
  342. maze/levels/courseD_iceage_loops2_2024.json +51 -0
  343. maze/levels/courseD_iceage_loops2_2025.json +51 -0
  344. maze/levels/courseD_iceage_loops3_2024.json +51 -0
  345. maze/levels/courseD_iceage_loops3_2025.json +51 -0
  346. maze/levels/courseD_iceage_loops4_2024.json +47 -0
  347. maze/levels/courseD_iceage_loops4_2025.json +47 -0
  348. maze/levels/courseD_iceage_loops6_2024.json +47 -0
  349. maze/levels/courseD_iceage_loops6_2025.json +47 -0
  350. maze/levels/courseD_iceage_loops7_2024.json +47 -0
  351. maze/levels/courseD_iceage_loops7_2025.json +47 -0
  352. maze/levels/courseD_iceage_loops8_2024.json +49 -0
  353. maze/levels/courseD_iceage_loops8_2025.json +49 -0
  354. maze/levels/courseD_iceage_loops9_2024.json +49 -0
  355. maze/levels/courseD_iceage_loops9_2025.json +49 -0
  356. maze/levels/courseD_maze_intro4_2023.json +45 -0
  357. maze/levels/courseD_maze_intro4_2024.json +45 -0
  358. maze/levels/courseD_maze_intro4_2025.json +45 -0
  359. maze/levels/courseD_maze_intro5a_2023.json +45 -0
  360. maze/levels/courseD_maze_intro5a_2024.json +45 -0
  361. maze/levels/courseD_maze_intro5a_2025.json +45 -0
  362. maze/levels/courseD_maze_intro5c_2023.json +45 -0
  363. maze/levels/courseD_maze_intro5c_2024.json +45 -0
  364. maze/levels/courseD_maze_intro5c_2025.json +45 -0
  365. maze/levels/courseD_maze_nestedLoops3.json +46 -0
  366. maze/levels/courseD_maze_nestedLoops3_2023.json +47 -0
  367. maze/levels/courseD_maze_nestedLoops3_2024.json +47 -0
  368. maze/levels/courseD_maze_nestedLoops3_2025.json +47 -0
  369. maze/levels/courseD_maze_nestedLoops4.json +45 -0
  370. maze/levels/courseD_maze_nestedLoops4_2023.json +47 -0
  371. maze/levels/courseD_maze_nestedLoops4_2024.json +47 -0
  372. maze/levels/courseD_maze_nestedLoops4_2025.json +47 -0
  373. maze/levels/courseD_maze_nestedLoops5.json +44 -0
  374. maze/levels/courseD_maze_nestedLoops5_2023.json +45 -0
  375. maze/levels/courseD_maze_nestedLoops5_2024.json +45 -0
  376. maze/levels/courseD_maze_nestedLoops5_2025.json +45 -0
  377. maze/levels/courseD_maze_nestedLoops6.json +43 -0
  378. maze/levels/courseD_maze_nestedLoops6_2023.json +45 -0
  379. maze/levels/courseD_maze_nestedLoops6_2024.json +45 -0
  380. maze/levels/courseD_maze_nestedLoops6_2025.json +45 -0
  381. maze/levels/courseD_maze_ramp1.json +47 -0
  382. maze/levels/courseD_maze_ramp1_2023.json +45 -0
  383. maze/levels/courseD_maze_ramp1_2024.json +45 -0
  384. maze/levels/courseD_maze_ramp1_2025.json +45 -0
  385. maze/levels/courseD_maze_ramp2.json +47 -0
  386. maze/levels/courseD_maze_ramp2_2023.json +45 -0
  387. maze/levels/courseD_maze_ramp2_2024.json +45 -0
  388. maze/levels/courseD_maze_ramp2_2025.json +45 -0
  389. maze/levels/courseD_maze_ramp3.json +46 -0
  390. maze/levels/courseD_maze_ramp3_2023.json +45 -0
  391. maze/levels/courseD_maze_ramp3_2024.json +45 -0
  392. maze/levels/courseD_maze_ramp3_2025.json +45 -0
  393. maze/levels/courseD_maze_ramp4.json +47 -0
  394. maze/levels/courseD_maze_ramp5.json +44 -0
  395. maze/levels/courseD_maze_ramp5_2023.json +42 -0
  396. maze/levels/courseD_maze_ramp5_2024.json +42 -0
  397. maze/levels/courseD_maze_ramp5_2025.json +42 -0
  398. maze/levels/courseD_maze_ramp5a.json +45 -0
  399. maze/levels/courseD_maze_ramp5b.json +45 -0
  400. maze/levels/courseD_maze_ramp5b_2023.json +43 -0
  401. maze/levels/courseD_maze_ramp5b_2024.json +43 -0
  402. maze/levels/courseD_maze_ramp5b_2025.json +43 -0
  403. maze/levels/courseD_maze_ramp5c.json +46 -0
  404. maze/levels/courseD_maze_ramp5d.json +45 -0
  405. maze/levels/courseD_maze_ramp5d_2023.json +43 -0
  406. maze/levels/courseD_maze_ramp5d_2024.json +43 -0
  407. maze/levels/courseD_maze_ramp5d_2025.json +43 -0
  408. maze/levels/courseD_maze_until10_2023.json +53 -0
  409. maze/levels/courseD_maze_until10_2024.json +53 -0
  410. maze/levels/courseD_maze_until10_2025.json +53 -0
  411. maze/levels/courseD_maze_until10_predict2_2024.json +52 -0
  412. maze/levels/courseD_maze_until10_predict2_2025.json +52 -0
  413. maze/levels/courseD_maze_until1_2023.json +47 -0
  414. maze/levels/courseD_maze_until1_2024.json +47 -0
  415. maze/levels/courseD_maze_until1_2025.json +47 -0
  416. maze/levels/courseD_maze_until2_predict1_2024.json +44 -0
  417. maze/levels/courseD_maze_until2_predict1_2025.json +44 -0
  418. maze/levels/courseD_maze_until3_2023.json +48 -0
  419. maze/levels/courseD_maze_until3_2024.json +48 -0
  420. maze/levels/courseD_maze_until3_2025.json +48 -0
  421. maze/levels/courseD_maze_until4_2023.json +49 -0
  422. maze/levels/courseD_maze_until4_2024.json +49 -0
  423. maze/levels/courseD_maze_until4_2025.json +49 -0
  424. maze/levels/courseD_maze_until5_2023.json +49 -0
  425. maze/levels/courseD_maze_until5_2024.json +49 -0
  426. maze/levels/courseD_maze_until5_2025.json +49 -0
  427. maze/levels/courseD_maze_until6_2023.json +49 -0
  428. maze/levels/courseD_maze_until6_2024.json +49 -0
  429. maze/levels/courseD_maze_until6_2025.json +49 -0
  430. maze/levels/courseD_maze_until7_2023.json +49 -0
  431. maze/levels/courseD_maze_until7_2024.json +49 -0
  432. maze/levels/courseD_maze_until7_2025.json +49 -0
  433. maze/levels/courseD_maze_until9_2023.json +53 -0
  434. maze/levels/courseD_maze_until9_2024.json +53 -0
  435. maze/levels/courseD_maze_until9_2025.json +53 -0
  436. maze/levels/courseD_scrat_predict1.json +44 -0
  437. maze/levels/courseD_scrat_ramp1.json +46 -0
  438. maze/levels/courseD_scrat_ramp2.json +47 -0
  439. maze/levels/courseD_scrat_ramp3.json +45 -0
  440. maze/levels/courseD_scrat_ramp4.json +46 -0
  441. maze/levels/courseD_scrat_ramp5.json +46 -0
  442. maze/levels/courseD_scrat_ramp6.json +47 -0
  443. maze/levels/courseD_scrat_ramp8.json +47 -0
  444. maze/levels/courseE_farmer_functions10a1_2023.json +55 -0
  445. maze/levels/courseE_farmer_functions10a1_2024.json +55 -0
  446. maze/levels/courseE_farmer_functions11_predict_2024.json +49 -0
  447. maze/levels/courseE_farmer_functions13_2023.json +55 -0
  448. maze/levels/courseE_farmer_functions13_2024.json +55 -0
  449. maze/levels/courseE_farmer_functions1_2023.json +54 -0
  450. maze/levels/courseE_farmer_functions1_2024.json +54 -0
  451. maze/levels/courseE_farmer_functions1a_2023.json +55 -0
  452. maze/levels/courseE_farmer_functions1a_2024.json +55 -0
  453. maze/levels/courseE_farmer_functions2b_2023.json +55 -0
  454. maze/levels/courseE_farmer_functions2b_2024.json +55 -0
  455. maze/levels/courseE_farmer_functions2ba_2023.json +55 -0
  456. maze/levels/courseE_farmer_functions2ba_2024.json +55 -0
  457. maze/levels/courseE_farmer_functions3c1_2023.json +56 -0
  458. maze/levels/courseE_farmer_functions3c1_2024.json +56 -0
  459. maze/levels/courseE_farmer_functions3c_2023.json +55 -0
  460. maze/levels/courseE_farmer_functions3c_2024.json +55 -0
  461. maze/levels/courseE_farmer_functions7a1_2023.json +59 -0
  462. maze/levels/courseE_farmer_functions7a1_2024.json +59 -0
  463. maze/levels/courseE_farmer_functions8a1_2023.json +56 -0
  464. maze/levels/courseE_farmer_functions8a1_2024.json +56 -0
  465. maze/levels/courseE_farmer_functions9a1_2023.json +58 -0
  466. maze/levels/courseE_farmer_functions9a1_2024.json +58 -0
  467. maze/levels/courseE_farmer_ramp11a_2023.json +49 -0
  468. maze/levels/courseE_farmer_ramp11a_2024.json +49 -0
  469. maze/levels/courseE_farmer_ramp11b_2023.json +50 -0
  470. maze/levels/courseE_farmer_ramp11b_2024.json +50 -0
  471. maze/levels/courseE_farmer_ramp12_forswap_2023.json +50 -0
  472. maze/levels/courseE_farmer_ramp12_forswap_2024.json +50 -0
  473. maze/levels/courseE_farmer_ramp12b_2023.json +50 -0
  474. maze/levels/courseE_farmer_ramp12b_2024.json +50 -0
  475. maze/levels/courseE_farmer_ramp12c_2023.json +50 -0
  476. maze/levels/courseE_farmer_ramp12c_2024.json +50 -0
  477. maze/levels/courseE_farmer_ramp12d_2023.json +50 -0
  478. maze/levels/courseE_farmer_ramp12d_2024.json +50 -0
  479. maze/levels/courseE_farmer_ramp12e_2023.json +50 -0
  480. maze/levels/courseE_farmer_ramp12e_2024.json +50 -0
  481. maze/levels/courseE_farmer_ramp12f_2023.json +51 -0
  482. maze/levels/courseE_farmer_ramp12f_2024.json +51 -0
  483. maze/levels/courseE_farmer_while1_2023.json +54 -0
  484. maze/levels/courseE_farmer_while1_2024.json +54 -0
  485. maze/levels/courseF_bee_conditionals10.json +53 -0
  486. maze/levels/courseF_bee_conditionals1_predict1.json +52 -0
  487. maze/levels/courseF_bee_conditionals2.json +53 -0
  488. maze/levels/courseF_bee_conditionals3.json +51 -0
  489. maze/levels/courseF_bee_conditionals4.json +50 -0
  490. maze/levels/courseF_bee_conditionals5.json +53 -0
  491. maze/levels/courseF_bee_conditionals7_predict2.json +53 -0
  492. maze/levels/courseF_bee_conditionals8.json +54 -0
  493. maze/levels/courseF_bee_for1.json +50 -0
  494. maze/levels/courseF_bee_for10.json +53 -0
  495. maze/levels/courseF_bee_for11.json +48 -0
  496. maze/levels/courseF_bee_for2.json +51 -0
  497. maze/levels/courseF_bee_for3_predict1.json +52 -0
  498. maze/levels/courseF_bee_for4.json +54 -0
  499. maze/levels/courseF_bee_for5.json +52 -0
  500. maze/levels/courseF_bee_for6.json +55 -0
  501. maze/levels/courseF_bee_for7.json +53 -0
  502. maze/levels/courseF_bee_for8.json +54 -0
  503. maze/levels/courseF_bee_for9.json +55 -0
  504. maze/levels/courseF_bee_for_challenge1.json +52 -0
  505. maze/levels/courseF_bee_for_challenge2.json +48 -0
  506. maze/levels/courseF_bee_functions2.json +55 -0
  507. maze/levels/courseF_bee_functions3.json +55 -0
  508. maze/levels/courseF_bee_functions3a.json +55 -0
  509. maze/levels/courseF_bee_functions4.json +54 -0
  510. maze/levels/courseF_bee_functions5a.json +55 -0
  511. maze/levels/courseF_bee_functions6.json +57 -0
  512. maze/levels/courseF_bee_functions7.json +55 -0
  513. maze/levels/courseF_bee_functions8a.json +52 -0
  514. maze/levels/courseF_bee_functionsPre7.json +56 -0
  515. maze/levels/courseF_bee_functions_challenge1.json +52 -0
  516. maze/levels/courseF_bee_functions_challenge2.json +51 -0
  517. maze/levels/courseF_bee_fwp1.json +52 -0
  518. maze/levels/courseF_bee_fwp2.json +52 -0
  519. maze/levels/courseF_bee_fwp3.json +54 -0
  520. maze/levels/courseF_bee_fwp4.json +52 -0
  521. maze/levels/courseF_bee_fwp5.json +52 -0
  522. maze/levels/courseF_bee_fwp6.json +53 -0
  523. maze/levels/courseF_bee_fwp7.json +52 -0
  524. maze/levels/courseF_bee_fwp8.json +55 -0
  525. maze/levels/courseF_bee_fwp9_predict1.json +54 -0
  526. maze/levels/courseF_bee_fwp_challenge1.json +47 -0
  527. maze/levels/courseF_bee_fwp_challenge2.json +48 -0
  528. maze/levels/coursea_maze_ramp1_2024.json +53 -0
  529. maze/levels/grade2_collector_10_2023.json +45 -0
  530. maze/levels/grade2_collector_10_2024.json +45 -0
  531. maze/levels/grade2_collector_A_2023.json +50 -0
  532. maze/levels/grade2_collector_A_2024.json +50 -0
  533. maze/levels/grade2_collector_A_predict1_2023.json +46 -0
  534. maze/levels/grade2_collector_A_predict1_2024.json +46 -0
  535. maze/maze.py +650 -0
  536. maze/puzzle.py +75 -0
  537. maze/pvz.py +62 -0
  538. maze/screencapture.py +22 -0
  539. maze/zombieshape.py +108 -0
@@ -0,0 +1,51 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2025-04-14T15:40:46.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":2},{\"tileType\":1,\"value\":-3,\"range\":-3},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":1,\"value\":-2,\"range\":-2},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1,\"value\":-5,\"range\":-5},{\"tileType\":1,\"value\":-4,\"range\":-4},{\"tileType\":1},{\"tileType\":0}],[{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1,\"value\":-6,\"range\":-8},{\"tileType\":1},{\"tileType\":1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":1}]]",
9
+ "short_instructions": "Use the `while` loop to easily fill all of the holes.",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "1",
26
+ "step_mode": "1",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "authored_hints": "[{\"hint_class\":\"content\",\"hint_markdown\":\"Make sure you're using the `while` loop to figure out how many times to fill each hole.\",\"hint_id\":\"courseD_farmer_conditionals6_a\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/3c44e00dc533b0ae359d374e23dc345a/courseD_farmer_while6_2018.mp3\"},{\"hint_class\":\"pointer\",\"hint_markdown\":\"Notice that the farmer needs to move forward and down several times in a stair-step pattern.\",\"hint_id\":\"courseD_farmer_conditionals6_b\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/7d6430ae7dff887a4cb06283eb1707d8/courseD_farmer_while6_2018.mp3\"},{\"hint_class\":\"bottom-out\",\"hint_markdown\":\"The stair step pattern uses the following blocks\\n - move forward\\n - fill hole\\n - turn right\\n - move forward\\n - fill hole\\n - turn left\\n\\nHow many times do you need to use this stair step pattern?\\n\\nMake sure you are using the `while there is a hole` to fill the hole.\",\"hint_id\":\"courseD_farmer_conditionals6_c\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/ef2e591ce4573baa7e8e77a1aee223e0/courseD_farmer_while6_2018.mp3\"}]",
30
+ "instructions_important": "false",
31
+ "ideal": "10",
32
+ "long_instructions": "Look at all of those holes! Each one needs a different amount of dirt. \r\n\r\nYou can use the `while` loop to easily fill them all!",
33
+ "hide_share_and_remix": "false",
34
+ "disable_if_else_editing": "false",
35
+ "parent_level_id": 21391,
36
+ "name_suffix": "_2025",
37
+ "disable_procedure_autopopulate": "false",
38
+ "top_level_procedure_autopopulate": "false",
39
+ "show_type_hints": "false",
40
+ "shape_shift": "false",
41
+ "preload_asset_list": null
42
+ },
43
+ "published": true,
44
+ "notes": "",
45
+ "audit_log": "[{\"changed_at\":\"2025-04-14T15:40:46.920+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while6_2024\\\"\"],\"cloned_from\":\"courseD_farmer_while6_2024\"}]",
46
+ "level_concept_difficulty": {
47
+ "sequencing": 3,
48
+ "repeat_loops": 5,
49
+ "repeat_until_while": 3
50
+ }
51
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2023-03-14T20:38:46.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":2},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}]]",
9
+ "short_instructions": "Fill in the hole at the end of each of these paths.",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "1",
26
+ "step_mode": "0",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "instructions_important": "false",
30
+ "authored_hints": "[{\"hint_class\":\"content\",\"hint_markdown\":\"The `while path ahead` block lets you keep going, even if you don't know how many squares are in a path.\",\"hint_id\":\"courseD_farmer_conditionals8_a\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/67bf5b89188b28ffa16d00c7dcd7e8ce/courseD_farmer_while7.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Putting a `while path ahead` loop inside of a repeat loop can help you in this puzzle.\",\"hint_id\":\"courseD_farmer_conditionals8_b\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/c04ab9cb1b7f37b60b09fb7e667e151c/courseD_farmer_while7.mp3\"},{\"hint_class\":\"pointer\",\"hint_markdown\":\"What do you need to do at the end of each path?\",\"hint_id\":\"courseD_farmer_conditionals8_c\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/c325f4861dddc8f4acd542a9a65237ee/courseD_farmer_while7.mp3\"}]",
31
+ "ideal": "6",
32
+ "hide_share_and_remix": "false",
33
+ "disable_if_else_editing": "false",
34
+ "shape_shift": "false",
35
+ "parent_level_id": 21392,
36
+ "name_suffix": "_2023",
37
+ "disable_procedure_autopopulate": "false",
38
+ "top_level_procedure_autopopulate": "false",
39
+ "show_type_hints": "false",
40
+ "callout_json": "[\r\n {\r\n \"localization_key\": \"courseD_farmer_while7_2018_PathAhead\",\r\n \"callout_text\": \"You'll need to use the `while path ahead` block in order to solve this puzzle.\",\r\n \"element_id\": \"#runButton\",\r\n \"on\": \"\",\r\n \"qtip_config\": {\r\n \"codeStudio\": {\r\n \"canReappear\": true,\r\n \"dropletPaletteCategory\": \"\"\r\n },\r\n \"style\": {\r\n \"classes\": \"\"\r\n },\r\n \"position\": {\r\n \"my\": \"bottom left\",\r\n \"at\": \"bottom left\",\r\n \"adjust\": {\r\n \"x\": 0,\r\n \"y\": 0\r\n }\r\n }\r\n }\r\n }\r\n]",
41
+ "include_shared_functions": "false",
42
+ "preload_asset_list": null
43
+ },
44
+ "published": true,
45
+ "notes": "",
46
+ "audit_log": "[{\"changed_at\":\"2023-03-14T20:38:46.962+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while72022\\\"\"],\"cloned_from\":\"courseD_farmer_while72022\"}]",
47
+ "level_concept_difficulty": {
48
+ "sequencing": 3,
49
+ "repeat_loops": 5,
50
+ "repeat_until_while": 3
51
+ }
52
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2024-04-03T21:28:03.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":2},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}]]",
9
+ "short_instructions": "Fill in the hole at the end of each of these paths.",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "1",
26
+ "step_mode": "0",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "instructions_important": "false",
30
+ "authored_hints": "[{\"hint_class\":\"content\",\"hint_markdown\":\"The `while path ahead` block lets you keep going, even if you don't know how many squares are in a path.\",\"hint_id\":\"courseD_farmer_conditionals8_a\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/67bf5b89188b28ffa16d00c7dcd7e8ce/courseD_farmer_while7.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Putting a `while path ahead` loop inside of a repeat loop can help you in this puzzle.\",\"hint_id\":\"courseD_farmer_conditionals8_b\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/c04ab9cb1b7f37b60b09fb7e667e151c/courseD_farmer_while7.mp3\"},{\"hint_class\":\"pointer\",\"hint_markdown\":\"What do you need to do at the end of each path?\",\"hint_id\":\"courseD_farmer_conditionals8_c\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/c325f4861dddc8f4acd542a9a65237ee/courseD_farmer_while7.mp3\"}]",
31
+ "ideal": "6",
32
+ "hide_share_and_remix": "false",
33
+ "disable_if_else_editing": "false",
34
+ "shape_shift": "false",
35
+ "parent_level_id": 21392,
36
+ "name_suffix": "_2024",
37
+ "disable_procedure_autopopulate": "false",
38
+ "top_level_procedure_autopopulate": "false",
39
+ "show_type_hints": "false",
40
+ "callout_json": "[\r\n {\r\n \"localization_key\": \"courseD_farmer_while7_2018_PathAhead\",\r\n \"callout_text\": \"You'll need to use the `while path ahead` block in order to solve this puzzle.\",\r\n \"element_id\": \"#runButton\",\r\n \"on\": \"\",\r\n \"qtip_config\": {\r\n \"codeStudio\": {\r\n \"canReappear\": true,\r\n \"dropletPaletteCategory\": \"\"\r\n },\r\n \"style\": {\r\n \"classes\": \"\"\r\n },\r\n \"position\": {\r\n \"my\": \"bottom left\",\r\n \"at\": \"bottom left\",\r\n \"adjust\": {\r\n \"x\": 0,\r\n \"y\": 0\r\n }\r\n }\r\n }\r\n }\r\n]",
41
+ "include_shared_functions": "false",
42
+ "preload_asset_list": null
43
+ },
44
+ "published": true,
45
+ "notes": "",
46
+ "audit_log": "[{\"changed_at\":\"2024-04-03T21:28:03.715+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while7_2023\\\"\"],\"cloned_from\":\"courseD_farmer_while7_2023\"}]",
47
+ "level_concept_difficulty": {
48
+ "sequencing": 3,
49
+ "repeat_loops": 5,
50
+ "repeat_until_while": 3
51
+ }
52
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2025-04-14T15:40:47.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":2},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}]]",
9
+ "short_instructions": "Fill in the hole at the end of each of these paths.",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "1",
26
+ "step_mode": "0",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "instructions_important": "false",
30
+ "authored_hints": "[{\"hint_class\":\"content\",\"hint_markdown\":\"The `while path ahead` block lets you keep going, even if you don't know how many squares are in a path.\",\"hint_id\":\"courseD_farmer_conditionals8_a\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/67bf5b89188b28ffa16d00c7dcd7e8ce/courseD_farmer_while7.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Putting a `while path ahead` loop inside of a repeat loop can help you in this puzzle.\",\"hint_id\":\"courseD_farmer_conditionals8_b\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/c04ab9cb1b7f37b60b09fb7e667e151c/courseD_farmer_while7.mp3\"},{\"hint_class\":\"pointer\",\"hint_markdown\":\"What do you need to do at the end of each path?\",\"hint_id\":\"courseD_farmer_conditionals8_c\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/c325f4861dddc8f4acd542a9a65237ee/courseD_farmer_while7.mp3\"}]",
31
+ "ideal": "6",
32
+ "hide_share_and_remix": "false",
33
+ "disable_if_else_editing": "false",
34
+ "shape_shift": "false",
35
+ "parent_level_id": 21392,
36
+ "name_suffix": "_2025",
37
+ "disable_procedure_autopopulate": "false",
38
+ "top_level_procedure_autopopulate": "false",
39
+ "show_type_hints": "false",
40
+ "callout_json": "[\r\n {\r\n \"localization_key\": \"courseD_farmer_while7_2018_PathAhead\",\r\n \"callout_text\": \"You'll need to use the `while path ahead` block in order to solve this puzzle.\",\r\n \"element_id\": \"#runButton\",\r\n \"on\": \"\",\r\n \"qtip_config\": {\r\n \"codeStudio\": {\r\n \"canReappear\": true,\r\n \"dropletPaletteCategory\": \"\"\r\n },\r\n \"style\": {\r\n \"classes\": \"\"\r\n },\r\n \"position\": {\r\n \"my\": \"bottom left\",\r\n \"at\": \"bottom left\",\r\n \"adjust\": {\r\n \"x\": 0,\r\n \"y\": 0\r\n }\r\n }\r\n }\r\n }\r\n]",
41
+ "include_shared_functions": "false",
42
+ "preload_asset_list": null
43
+ },
44
+ "published": true,
45
+ "notes": "",
46
+ "audit_log": "[{\"changed_at\":\"2025-04-14T15:40:47.213+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while7_2024\\\"\"],\"cloned_from\":\"courseD_farmer_while7_2024\"}]",
47
+ "level_concept_difficulty": {
48
+ "sequencing": 3,
49
+ "repeat_loops": 5,
50
+ "repeat_until_while": 3
51
+ }
52
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2023-03-14T20:38:47.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":1},{\"tileType\":1,\"value\":-2,\"range\":-2},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-4}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":2},{\"tileType\":1,\"value\":-1,\"range\":-4},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-4},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1}]]",
9
+ "short_instructions": "Challenge: Fill all of these holes using as few blocks as possible. ",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "1",
26
+ "step_mode": "1",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "authored_hints": "[{\"hint_class\":\"content\",\"hint_markdown\":\"You are going to need to use more than one `while` loop.\",\"hint_id\":\"courseD_farmer_conditionals8_a\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/7c9248afe7a125b3ce277a65cb4b18fb/courseD_farmer_conditionals8.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Every hole is at the end of a path, so use `while path ahead` before using `while there is a hole`.\",\"hint_id\":\"courseD_farmer_conditionals8_b\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/89295605fb9415e4c9ed2cc14adf2192/courseD_farmer_conditionals8.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Notice that you need to repeat the `while path ahead`, `while there is a hole` code six times.\",\"hint_id\":\"courseD_farmer_conditionals8_c\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/5b0b7d391cc30565d486afbd3f936397/courseD_farmer_conditionals8.mp3\"}]",
30
+ "instructions_important": "false",
31
+ "ideal": "7",
32
+ "long_instructions": "**Challenge:** Fill all of these holes using as few blocks as possible. ",
33
+ "parent_level_id": 21393,
34
+ "name_suffix": "_2023",
35
+ "disable_procedure_autopopulate": "false",
36
+ "top_level_procedure_autopopulate": "false",
37
+ "hide_share_and_remix": "false",
38
+ "disable_if_else_editing": "false",
39
+ "show_type_hints": "false",
40
+ "shape_shift": "false",
41
+ "preload_asset_list": null
42
+ },
43
+ "published": true,
44
+ "notes": "",
45
+ "audit_log": "[{\"changed_at\":\"2023-03-14T20:38:47.257+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while82022\\\"\"],\"cloned_from\":\"courseD_farmer_while82022\"}]",
46
+ "level_concept_difficulty": {
47
+ "sequencing": 3,
48
+ "repeat_loops": 5,
49
+ "repeat_until_while": 4
50
+ }
51
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2024-04-03T21:28:04.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":1},{\"tileType\":1,\"value\":-2,\"range\":-2},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-4}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":2},{\"tileType\":1,\"value\":-1,\"range\":-4},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-4},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1}]]",
9
+ "short_instructions": "Challenge: Fill all of these holes using as few blocks as possible. ",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "1",
26
+ "step_mode": "1",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "authored_hints": "[{\"hint_class\":\"content\",\"hint_markdown\":\"You are going to need to use more than one `while` loop.\",\"hint_id\":\"courseD_farmer_conditionals8_a\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/7c9248afe7a125b3ce277a65cb4b18fb/courseD_farmer_conditionals8.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Every hole is at the end of a path, so use `while path ahead` before using `while there is a hole`.\",\"hint_id\":\"courseD_farmer_conditionals8_b\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/89295605fb9415e4c9ed2cc14adf2192/courseD_farmer_conditionals8.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Notice that you need to repeat the `while path ahead`, `while there is a hole` code six times.\",\"hint_id\":\"courseD_farmer_conditionals8_c\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/5b0b7d391cc30565d486afbd3f936397/courseD_farmer_conditionals8.mp3\"}]",
30
+ "instructions_important": "false",
31
+ "ideal": "7",
32
+ "long_instructions": "**Challenge:** Fill all of these holes using as few blocks as possible. ",
33
+ "parent_level_id": 21393,
34
+ "name_suffix": "_2024",
35
+ "disable_procedure_autopopulate": "false",
36
+ "top_level_procedure_autopopulate": "false",
37
+ "hide_share_and_remix": "false",
38
+ "disable_if_else_editing": "false",
39
+ "show_type_hints": "false",
40
+ "shape_shift": "false",
41
+ "preload_asset_list": null
42
+ },
43
+ "published": true,
44
+ "notes": "",
45
+ "audit_log": "[{\"changed_at\":\"2024-04-03T21:28:04.072+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while8_2023\\\"\"],\"cloned_from\":\"courseD_farmer_while8_2023\"}]",
46
+ "level_concept_difficulty": {
47
+ "sequencing": 3,
48
+ "repeat_loops": 5,
49
+ "repeat_until_while": 4
50
+ }
51
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2025-04-14T15:40:47.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":1},{\"tileType\":1,\"value\":-2,\"range\":-2},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-4}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":2},{\"tileType\":1,\"value\":-1,\"range\":-4},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-4},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":-1},{\"tileType\":1},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1,\"value\":-1,\"range\":-1}]]",
9
+ "short_instructions": "Challenge: Fill all of these holes using as few blocks as possible. ",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "1",
26
+ "step_mode": "1",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "authored_hints": "[{\"hint_class\":\"content\",\"hint_markdown\":\"You are going to need to use more than one `while` loop.\",\"hint_id\":\"courseD_farmer_conditionals8_a\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/7c9248afe7a125b3ce277a65cb4b18fb/courseD_farmer_conditionals8.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Every hole is at the end of a path, so use `while path ahead` before using `while there is a hole`.\",\"hint_id\":\"courseD_farmer_conditionals8_b\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/89295605fb9415e4c9ed2cc14adf2192/courseD_farmer_conditionals8.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"Notice that you need to repeat the `while path ahead`, `while there is a hole` code six times.\",\"hint_id\":\"courseD_farmer_conditionals8_c\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/5b0b7d391cc30565d486afbd3f936397/courseD_farmer_conditionals8.mp3\"}]",
30
+ "instructions_important": "false",
31
+ "ideal": "7",
32
+ "long_instructions": "**Challenge:** Fill all of these holes using as few blocks as possible. ",
33
+ "parent_level_id": 21393,
34
+ "name_suffix": "_2025",
35
+ "disable_procedure_autopopulate": "false",
36
+ "top_level_procedure_autopopulate": "false",
37
+ "hide_share_and_remix": "false",
38
+ "disable_if_else_editing": "false",
39
+ "show_type_hints": "false",
40
+ "shape_shift": "false",
41
+ "preload_asset_list": null
42
+ },
43
+ "published": true,
44
+ "notes": "",
45
+ "audit_log": "[{\"changed_at\":\"2025-04-14T15:40:47.540+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while8_2024\\\"\"],\"cloned_from\":\"courseD_farmer_while8_2024\"}]",
46
+ "level_concept_difficulty": {
47
+ "sequencing": 3,
48
+ "repeat_loops": 5,
49
+ "repeat_until_while": 4
50
+ }
51
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2023-03-14T20:38:47.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":1},{\"tileType\":2},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":0}]]",
9
+ "short_instructions": "Flatten all of these piles using as few blocks as possible. ",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "3",
26
+ "step_mode": "1",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "authored_hints": "[]",
30
+ "instructions_important": "false",
31
+ "ideal": "6",
32
+ "hide_share_and_remix": "false",
33
+ "disable_if_else_editing": "false",
34
+ "shape_shift": "false",
35
+ "disable_procedure_autopopulate": "false",
36
+ "parent_level_id": 21394,
37
+ "name_suffix": "_2023",
38
+ "top_level_procedure_autopopulate": "false",
39
+ "show_type_hints": "false",
40
+ "preload_asset_list": null
41
+ },
42
+ "published": true,
43
+ "notes": "",
44
+ "audit_log": "[{\"changed_at\":\"2023-03-14T20:38:47.492+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while92022\\\"\"],\"cloned_from\":\"courseD_farmer_while92022\"}]",
45
+ "level_concept_difficulty": {
46
+ "sequencing": 3,
47
+ "repeat_loops": 5,
48
+ "repeat_until_while": 3
49
+ }
50
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2024-04-03T21:28:04.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":1},{\"tileType\":2},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":0}]]",
9
+ "short_instructions": "Flatten all of these piles using as few blocks as possible. ",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "3",
26
+ "step_mode": "1",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "authored_hints": "[]",
30
+ "instructions_important": "false",
31
+ "ideal": "6",
32
+ "hide_share_and_remix": "false",
33
+ "disable_if_else_editing": "false",
34
+ "shape_shift": "false",
35
+ "disable_procedure_autopopulate": "false",
36
+ "parent_level_id": 21394,
37
+ "name_suffix": "_2024",
38
+ "top_level_procedure_autopopulate": "false",
39
+ "show_type_hints": "false",
40
+ "preload_asset_list": null
41
+ },
42
+ "published": true,
43
+ "notes": "",
44
+ "audit_log": "[{\"changed_at\":\"2024-04-03T21:28:04.400+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while9_2023\\\"\"],\"cloned_from\":\"courseD_farmer_while9_2023\"}]",
45
+ "level_concept_difficulty": {
46
+ "sequencing": 3,
47
+ "repeat_loops": 5,
48
+ "repeat_until_while": 3
49
+ }
50
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2025-04-14T15:40:47.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":1},{\"tileType\":2},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":1,\"range\":1},{\"tileType\":0}]]",
9
+ "short_instructions": "Flatten all of these piles using as few blocks as possible. ",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "3",
26
+ "step_mode": "1",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "authored_hints": "[]",
30
+ "instructions_important": "false",
31
+ "ideal": "6",
32
+ "hide_share_and_remix": "false",
33
+ "disable_if_else_editing": "false",
34
+ "shape_shift": "false",
35
+ "disable_procedure_autopopulate": "false",
36
+ "parent_level_id": 21394,
37
+ "name_suffix": "_2025",
38
+ "top_level_procedure_autopopulate": "false",
39
+ "show_type_hints": "false",
40
+ "preload_asset_list": null
41
+ },
42
+ "published": true,
43
+ "notes": "",
44
+ "audit_log": "[{\"changed_at\":\"2025-04-14T15:40:47.839+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while9_2024\\\"\"],\"cloned_from\":\"courseD_farmer_while9_2024\"}]",
45
+ "level_concept_difficulty": {
46
+ "sequencing": 3,
47
+ "repeat_loops": 5,
48
+ "repeat_until_while": 3
49
+ }
50
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "game_id": 25,
3
+ "created_at": "2023-03-14T20:38:49.000Z",
4
+ "level_num": "custom",
5
+ "user_id": 302,
6
+ "properties": {
7
+ "skin": "farmer",
8
+ "serialized_maze": "[[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0}],[{\"tileType\":2},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":2,\"range\":4},{\"tileType\":1}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1,\"value\":-5,\"range\":-4},{\"tileType\":1},{\"tileType\":1,\"value\":-1,\"range\":3},{\"tileType\":1},{\"tileType\":0},{\"tileType\":1},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":1},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":0}],[{\"tileType\":1},{\"tileType\":1,\"value\":2,\"range\":3},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1},{\"tileType\":1,\"value\":-2,\"range\":-1},{\"tileType\":0}],[{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":0},{\"tileType\":1},{\"tileType\":0}]]",
9
+ "short_instructions": "Fill all of the holes and remove all of the piles.",
10
+ "is_k1": "false",
11
+ "skip_instructions_popup": "false",
12
+ "never_autoplay_video": "false",
13
+ "disable_param_editing": "true",
14
+ "disable_variable_editing": "false",
15
+ "use_modal_function_editor": "false",
16
+ "use_contract_editor": "false",
17
+ "contract_highlight": "false",
18
+ "contract_collapse": "false",
19
+ "examples_highlight": "false",
20
+ "examples_collapse": "false",
21
+ "examples_required": "false",
22
+ "definition_highlight": "false",
23
+ "definition_collapse": "false",
24
+ "disable_examples": "false",
25
+ "start_direction": "1",
26
+ "step_mode": "1",
27
+ "flower_type": "redWithNectar",
28
+ "fast_get_nectar_animation": "false",
29
+ "authored_hints": "[{\"hint_class\":\"content\",\"hint_markdown\":\"Each hole or pile is located one space **backward** from the end of the path.\",\"hint_id\":\"courseD_farmer_while_challenge1_a\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/44f65ef437cd0363ca118ed888eaa904/courseD_farmer_while_challenge1.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"If you use a `while` loop, you can tell the farmer to remove a pile or fill a hole, even if one isn't there. That means you can program her to remove any dirt or fill any hole, no matter where she is.\",\"hint_id\":\"courseD_farmer_while_challenge1_b\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/4941ed0513033f45b936522dff9d8a93/courseD_farmer_while_challenge1.mp3\"},{\"hint_class\":\"content\",\"hint_markdown\":\"It is possible to solve this without using any `repeat` loops. To do this, you will need to use four `while` loops.\",\"hint_id\":\"courseD_farmer_conditionals8_c\",\"hint_type\":\"general\",\"tts_url\":\"https://tts.code.org/sharon22k/180/100/63d753bc69863993bef4b12d0375669b/courseD_farmer_while_challenge1.mp3\"}]",
30
+ "instructions_important": "false",
31
+ "ideal": "10",
32
+ "long_instructions": "Fill all of the holes and remove all of the piles.",
33
+ "hide_share_and_remix": "false",
34
+ "disable_if_else_editing": "false",
35
+ "step_speed": "1",
36
+ "disable_procedure_autopopulate": "false",
37
+ "shape_shift": "false",
38
+ "parent_level_id": 21398,
39
+ "name_suffix": "_2023",
40
+ "preload_asset_list": null
41
+ },
42
+ "published": true,
43
+ "notes": "",
44
+ "audit_log": "[{\"changed_at\":\"2023-03-14T20:38:49.947+00:00\",\"changed\":[\"cloned from \\\"courseD_farmer_while_challenge12022\\\"\"],\"cloned_from\":\"courseD_farmer_while_challenge12022\"}]",
45
+ "level_concept_difficulty": {
46
+ "sequencing": 3,
47
+ "repeat_loops": 5,
48
+ "repeat_until_while": 5
49
+ }
50
+ }