Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun isOut(X)
- (cond
- ((and (< 0 (car X))
- (> MAXCOR (car X))
- (< 0 (cdr X)) (> MAXCOR (cdr X))) T)
- (T nil)
- )
- )
- (defun isVisited(X Y)
- (cond
- ((null X) nil)
- ((null Y) nil)
- ((and (= (car X)
- (caar Y)) (= (cdr X)
- (cdar Y))) T)
- (T (isVisited X
- (cdr Y)))
- )
- )
- (defun isCorr(From Dest)
- (cond
- ((equal From Dest) T)
- (T nil)
- )
- )
- (defun find_path(From Visited Dest);
- (cond
- ((and (< 0 (length result))
- (< (length result)
- (length (cons from visited)))) nil)
- ((or (isVisited From Visited)
- (Null (isOut From))) nil)
- ((isCorr From Dest)
- (cond
- ((> 1 (length result))
- (setq result (cons from visited)) nil)
- ((> (length result)
- (length (cons from visited)))
- (setq result (cons from visited)) nil)
- (T nil)
- )
- )
- (T
- (or
- (find_path (cons (+ (car From) 1)
- (+ (cdr From) 2)) (cons From Visited) Dest)
- (find_path (cons (+ (car From) 1)
- (- (cdr From) 2)) (cons From Visited) Dest)
- (find_path (cons (- (car From) 1)
- (+ (cdr From) 2)) (cons From Visited) Dest)
- (find_path (cons (- (car From) 1)
- (- (cdr From) 2)) (cons From Visited) Dest)
- (find_path (cons (+ (car From) 2)
- (+ (cdr From) 1)) (cons From Visited) Dest)
- (find_path (cons (+ (car From) 2)
- (- (cdr From) 1)) (cons From Visited) Dest)
- (find_path (cons (- (car From) 2)
- (+ (cdr From) 1)) (cons From Visited) Dest)
- (find_path (cons (- (car From) 2)
- (- (cdr From) 1)) (cons From Visited) Dest)
- )
- )
- )
- )
- (defun path(From Visited Dest)
- (setq result nil)
- (find_path From Visited Dest)
- (prnLS result)
- (princ "Решение надйдено за ")
- (princ (- (length result) 1))(princ " шага(ов)")
- )
- (defun prnLS(list)
- (cond
- ((null list) 0)
- (t
- (prnls (cdr list))
- (print (car list))
- )
- )
- )
- (defun sol(From To SZ)
- (setq MAXCOR (+ SZ 1))
- (cond
- ((and (isOut From) (isOut To))
- (path From '() To) (princ "\n"))
- )
- )
Add Comment
Please, Sign In to add comment