Hrmm, I'll give that a try and see what I come up with. Thanks for the pointer about others, that makes sense. ><!
On 04/12/2013, at 7:17 PM, Alex Miller <a...@puredanger.com> wrote: > I would expect others to be either nil or a non-empty seq (never empty) but > empty? will return true on a nil, so that still works. I would have swapped > the cases and used seq as the test. > > However, without really reading this too closely, I'd guess the real problem > is that you want to (apply merge fst others) since others is a seq of maps. > > > On Wednesday, December 4, 2013 10:24:42 AM UTC-6, Sean Chalmers wrote: > Greetings ! > > I'm attempting to implement Othello in Clojure and I've run into a problem > when actually running my game loop. On the first run through, everything > works as expected, the black player can make their move, the board is updated > and everything is awesome. However when the program loops and it is the white > players turn, after they have entered their move the program crashes with the > stacktrace at the bottom of this message.. > > I seem to be having a brain fuzz moment because I can't see how much > application would complete happily the first time through without error, then > when the nearly identical steps are taken for turn two, I seem to have a type > error. The code is here: > https://github.com/mankyKitty/clojure-othello/blob/master/src/othello/core.clj > . I know it's not great, work in progress! :) > > From what I can tell from the ST the error is from my "squares-to-flip" > function but I'm unable to reproduce the results in the repl, and I've yet to > reach the point where I'm adding a print on every second line (though I'm > close). > > I had originally deduced it was the 'merge' call on the times I would have an > empty second argument, hence the 'if' in there but that doesn't appear to > have helped at all. > > I assume it's something I've not anticipated or accounted for with respect to > my loop, but I'm not quite sure.. > > Thanks in advance ! > > --- STACKTRACE --- > > Exception in thread "main" java.lang.ClassCastException: > clojure.lang.PersistentHashMap cannot be cast to java.util.Map$Entry > at clojure.lang.APersistentMap.cons(APersistentMap.java:42) > at clojure.lang.RT.conj(RT.java:562) > at clojure.core$conj.invoke(core.clj:83) > at clojure.core$merge$fn__4275.invoke(core.clj:2684) > at clojure.core$reduce1.invoke(core.clj:896) > at clojure.core$reduce1.invoke(core.clj:887) > at clojure.core$merge.doInvoke(core.clj:2684) > at clojure.lang.RestFn.invoke(RestFn.java:421) > at othello.core$squares_to_flip.invoke(core.clj:186) > at othello.core$game_loop.invoke(core.clj:213) > at othello.core$_main.doInvoke(core.clj:225) > at clojure.lang.RestFn.invoke(RestFn.java:397) > at clojure.lang.Var.invoke(Var.java:411) > at user$eval5$fn__7.invoke(form-init5981136443637675542.clj:1) > at user$eval5.invoke(form-init5981136443637675542.clj:1) > at clojure.lang.Compiler.eval(Compiler.java:6619) > at clojure.lang.Compiler.eval(Compiler.java:6609) > at clojure.lang.Compiler.load(Compiler.java:7064) > at clojure.lang.Compiler.loadFile(Compiler.java:7020) > at clojure.main$load_script.invoke(main.clj:294) > at clojure.main$init_opt.invoke(main.clj:299) > at clojure.main$initialize.invoke(main.clj:327) > at clojure.main$null_opt.invoke(main.clj:362) > at clojure.main$main.doInvoke(main.clj:440) > at clojure.lang.RestFn.invoke(RestFn.java:421) > at clojure.lang.Var.invoke(Var.java:419) > at clojure.lang.AFn.applyToHelper(AFn.java:163) > at clojure.lang.Var.applyTo(Var.java:532) > at clojure.main.main(main.java:37) > > -- > -- > 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 a topic in the Google > Groups "Clojure" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojure/KLHo7zV66Gc/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. -- -- 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/groups/opt_out.