hi , first of all im not a native english speaker
i wanna know ho to implement a labyrinth in lisp?
think u
labyrinth
Re: labyrinth
A simple labyrinth (maze) like this:
could be implemented as a 2-dimensional array containing lists of direction-keywords:
to find out if it is possible to move from a given field in a given direction you could use a function like this:
Is this what you wanted?
- edgar
Code: Select all
north
+-----------+---+
| | |
| +-------+ | Lisp direction-keywords
| | |
| + +-------+ :n = north
w | | | e
e | +---+ + | a :s = south
s | | | | s
t | +---+---+ | t :e = east
| | |
+---+ | + | :w = west
| | | |
| +---+ | |
| | |
+-----------+---+
south
Code: Select all
(defparameter *maze*
(make-array '(7 4) :initial-contents
'(((:s :e) (:e :w) (:w) (:s))
((:n :s) (:s :e) (:e :w) (:n :w))
((:n :s :e) (:n :w) (:s :e) (:s :w))
((:n :s) (:e) (:n :w) (:n :s))
((:n :e) (:s :w) (:s :e) (:n :s :w))
((:s :e) (:n :w) (:n :s) (:n :s))
((:n :e) (:e :w) (:n :w) (:n)))))
Code: Select all
(defun move-possible-p (y x direction-keyword)
(find direction-keyword (aref *maze* y x)))
- edgar
Re: labyrinth
You might take a look at: http://rosettacode.org/wiki/Maze_generation#Common_Lisp and http://rosettacode.org/wiki/Maze_solving
- Alex
- Alex