Asteroids in under 600 lines of Common Lisp (uses SBCL and SDL)
github.com
github.com
Some of the design decisions are discussed in detail at http://ideolalia.com/creating-a-simple-game-in-clojure
Not to turn this into a design review, but using EQ to test for 0 seems like it's asking for trouble, and it looks like that * has only one argument.
So I wouldn't expect it to contain any particularly awesome lisp-isms. My first read made me think it was using multiple-dispatch, but it isn't doing so in a way that wouldn't also be possible in a language with overloading, as no more than 1 parameter is ambiguously typed at function call time.
If emacs + slime is to lisp what eclipse is to java, then I think that is what the GP was alluding to.
If you can find one Lisp tutorial that mentions only Vim or even shows Vim and Emacs as competing setups I would be genuinely surprised.
"There are 4 parentheses at the end of that call to cons. How do Lisp programmers deal with this? They don't. You could add or subtract a right paren from that expression and most wouldn't notice. Lisp programmers don't count parens. They read code by indentation, not parens, and when writing code they let the editor match parens (use :set sm in vi, M-x lisp-mode in Emacs)."
For vim users, the two choices are vim+slimv and emacs+evil. I find evil to be closer to vim than slimv is to a good slime experience, but that can change. Also, if you have any vim plugins that you really depend on then slimv probably edges out evil.
On the other hand I started out several years ago with viper plus a bunch of hand-coded elisp functions to use my most commonly-used vim commands, so we've come a long way.
It's really not elegant or special code at all, though, just something I used to learn some more about Lisp.
Lisp has this reputation within the hacker community, and I'd love to hear some impressions from people who are new to it.
Am I missing something here?
It's just a fun project I did to learn a bit of CL. I translated the code from a Python game, so it's not in pure functional style. Now that you mention it, though, I feel like I should try that.
it's a nice project, it's free, it's modern, it works, it's an interactive-graphic-non-boring thing, it's a game!
lisp needs more of this.
party's open: more functional, macro wiser and skinnier ones are welcome.
vim should be welcome too as I run ASTeroids fine under vim+slimv (just like the terminal) while under emacs+slime it doesn't display some white line segments here and there... (same sbcl for all)
last thing, I scored 3432 (level 11) with the first coin...;)
Programmers Those who use C = C Programmers. Scheme = Scheme Programmers. Common Lisp = Common Lisp Programmers. Clojure = Clojure Programmers.
Programmers Who use Clojure != Common Lisp Programmers.
So Please, please stop posting about Clojure in Common Lisp Posts.
I don't want Clojure solution for Common Lisp problem.