All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Algorithms
Unbounded Maze (Posted on 2008-01-18) Difficulty: 3 of 5
A programmable robotic mouse is placed at an intersection on a square grid, the borders of which are extendable as needed.

From its initial location the mouse moves one cell forward. It turns right with its next move incrementing by 1.

This incremental process continues up to a certain constraint whereby the mouse resumes the process with a move of one space until that constraint is met again; continue this process until you either return to your starting position or you evidently will never return.

What generalisations can be made about how variations of the value of the constraint affect the path forced upon the mouse?

M

Note:It will be necessary to test a range of constraining values.

See The Solution Submitted by brianjn    
Rating: 4.0000 (1 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
re: Revision | Comment 16 of 19 |
(In reply to Revision by brianjn)

The following tweaking of brianjn's program uses SCREEN 12 instead of SCREEN 9 for a more square view (each increment of x is the same size on the screen as an increment of y), as the 640 x 480 pixels is the 4:3 ratio of a conventional screen. It necessitated replacing the second parameter of the SCREEN command with a PAINT command after the CLS.  Also, due to the larger vertical number of pixels, L could be increased to 7 while keeping the multiple-of-4 values still in range.

 

And of course these won't work under Windows Vista, which has dropped support for full-screen DOS graphics.

BTW, the mouse is turning left, rather than right, in this program.

DECLARE SUB startpos ()
DECLARE SUB plot ()
DECLARE SUB Keyin ()
DECLARE SUB path ()
DECLARE SUB star ()

DIM SHARED move  'counts steps
DIM SHARED a     'For..Next label
DIM SHARED f     'For..Next label
DIM SHARED L     'sides of polygon
                 'Since Rt angle turns, L=4
DIM SHARED s     'For..Next label
DIM SHARED v     'Maximum steps (move)
                 'before iteration
DIM SHARED z     'Determines move length
DIM SHARED x     'horizontal coordinate
DIM SHARED y     'vertical coordinate
DIM SHARED gr    'mod value of or$ input
DIM SHARED or$
 
CLS
SCREEN 12
COLOR 15

CLS
PAINT (1, 1), 9
PRINT "No. from 1 to 20",
INPUT or$
IF or$ <> "*" THEN
     startpos
     plot
END IF
Keyin      'holds screen display

SUB Keyin
DO
LOOP WHILE INKEY$ <> CHR$(13)
END SUB

SUB path
FOR a = 1 TO s
  SELECT CASE move       'this is C equiv. of switch
  CASE 1           'up
        LINE (x, y)-(x, y - z), 7
        y = y - z
  CASE 2           'left
        LINE (x, y)-(x - z, y), 7
        x = x - z
  CASE 3           'down
        LINE (x, y)-(x, y + z), 7
        y = y + z
  CASE 4
        LINE (x, y)-(x + z, y), 7
        x = x + z
  END SELECT
  star
NEXT a
END SUB

SUB plot
move = 1
FOR f = 1 TO L
   FOR s = 1 TO v   'v determines the shape
     path
     move = move + 1
     IF move = 5 THEN move = 1
   NEXT s
NEXT f
END SUB

SUB star
LINE (x - 1, y + 1)-(x + 1, y - 1), 14
LINE (x - 1, y - 1)-(x + 1, y + 1), 14
END SUB

SUB startpos
v = VAL(or$)
z = 18         'param for step size
z = INT(6 * z / v)   '6 only reduces
                     'initial z value
                     'for convenience
x = 320        'centre of screen values
y = 240        'startpos may be offset.
gr = (v / 4 - INT(v / 4)) * 4
       'determines the "mod" value
       'of the spiral category
L = 7
IF v = 1 THEN gr = 1
IF gr = 0 THEN y = 60: x = 100
IF gr = 1 THEN y = 240: x = 350
IF gr = 2 THEN L = 2
IF gr = 3 THEN x = 300: y = 150
END SUB

 

Edited on January 26, 2008, 11:49 am
  Posted by Charlie on 2008-01-26 11:47:26

Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (5)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2017 by Animus Pactum Consulting. All rights reserved. Privacy Information