Quick follow up, replacing get-and-make-move with (defn get-and-make-move [board strategy player] board)
Still have the same problem: so the issue is not with that function nor any of the functions it calls (nor the strategies). Beginning to think it's my next-to-play function, which would be weird as, again, it works in the single threaded command line version. On Tuesday, July 15, 2014 6:41:05 AM UTC+1, edw...@kenworthy.info wrote: > > Pretty sure the strategy isn't a problem (random-strategy picks a random > move from all legal moves) and it works in the single-threaded command line > version of the app. > > ditto all-directions which is constant: > > (def ^:constant all-directions > "Defines the array of all possible directions from a square." > [[-1 -1][0 -1][+1 -1] > [-1 0] [+1 0] > [-1 +1][0 +1][+1 +1]]) > > Reasonable suggestions though. > > I think I'll have to create a version of get-and-make-move that just > returns a random board (i.e. is as simple as possible) and see what happens. > > Is there a way to trace into a thread created by (future) ? > > On Tuesday, July 15, 2014 12:57:33 AM UTC+1, Gary Johnson wrote: >> >> Looking at this code without further knowledge of the strategy function, >> my first guess is simply that your strategy function may not be returning a >> result which satisfies the valid-move? and legal-move? predicates thus >> throwing you into an infinite loop. Possibly the printf is being suppressed >> within the swap! operation, but some testing would be required to see if >> this is the case generally. The other obvious potential for a hiccup would >> be if all-directions is somehow growing with each iteration of make-move, >> thus preventing idx from ever exceeding its length. Not knowing what is >> going on inside all these functions makes this a rather tricky bit of guess >> work at best. Anyway, I'd try running get-move from the repl to see how >> likely it is to get stuck in an infinite loop. >> >> Good luck, >> ~Gary >> > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.