Excellent - cheered me up no end whilst migrating (read re-installing) the 60-odd virtual machines from VMware ESXi to XenServer (it is currently 1.05AM in the UK so desperately needed a cheer)
Thanks for sharing the source - I fully expect to learn a lot after reading it - keep up the good work :) On 18 August 2011 09:08, Matthew Gilliard <matthew.gilli...@gmail.com>wrote: > > Very cool! Now the logic of pacman is in a form I can easily read :-) > I assume you are referring to the gameinternals post not my code ! > > I do not know why it only works in Chrome. The error "too much > recursion" is confusing. It happens before the game is rendered so I > suspect it's in the code which parses the board. The only explicit > recursion I do is my implementation of (range) here: > https://github.com/mjg123/pacman/blob/gh-pages/src/pacman/board.cljs > - but that uses (recur). There's also the nested for loop in that > same file, I have no idea how (for) works internally. The gameloop > uses a javascript timer-with-callback to call itself so that won't > consume stack space. Another thing is that it seems to be machine > dependent - it works fine in ff6 on my work pc but not on my (much) > older home PC. > > There are also rendering bugs in Firefox which seem to be caused by > SVG arc-segments with negative radius - I assume this is just an > implementation difference in a grey area of the spec. > > If there's interest I can try to pare down the code to a minimal case > which throws the "too much recursion" error? > > mg > > > > On Thu, Aug 18, 2011 at 8:04 AM, Sam Aaron <samaa...@gmail.com> wrote: > > Very cool! Now the logic of pacman is in a form I can easily read :-) > > > > Out of interest, do you know why it only works in Chrome? Doesn't the > closure library do any work to shield you from from the browser differences, > or is it simply a performance issue with the Chrome js engine the only one > operating fast enough to smoothly render the game? > > > > Sam > > > > --- > > http://sam.aaron.name > > > > On 17 Aug 2011, at 23:00, Matthew Gilliard wrote: > > > >> I've been playing around writing a fun little ClojureScript project - > >> it's a bit different, so I thought you might like to see it: > >> > >> http://mjg123.github.com/pacman/pacman.html > >> > >> As I was feeling my way quite blindly through ClojureScript and > >> gClosure I have let the code get into a bit of a mess and I don't > >> think I'll really work on it much more. I have learned an awful lot > >> though (which was the main objective) - my main lessons are: > >> > >> - ClojureScript is awesome. The performance and stability of it are > >> really astounding. Really great work guys. > >> - Debugging a ClojureScript app is hard. I never figured out how to > >> get js/console to work. My best solution was to compile & run very > >> often, so that errors were caught quickly. Better yet would have been > >> thorough testing ;) > >> > >> - it *is* possible to write a game with no mutable state (well, I use > >> an atom to hold the most-recently-pressed key, but apart from that... > >> The state-of-the-world datastructure is immutable) > >> > >> - Some functions missing from ClojureScript which surprised me: range, > int > >> - Some functions behave differently between Clojure and ClojureScript > >> (due to underlying platform differences): mod > >> > >> - Testing is very important. The gClosure jsunit stuff looks nice > >> but I'd love a midje-like API for it. > >> > >> Browser-compatibility: Chrome - OK, Firefox 6 - sometimes crashes > >> with "too much recursion", IE/Safari - Forget it. > >> > >> Happy to answer any questions, otherwise I'll be over here hacking > >> some Clojure :) > >> > >> Matthew > >> > >> -- > >> 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 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 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 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