<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">I've almost managed to create mc-solvable as the book wants it. I originally designed it to take a list of states, and I changed it to accept a list of states, list of(listof states), or a single state. I can get it to produce true for states that have a solution, but I am unsure how exactly to make it create a false output. I have defined and tested the following states:<br><br>(define state1'((0 0)right(3 3)))<br>(define state2'((1 0)right(2 3)))<br>(define state3'((0 1)right(3 2)))<br>(define state4'((2 0)right(1 3)))<br><br>(mc-solvable state1)<br>(mc-solvable state2)<br>(mc-solvable state4)<br>all three of these input states produce true in a negligible amount of time.<br><br>but (mc-solvable state3) seems to loop and never find an answer. I believe I haven't found what exactly should produce false.<br><br>It seems simple to think that if it reaches an
 empty list for next possible moves, it should produce false, but will this ever occur?<br><br>Using this code I've created what I believe will be a working mc-solution, I simply need to be able to produce false from mc-solvable.<br><br>Thanks for the help I will take what you said into consideration while I try to find the solution.<br><br>--- On <b>Tue, 11/30/10, Matthias Felleisen <i>&lt;matthias@ccs.neu.edu&gt;</i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Matthias Felleisen &lt;matthias@ccs.neu.edu&gt;<br>Subject: Re: [racket] Missionaries and cannibals<br>To: "Ken Hegeland" &lt;hegek87@yahoo.com&gt;<br>Cc: users@lists.racket-lang.org<br>Date: Tuesday, November 30, 2010, 3:19 AM<br><br><div class="plainMail"><br>1. Your sketch sounds about right. The problem is probably sticking to the discipline of turning it into code. <br><br>2. The infinite loop is troubling -- but
 looking at your code is the wrong thing. The goal is to empower yourself so that you can do such things on your own w/o help from others. <br><br>Have you thought thru why the algorithm should terminate (step 7 of the gen-rec design recipe)? <br>If so, have you checked your program to make sure it adheres to your reasoning? <br><br>3. You wrote "m thinking that the goal is to define mc-solvable? and use it in mc-solution sort of like the backtracking algorithm for finding-route." That's about right. In a sense, the MC problem generates a graph and the algorithm searches the graph for feasible routes from the initial state<br><br>&nbsp; xxx | &lt;&gt;&nbsp; &nbsp; &nbsp; &nbsp; |<br>&nbsp; ooo |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<br><br>to the final state: <br><br>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;|&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&lt;&gt;| xxx <br>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 &nbsp; | ooo<br><br>-- Matthias<br><br></div></blockquote></td></tr></table><br>