<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=321134&amp;view=findpost&amp;p=2779469</guid>
        <pubDate>Wed, 15 Dec 2010 07:48:41 +0000</pubDate>
        <title>Lisp</title>
        <link>https://forum.sources.ru/index.php?showtopic=321134&amp;view=findpost&amp;p=2779469</link>
        <description><![CDATA[Yulesik: Здравствуйте. Очень прошу помощи в нахождении ошибки в программе. Имеет такая задача:<br>
Три рыцаря, каждый в сопровождении оруженосца, съехались на берегу реки, намереваясь переправиться на другую сторону. Им удалось найти маленькую двухместную лодку, и переправа произошла бы легко, ведь лошади могли перебраться вплавь. Но одно затруднение чуть было не помешало этому предприятию. Все оруженосцы, словно сговорившись, наотрез отказались оставаться в обществе незнакомых рыцарей без своих хозяев. Не помогли ни уговоры, ни угрозы. Трусливые оруженосцы упорно стояли на своём. И всё же переправа состоялась, все шесть человек благополучно перебрались на другой берег с помощью одной двухместной лодки. При этом соблюдалось условие, на котором настаивали оруженосцы. Как это было сделано?<br>
Программу делала по люгеру. После запуска функции solve решения не находит (nil). Очень расчитываю на Вашу помощь, заранее спасибо&#33;<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">; &nbsp;Функция которая определят принадлежность элемента списку</div><div class="code_line">&nbsp;</div><div class="code_line">(defun member-l (x l) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(cond ((null l) nil) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;((equal x (car l)) t) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t (member-l x (cdr l)))</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">; Функции для задания состояний для каждого персонажа</div><div class="code_line">&nbsp;</div><div class="code_line">(defun make-state (r1 r2 r3 o1 o2 o3 l) (list r1 r2 r3 o1 o2 o3 l)) </div><div class="code_line">&nbsp;</div><div class="code_line">(defun r1-side (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(nth 0 state)) </div><div class="code_line">&nbsp;</div><div class="code_line">(defun r2-side (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(nth 1 state)) </div><div class="code_line">&nbsp;</div><div class="code_line">(defun r3-side (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(nth 2 state)) </div><div class="code_line">&nbsp;</div><div class="code_line">(defun o1-side (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(nth 3 state)) </div><div class="code_line">&nbsp;</div><div class="code_line">(defun o2-side (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(nth 4 state)) </div><div class="code_line">&nbsp;</div><div class="code_line">(defun o3-side (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(nth 5 state)) </div><div class="code_line">&nbsp;</div><div class="code_line">(defun l-side (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(nth 6 state)) </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">; &nbsp;Функция которая задает состояние противоположное текущему </div><div class="code_line">&nbsp;</div><div class="code_line">(defun opposite (side) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(cond ((equal side &#39;e) &#39;w) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;((equal side &#39;w) &#39;e))) &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">; &nbsp; Функция которая проверяет безопасноть текущего состояния</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">(defun safe (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(cond ((and (equal (r1-side state) (o2-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(not (equal (r2-side state) (o2-side state)))) nil) </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;((and (equal (r1-side state) (o3-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(not (equal (r3-side state) (o3-side state)))) nil) </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;((and (equal (r2-side state) (o1-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(not (equal (r1-side state) (o1-side state)))) nil)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;((and (equal (r2-side state) (o3-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(not (equal (r3-side state) (o3-side state)))) nil)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;((and (equal (r3-side state) (o1-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(not (equal (r1-side state) (o1-side state)))) nil)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;((and (equal (r3-side state) (o2-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(not (equal (r2-side state) (o2-side state)))) nil)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;(t state)) &nbsp;) </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">; &nbsp;Функции которые задают состояния при перемещении персонажей</div><div class="code_line">; сами себя перевозят</div><div class="code_line">&nbsp;</div><div class="code_line">(defun r1-take-self (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(cond ((equal (r1-side state) (l-side state))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(safe (make-state (opposite (r1-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r2-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r3-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o1-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o2-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">(defun r2-take-self (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(cond ((equal (r2-side state) (l-side state))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(safe (make-state (opposite (r2-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r1-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r3-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o1-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o2-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">(defun r3-take-self (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(cond ((equal (r3-side state) (l-side state))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(safe (make-state (opposite (r3-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r2-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r1-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o1-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o2-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">(defun o1-take-self (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(cond ((equal (o1-side state) (l-side state))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(safe (make-state (opposite (o1-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r2-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r3-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r1-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o2-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">(defun o2-take-self (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(cond ((equal (o2-side state) (l-side state))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(safe (make-state (opposite (o2-side state)) </div><div class="code_line">(r2-side state) </div><div class="code_line">(r3-side state) </div><div class="code_line">(o1-side state)</div><div class="code_line">(r1-side state)</div><div class="code_line">(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">(defun o3-take-self (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp;(cond ((equal (o3-side state) (l-side state))</div><div class="code_line">(safe (make-state (opposite (o3-side state)) </div><div class="code_line">(r2-side state) </div><div class="code_line">(r3-side state) </div><div class="code_line">(o1-side state)</div><div class="code_line">(o2-side state)</div><div class="code_line">(r1-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">(defun r1-take-r2 (state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(cond (( and(equal (r1-side state) (r2-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (r1-side state) (l-side state)))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(safe (make-state (opposite (r1-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite(r2-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(r3-side state) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o1-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o2-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">(defun r1-take-r3 (state) </div><div class="code_line">(cond (( and(equal (r1-side state) (r3-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (r1-side state) (l-side state)))</div><div class="code_line">(safe (make-state (opposite (r1-side state)) </div><div class="code_line">(opposite(r3-side state)) </div><div class="code_line">(r2-side state) </div><div class="code_line">(o1-side state)</div><div class="code_line">(o2-side state)</div><div class="code_line">(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">(defun r1-take-o1 (state) </div><div class="code_line">(cond (( and(equal (r1-side state) (o1-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (r1-side state) (l-side state)))</div><div class="code_line">(safe (make-state (opposite (r1-side state)) </div><div class="code_line">(opposite(o1-side state)) </div><div class="code_line">(r3-side state) </div><div class="code_line">(r2-side state)</div><div class="code_line">(o2-side state)</div><div class="code_line">(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">(defun r2-take-r3 (state) </div><div class="code_line">(cond (( and(equal (r2-side state) (r3-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (r2-side state) (l-side state))) </div><div class="code_line">(safe (make-state (opposite (r2-side state)) </div><div class="code_line">(opposite(r3-side state)) </div><div class="code_line">(r1-side state) </div><div class="code_line">(o1-side state)</div><div class="code_line">(o2-side state)</div><div class="code_line">(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">(defun r2-take-o2 (state) </div><div class="code_line">(cond (( and(equal (r2-side state) (o2-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (r2-side state) (l-side state)))</div><div class="code_line">(safe (make-state (opposite (r2-side state)) </div><div class="code_line">(opposite(o2-side state)) </div><div class="code_line">(r1-side state) </div><div class="code_line">(o1-side state)</div><div class="code_line">(r3-side state)</div><div class="code_line">(o3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">(defun r3-take-o3 (state) </div><div class="code_line">(cond (( and(equal (r3-side state) (o3-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (r3-side state) (l-side state))) </div><div class="code_line">(safe (make-state (opposite (r3-side state)) </div><div class="code_line">(opposite(o3-side state)) </div><div class="code_line">(r1-side state) </div><div class="code_line">(o1-side state)</div><div class="code_line">(o2-side state)</div><div class="code_line">(r2-side state)</div><div class="code_line">(l-side state)))) </div><div class="code_line">(t nil)))</div><div class="code_line">&nbsp;</div><div class="code_line">(defun o1-take-o2 (state) </div><div class="code_line">(cond (( and(equal (o1-side state) (o2-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (o1-side state) (l-side state)))</div><div class="code_line">(safe (make-state (opposite (o1-side state)) </div><div class="code_line">(opposite(o2-side state)) </div><div class="code_line">(r1-side state) </div><div class="code_line">(o3-side state)</div><div class="code_line">(r2-side state)</div><div class="code_line">(r3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">(defun o1-take-o3 (state) </div><div class="code_line">(cond (( and(equal (o1-side state) (o3-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (o1-side state) (l-side state))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(safe (make-state (opposite (o1-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite(o3-side state)) </div><div class="code_line">(r1-side state) </div><div class="code_line">(r2-side state)</div><div class="code_line">(o2-side state)</div><div class="code_line">(r3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">(defun o2-take-o3 (state) </div><div class="code_line">(cond (( and(equal (o2-side state) (o3-side state)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(equal (o2-side state) (l-side state)))</div><div class="code_line">(safe (make-state (opposite (o2-side state)) </div><div class="code_line">(opposite(o3-side state)) </div><div class="code_line">(r1-side state) </div><div class="code_line">(o1-side state)</div><div class="code_line">(r2-side state)</div><div class="code_line">(r3-side state)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(opposite (l-side state))))) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(t nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">) &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">; &nbsp; Функция которая обходит в ширину все состояния до текущего до конечного (кроме последнего уровня) при задании списка просмотренных вершин</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">(defun path (state goal been-list)</div><div class="code_line">&nbsp;&nbsp; &nbsp;( cond ((null state) nil)</div><div class="code_line">&nbsp;&nbsp; &nbsp;((equal state goal) (reverse (cons state been-list)))</div><div class="code_line">&nbsp;&nbsp; &nbsp;((not (member-l state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(or </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path (r1-take-self state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path (r2-take-self state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path (r3-take-self state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (o1-take-self state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (o2-take-self state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (o3-take-self state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (r1-take-r2 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (r1-take-r3 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (r1-take-o1 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (r2-take-r3 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (r2-take-o2 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (r3-take-o3 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (o1-take-o2 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (o1-take-o3 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(path &nbsp; (o2-take-o3 state) goal (cons state been-list))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">)</div><div class="code_line">)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">(defun solve (state goal)</div><div class="code_line">&nbsp;&nbsp; &nbsp;(path state goal nil)</div><div class="code_line">)</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Yulesik</author>
        <category>Lisp</category>
      </item>
	
      </channel>
      </rss>
	