<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://oldwiki.cpcwiki.eu/index.php?action=history&amp;feed=atom&amp;title=Programming%3AMaze_generation</id>
		<title>Programming:Maze generation - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://oldwiki.cpcwiki.eu/index.php?action=history&amp;feed=atom&amp;title=Programming%3AMaze_generation"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:Maze_generation&amp;action=history"/>
		<updated>2026-08-28T14:50:59Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Maze_generation&amp;diff=101750&amp;oldid=prev</id>
		<title>CPM User: Created page with &quot;From Rosetta Code, I was able to translate a [http://rosettacode.org/wiki/Maze_generation#BASIC Maze generation routine from a QB64] for Locomotive BASIC.   The original code...&quot;</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:Maze_generation&amp;diff=101750&amp;oldid=prev"/>
				<updated>2018-05-06T06:34:03Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;From Rosetta Code, I was able to translate a [http://rosettacode.org/wiki/Maze_generation#BASIC Maze generation routine from a QB64] for Locomotive BASIC.   The original code...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;From Rosetta Code, I was able to translate a [http://rosettacode.org/wiki/Maze_generation#BASIC Maze generation routine from a QB64] for Locomotive BASIC. &lt;br /&gt;
&lt;br /&gt;
The original code produced a 40x20 maze and recommended using even numbers for the Width and Height. &lt;br /&gt;
&lt;br /&gt;
I have set it up for MODE 1, 38 x 20 and it actually takes a while to prepare, though it should be useful for creating maze style games as it requires very little information to adjust for MODE 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 MODE 1:DEFINT a-z:INK 0,0:INK 1,9:BORDER 0&lt;br /&gt;
20 LOCATE 14,12:PEN 1:PRINT&amp;quot;Please Wait.&amp;quot;&lt;br /&gt;
30 RANDOMIZE TIME:RANDOMIZE RND&lt;br /&gt;
40 w=38&lt;br /&gt;
50 h=20&lt;br /&gt;
60 DIM m$(w,h)&lt;br /&gt;
70 FOR x=0 TO w&lt;br /&gt;
80 FOR y=0 TO h&lt;br /&gt;
90 m$(x,y)=&amp;quot;#&amp;quot;&lt;br /&gt;
100 NEXT y&lt;br /&gt;
110 NEXT x&lt;br /&gt;
120 cx=INT(RND*(w-1))&lt;br /&gt;
130 cy=INT(RND*(h-1))&lt;br /&gt;
140 IF cx MOD 2=0 THEN cx=cx+1&lt;br /&gt;
150 IF cy MOD 2=0 THEN cy=cy+1&lt;br /&gt;
160 m$(cx,cy) = &amp;quot; &amp;quot;&lt;br /&gt;
170 d=0&lt;br /&gt;
180 WHILE d=0&lt;br /&gt;
190 FOR i=0 TO 99&lt;br /&gt;
200 ox=cx&lt;br /&gt;
210 oy=cy&lt;br /&gt;
220 s=INT(RND*4)+1&lt;br /&gt;
230 ON s GOSUB 410,430,450,470&lt;br /&gt;
240 IF m$(cx,cy)=&amp;quot;#&amp;quot; THEN m$(cx,cy)=&amp;quot; &amp;quot;:m$(INT((cx+ox)/2),INT((cy+oy)/2))=&amp;quot; &amp;quot;&lt;br /&gt;
250 NEXT i&lt;br /&gt;
260 d=1&lt;br /&gt;
270 FOR x=1 TO w-1 STEP 2&lt;br /&gt;
280 FOR y=1 TO h-1 STEP 2&lt;br /&gt;
290 IF m$(x,y)=&amp;quot;#&amp;quot; THEN d=0&lt;br /&gt;
300 NEXT y&lt;br /&gt;
310 NEXT x&lt;br /&gt;
320 WEND&lt;br /&gt;
330 LOCATE 1,1&lt;br /&gt;
340 FOR y=0 TO h&lt;br /&gt;
350 FOR x=0 TO w&lt;br /&gt;
360 PRINT m$(x,y);&lt;br /&gt;
370 NEXT x&lt;br /&gt;
380 PRINT&lt;br /&gt;
390 NEXT y&lt;br /&gt;
400 END&lt;br /&gt;
410 IF cx+2&amp;lt;w THEN cx=cx+2&lt;br /&gt;
420 RETURN&lt;br /&gt;
430 IF cy+2&amp;lt;h THEN cy=cy+2&lt;br /&gt;
440 RETURN&lt;br /&gt;
450 IF cx-2&amp;gt;0 THEN cx=cx-2&lt;br /&gt;
460 RETURN&lt;br /&gt;
470 IF cy-2&amp;gt;0 THEN cy=cy-2&lt;br /&gt;
480 RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>CPM User</name></author>	</entry>

	</feed>