top | item 4122724

QBasic's Gorillas in coffescript

77 points| despo | 13 years ago |gorillas.heroku.com | reply

35 comments

order
[+] ef4|13 years ago|reply
I can vividly remember making my first code edit ever when I increased the blast radius in gorillas.bas. Nuclear bananas!

I've been hooked on software ever since.

[+] furyofantares|13 years ago|reply
Same.

I wonder what the barrier is like for kids these days to make their first code edit, and how likely it is to happen without any intention of learning to program. All these walled gardens may at times contribute to great products but so much of my personal development came from tinkering on systems that not only allowed but invited such behavior that I wonder what is being lost.

[+] theootz|13 years ago|reply
Very cool to see that this awesome game was this first foray into programming for others, as it was for me :)
[+] seigenblues|13 years ago|reply
seconded! I think i changed the wind variable.

I remember printing out the whole listing on our dot-matrix printer and unfolding it across the living room. I might've been 9 or 10.

[+] jaredsohn|13 years ago|reply
I was hoping for the iconic opening and sound effects. (http://www.youtube.com/watch?v=UDc3ZEKl-Wc)

Some more interesting information on Gorrilas (from the Wikipedia page: http://en.wikipedia.org/wiki/Gorillas_(video_game) )

* It was actually created by IBM

* Other games included with QBASIC include Nibbles (snake), Money (a financial calculator), and REMLINE (removes line numbers from old BASIC programs.)

* The BASIC source code is linked to from the wikipedia page

* Another implementation can be found here: http://zefonseca.com/gorillasjs/. It lets you play against an AI, but loses some nostalgia since the graphics are different.

[+] virmundi|13 years ago|reply
Kinda fun. I thought the original made noise and allowed for a monkey to drill through a building with a series of bananas. When I tried to do that, the banana didn't go any farther than the previous banana hole.
[+] aurelianito|13 years ago|reply
When I tried it on Google Chrome, it did not show the gorillas on the first banana throw.
[+] schrijver|13 years ago|reply
I had that as well (Ubuntu/12.04 Chromium/18.0.1025.151)
[+] mseepgood|13 years ago|reply
The sun doesn't make a funny face when the banana flies through. And where's the wind indicator?
[+] despo|13 years ago|reply
Thanks for the feedback, these are some of the things I forgot to add.
[+] nivertech|13 years ago|reply
I remember it - grandfather of AngryBirds
[+] sashahart|13 years ago|reply
I think it's more like a descendant of Artillery and a sibling of Scorched Earth and Worms.
[+] 6ren|13 years ago|reply
Question: when looking at code on github, how do you know which holds the main guts of the code? Every time, I have to laboriously search around (I guess, maybe, if you know sinatra/ruby/rails, you'll know the convention for what each top-level directory contains).

I keep thinking that the text alongside each file/directory on github are comments describing what's in them - but of course, git doesn't support that. They are just the most recent commit.

[+] primatology|13 years ago|reply
Unless you know the project's or framework's conventions, there's always a fair bit of poking around involved.

Folder names are often descriptive enough, though. "docs" is documentation, "lib" usually contains third-party libraries, "bin" contains compiled binaries, "src" often contains the code, and "assets" (often "public" for web-based projects) contains static images and stylesheets.

Now in the case there's no obvious "src" folder. But you know "docs" is documentation, and "lib" and "public" probably contain third-party libraries and images, so "views" is the best place to start.

[+] magicseth|13 years ago|reply
If you click on the commits tab, you can see which files have had the most activity. That should at least put you in the right place so you can ignore configuration files etc...
[+] dhughes|13 years ago|reply
Loved this game it inspired me but programming on an Atari 600xl sucked many hours spent typing out BASIC from Family Computing magazine only to get "Syntax error".

I got a cassette external storage drive for Christmas one year then I could save my mistakes. Thirty years later I'm still bummed I couldn't get the lander program to work, it landed on a green mesh surface.

[+] alanh|13 years ago|reply
Freezes when you hit enter without filling out a velocity (presumably also with a value of 0).

Someone mentioned a bug when you hit enter while enjoying victory. It makes me think that perhaps a mini state machine would be apropros. Perhaps overkill here, but it’s a great, clean, explicit way to think about and control states.

[+] Graphon|13 years ago|reply
Thanks for that, that was fun.

Who here coded a solver into the game that used the quadratic formula? I tied it to a particular key and it would momentarily, almost imperceptibly flash a correct solution on the page after I selected an angle. heh heh.

[+] TazeTSchnitzel|13 years ago|reply
I'm currently porting an imperative, procedural Java game to HTML5 with CoffeeScript. It is surprisingly nice to work with for this kind of thing, especially since you can omit brackets round function param lists.
[+] leke|13 years ago|reply
QBasic was my first language on the PC (and this was back in 2002!!!).
[+] bbayer|13 years ago|reply
While gorilla enjoying victory, if you press enter you will have three gorillas on next round. Tested with Chrome.

BTW it took me to my childhood.

[+] petitmiam|13 years ago|reply
In grade 5, one of the perks of arriving early to school was getting to play Gorillas before class.

Can't believe I'd forgotten about it.

[+] alanh|13 years ago|reply
Freezes when you hit enter without filling out a velocity (presumably also with a value of 0).
[+] leke|13 years ago|reply
Angle: 90

Velocity: 90

[+] buster|13 years ago|reply
Awesome, i loved that (more as learning material though) :D
[+] zargath|13 years ago|reply
why bananas, I thought ms monkeys threw chairs ? :-)