|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
[QUIZ] Hamurabi (#223)-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The three rules of Ruby Quiz: 1. Please do not post any solutions or spoiler discussion for this quiz until 48 hours have elapsed from the time this message was sent. 2. Support Ruby Quiz by submitting ideas and responses as often as you can. 3. Enjoy! Suggestion: A [QUIZ] in the subject of emails about the problem helps everyone on Ruby Talk follow the discussion. Please reply to the original quiz message, if you can. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RSS Feed: http://rubyquiz.strd6.com/quizzes.rss Suggestions?: http://rubyquiz.strd6.com/suggestions -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ## Hamurabi (#223) Boo Rubyists, This week's quiz was submitted by Martin DeMello[1] Back in the microcomputer age, there was a fascinating little game called Hamurabi (no, that isn't a typo - there was an eight character limit). The game mechanics were pretty simple: you were the ruler of a kingdom, and every year you had to decide what proportion of your grain to allocate to planting, and what proportion to feeding the people. The game engine would then set up the formulae, toss in a few random numbers and simulate your crop and population growth. For all its simplicity, though, it was a lot of fun to play, and oddly compulsive. The Wikipedia page[2] links to a couple of implementations in BASIC; pick one and reimplement it in Ruby. Extra credit: if someone can come up with a fun multiplayer version, I'll be impressed :) Have fun! [1]: http://zem.novylen.net [2]: http://en.wikipedia.org/wiki/Hamurabi -- -Daniel http://rubyquiz.strd6.com |
|
|
Re: [QUIZ] Hamurabi (#223)On Oct 31, 2009, at 6:23 PM, Daniel Moore wrote:
> Back in the microcomputer age, there was a fascinating little game > called Hamurabi (no, that isn't a typo - there was an eight character > limit). The game mechanics were pretty simple: you were the ruler of a > kingdom, and every year you had to decide what proportion of your > grain to allocate to planting, and what proportion to feeding the > people. The game engine would then set up the formulae, toss in a few > random numbers and simulate your crop and population growth. For all > its simplicity, though, it was a lot of fun to play, and oddly > compulsive. > > The Wikipedia page[2] links to a couple of implementations in BASIC; > pick one and reimplement it in Ruby. Thanks for a very enjoyable quiz! I wrote a super minimal BASIC interpreter to avoid translating the code. (Yes, I am aware that's insane. I'll seek help.) Ironically, I think supporting that victory FOR loop at the very end was the hardest part. I still have bugs in that. :( James Edward Gray II |
|
|
Re: [QUIZ] Hamurabi (#223)On 2009-11-01, James Edward Gray II <james@...> wrote:
> On Oct 31, 2009, at 6:23 PM, Daniel Moore wrote: >> Back in the microcomputer age, there was a fascinating little game >> called Hamurabi (no, that isn't a typo - there was an eight character >> limit). The game mechanics were pretty simple: you were the ruler of a >> kingdom, and every year you had to decide what proportion of your >> grain to allocate to planting, and what proportion to feeding the >> people. The game engine would then set up the formulae, toss in a few >> random numbers and simulate your crop and population growth. For all >> its simplicity, though, it was a lot of fun to play, and oddly >> compulsive. Oh, man! I remember that. There was one for the econ students at St. Olaf loooong ago, I actually wrote my own from scratch once. In mine, there were also woolen mills (or, in an early version, wollen mills -- I speld ril gud as a kid), and the win condition was to have a given amount of land, plus enough bolts of fabric to make wedding dresses for your population, and enough people that you could have hundreds of happy families. (The question of whether wool was a good choice for a wedding dress was never answered). > I wrote a super minimal BASIC interpreter to avoid translating the > code. (Yes, I am aware that's insane. I'll seek help.) It's a good kind of crazy. -s -- Copyright 2009, all wrongs reversed. Peter Seebach / usenet-nospam@... http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated! |
|
|
Re: [QUIZ] Hamurabi (#223)> I wrote a super minimal BASIC interpreter to avoid translating the > code. (Yes, I am aware that's insane. I'll seek help.) Hah, ingenious! I really didn't want to go about translating that BASIC either, but instead, I was just going to make my own version based on whatever I just read about the game. Making a simple BASIC interpreter is so much cooler though, it should be a ruby quiz in and of itself really (make it a DSL for extra credit :P). BTW, does anybody have any ideas for how a (fun) multiplayer version of Hamurabi would look like? What I was thinking: Add in a model of free markets to set price of land, so there would then be real trading between players. Then a smart player could influence prices through supply, to his opponents' detriment, if he could see the state of their kingdoms. And then there could be all sorts of nice strategies and counter-strategies in the struggle to be the best. Also: quick (say 30 seconds or a minute at most), timed rounds, ending at round ten or so, at which point the winner is announced, and the game is restarted. What do you guys think of that? Sound like any fun? A problem might be finding other players to actually play with live! In which case a slower, non-timed version that emailed you when it was your turn might be more appropriate (and less of a time sucker). - Ehsan _________________________________________________________________ Hotmail: Trusted email with powerful SPAM protection. http://clk.atdmt.com/GBL/go/177141665/direct/01/ |
|
|
Re: [QUIZ] Hamurabi (#223)On Mon, Nov 2, 2009 at 5:29 AM, James Edward Gray II
<james@...> wrote: > > I wrote a super minimal BASIC interpreter to avoid translating the code. > (Yes, I am aware that's insane. I'll seek help.) Wow, I thought translating the code would be fairly simple, but it's a morass of gotos and one-letter variables. I think I'd have written the interpreter a lot quicker :) But now my stubborn side has kicked in and I'm going to finish the translation instead. martin |
|
|
Re: [QUIZ] Hamurabi (#223)BASIC wasn't that bad...
it was horrible :) Just out of curiosity, which BASIC interpreter was the BASIC script you're trying to port written for? 2009/11/2 Martin DeMello <martindemello@...> > On Mon, Nov 2, 2009 at 5:29 AM, James Edward Gray II > <james@...> wrote: > > > > I wrote a super minimal BASIC interpreter to avoid translating the code. > > (Yes, I am aware that's insane. I'll seek help.) > > Wow, I thought translating the code would be fairly simple, but it's a > morass of gotos and one-letter variables. I think I'd have written the > interpreter a lot quicker :) But now my stubborn side has kicked in > and I'm going to finish the translation instead. > > martin > > -- William Kevin Manire Lead Developer Edge Of Nowhere LLC (http://www.edgeofnowherellc.com) (206) 384-5826 |
|
|
Re: [QUIZ] Hamurabi (#223)On Nov 2, 2009, at 2:19 PM, Martin DeMello wrote:
> On Mon, Nov 2, 2009 at 5:29 AM, James Edward Gray II > <james@...> wrote: >> >> I wrote a super minimal BASIC interpreter to avoid translating the >> code. >> (Yes, I am aware that's insane. I'll seek help.) > > Wow, I thought translating the code would be fairly simple, but it's a > morass of gotos and one-letter variables. I think I'd have written the > interpreter a lot quicker :) But now my stubborn side has kicked in > and I'm going to finish the translation instead. Yeah, I'm am looking forward to seeing your translated version so I can tell if my interpreter is even doing the right things. :) James Edward Gray II |
|
|
Re: [QUIZ] Hamurabi (#223)"8k MICROSOFT BASIC", apparently :) It's the one here:
http://www.dunnington.u-net.com/public/basicgames/HMRABI martin On Tue, Nov 3, 2009 at 2:01 AM, William Manire <williamkmanire@...> wrote: > BASIC wasn't that bad... > > it was horrible :) > > Just out of curiosity, which BASIC interpreter was the BASIC script you're > trying to port written for? > > 2009/11/2 Martin DeMello <martindemello@...> > >> On Mon, Nov 2, 2009 at 5:29 AM, James Edward Gray II >> <james@...> wrote: >> > >> > I wrote a super minimal BASIC interpreter to avoid translating the code. >> > (Yes, I am aware that's insane. I'll seek help.) >> >> Wow, I thought translating the code would be fairly simple, but it's a >> morass of gotos and one-letter variables. I think I'd have written the >> interpreter a lot quicker :) But now my stubborn side has kicked in >> and I'm going to finish the translation instead. >> >> martin >> >> > > > -- > William Kevin Manire > Lead Developer > Edge Of Nowhere LLC (http://www.edgeofnowherellc.com) > (206) 384-5826 > |
|
|
Re: [QUIZ] Hamurabi (#223)Wow this looks old, almost like GWBasic.
I would suggest flow charting this thing first, then creating it in Ruby from your chart rather than trying to translate it line for line. 2009/11/2 Martin DeMello <martindemello@...> > "8k MICROSOFT BASIC", apparently :) It's the one here: > http://www.dunnington.u-net.com/public/basicgames/HMRABI > > martin > > On Tue, Nov 3, 2009 at 2:01 AM, William Manire <williamkmanire@...> > wrote: > > BASIC wasn't that bad... > > > > it was horrible :) > > > > Just out of curiosity, which BASIC interpreter was the BASIC script > you're > > trying to port written for? > > > > 2009/11/2 Martin DeMello <martindemello@...> > > > >> On Mon, Nov 2, 2009 at 5:29 AM, James Edward Gray II > >> <james@...> wrote: > >> > > >> > I wrote a super minimal BASIC interpreter to avoid translating the > code. > >> > (Yes, I am aware that's insane. I'll seek help.) > >> > >> Wow, I thought translating the code would be fairly simple, but it's a > >> morass of gotos and one-letter variables. I think I'd have written the > >> interpreter a lot quicker :) But now my stubborn side has kicked in > >> and I'm going to finish the translation instead. > >> > >> martin > >> > >> > > > > > > -- > > William Kevin Manire > > Lead Developer > > Edge Of Nowhere LLC (http://www.edgeofnowherellc.com) > > (206) 384-5826 > > > > -- William Kevin Manire Lead Developer Edge Of Nowhere LLC (http://www.edgeofnowherellc.com) (206) 384-5826 |
|
|
Re: Hamurabi (#223)Sorry I'm new to the list. Is it ok to post solutions at this point
(Nov 1 10:30am to now +48hrs)? On Nov 3, 7:44 am, William Manire <williamkman...@...> wrote: > Wow this looks old, almost like GWBasic. > > I would suggest flow charting this thing first, then creating it in Ruby > from your chart rather than trying to translate it line for line. > > 2009/11/2 Martin DeMello <martindeme...@...> > > > > > > > "8k MICROSOFT BASIC", apparently :) It's the one here: > >http://www.dunnington.u-net.com/public/basicgames/HMRABI > > > martin > > > On Tue, Nov 3, 2009 at 2:01 AM, William Manire <williamkman...@...> > > wrote: > > > BASIC wasn't that bad... > > > > it was horrible :) > > > > Just out of curiosity, which BASIC interpreter was the BASIC script > > you're > > > trying to port written for? > > > > 2009/11/2 Martin DeMello <martindeme...@...> > > > >> On Mon, Nov 2, 2009 at 5:29 AM, James Edward Gray II > > >> <ja...@...> wrote: > > > >> > I wrote a super minimal BASIC interpreter to avoid translating the > > code. > > >> > (Yes, I am aware that's insane. I'll seek help.) > > > >> Wow, I thought translating the code would be fairly simple, but it's a > > >> morass of gotos and one-letter variables. I think I'd have written the > > >> interpreter a lot quicker :) But now my stubborn side has kicked in > > >> and I'm going to finish the translation instead. > > > >> martin > > > > -- > > > William Kevin Manire > > > Lead Developer > > > Edge Of Nowhere LLC (http://www.edgeofnowherellc.com) > > > (206) 384-5826 > > -- > William Kevin Manire > Lead Developer > Edge Of Nowhere LLC (http://www.edgeofnowherellc.com) > (206) 384-5826 |
|
|
Re: Hamurabi (#223)On Nov 2, 2009, at 6:37 PM, genericpenguin wrote:
> Sorry I'm new to the list. Is it ok to post solutions at this point > (Nov 1 10:30am to now +48hrs)? It sure is. Post away. And welcome to the list. James Edward Gray II |
|
|
Re: [QUIZ] Hamurabi (#223)On Oct 31, 2009, at 6:23 PM, Daniel Moore wrote:
> Back in the microcomputer age, there was a fascinating little game > called Hamurabi (no, that isn't a typo - there was an eight character > limit). Here's my sort-of solution (via Pastie because it's longish): http://pastie.textmate.org/680908 I started cleaning it up a bit today, but ran out of time. There's still a lot more that could be done. It also has a pretty big bug in it. My simple stack solution for GOTO, GOSUB, and FOR doesn't really work. It looked like it worked most of the way through the code because, GOTO's and GOSUB's only appear on their own lines or at the end of a compound instruction. The FOR loop at the end isn't like that though, and my interpreter doesn't really run it 10 times because it cannot resume into the middle of a compound instruction line. Drat, foiled again. I did have a ton of fun playing with this problem. Thanks again to the organizers for a great problem! James Edward Gray II |
|
|
Re: Hamurabi (#223)Well, here goes. I did it the bad way (no flowcharts or anything) and
it was pretty painful (meaning I regretted it later). I got it to the point where it is semi-reasonable but it's not very um, Rubyish. I ironed out all the showstopper bugs but I'm sure there's quite a few more. In any case it works after a fashion (compared the output to a running instance of http://www.calormen.com/applesoft/) and it doesn't make my eyes bleed (no guarantees on yours). http://dl.getdropbox.com/u/1826667/hamurabi.rb I spent so much time on it that in the end I didn't clean up all the puts'. Sorry! On Nov 3, 11:50 am, James Edward Gray II <ja...@...> wrote: > On Nov 2, 2009, at 6:37 PM, genericpenguin wrote: > > > Sorry I'm new to the list. Is it ok to post solutions at this point > > (Nov 1 10:30am to now +48hrs)? > > It sure is. Post away. > > And welcome to the list. > > James Edward Gray II |
|
|
Re: Hamurabi (#223)Hi, I did the hard-way too, but no so sure I regret :)
In fact it was interesting how to transform jumps into methods. So here is my pastie: http://pastie.textmate.org/681199 Still bugged, because I couldn't understand so much the part with planting seeds. (and why using the variable dead at that moment?) For the "for" loop at the end, what is it supposed to do? output 7.chr(bell) ? 2009/11/3 genericpenguin <sven.schott@...> > Well, here goes. I did it the bad way (no flowcharts or anything) and > it was pretty painful (meaning I regretted it later). I got it to the > point where it is semi-reasonable but it's not very um, Rubyish. I > ironed out all the showstopper bugs but I'm sure there's quite a few > more. In any case it works after a fashion (compared the output to a > running instance of http://www.calormen.com/applesoft/) and it doesn't > make my eyes bleed (no guarantees on yours). > > http://dl.getdropbox.com/u/1826667/hamurabi.rb > > I spent so much time on it that in the end I didn't clean up all the > puts'. Sorry! > > > On Nov 3, 11:50 am, James Edward Gray II <ja...@...> > wrote: > > On Nov 2, 2009, at 6:37 PM, genericpenguin wrote: > > > > > Sorry I'm new to the list. Is it ok to post solutions at this point > > > (Nov 1 10:30am to now +48hrs)? > > > > It sure is. Post away. > > > > And welcome to the list. > > > > James Edward Gray II > > |
|
|
Re: Hamurabi (#223)Cool. Caveat for the non-bleed users: ruby1.9 required (1.8.6 here).
I must admit, I didn't even try to understand certain design decisions. I basically followed flow and then cleaned up the code a little later. I believe the for loop was to play the system alert seven times (ASCII char 7). I think. Sound effects on a PDP-8 terminal. :) On Tue, Nov 3, 2009 at 7:18 PM, Benoit Daloze <eregontp@...> wrote: > Hi, I did the hard-way too, but no so sure I regret :) > > In fact it was interesting how to transform jumps into methods. > > So here is my pastie: > http://pastie.textmate.org/681199 > > Still bugged, because I couldn't understand so much the part with planting > seeds. (and why using the variable dead at that moment?) > > For the "for" loop at the end, what is it supposed to do? output > 7.chr(bell) > ? > > 2009/11/3 genericpenguin <sven.schott@...> > > > Well, here goes. I did it the bad way (no flowcharts or anything) and > > it was pretty painful (meaning I regretted it later). I got it to the > > point where it is semi-reasonable but it's not very um, Rubyish. I > > ironed out all the showstopper bugs but I'm sure there's quite a few > > more. In any case it works after a fashion (compared the output to a > > running instance of http://www.calormen.com/applesoft/) and it doesn't > > make my eyes bleed (no guarantees on yours). > > > > http://dl.getdropbox.com/u/1826667/hamurabi.rb > > > > I spent so much time on it that in the end I didn't clean up all the > > puts'. Sorry! > > > > > > On Nov 3, 11:50 am, James Edward Gray II <ja...@...> > > wrote: > > > On Nov 2, 2009, at 6:37 PM, genericpenguin wrote: > > > > > > > Sorry I'm new to the list. Is it ok to post solutions at this point > > > > (Nov 1 10:30am to now +48hrs)? > > > > > > It sure is. Post away. > > > > > > And welcome to the list. > > > > > > James Edward Gray II > > > > > |
|
|
Re: [QUIZ] Hamurabi (#223)okay, that was long and painful, but i have emerged triumphant ... i hope :)
http://pastie.org/681968 and attached martin |
|
|
Re: [QUIZ] Hamurabi (#223)On Mon, Nov 2, 2009 at 10:25 AM, Ehsanul Hoque <ehsanul_g3@...> wrote:
> > BTW, does anybody have any ideas for how a (fun) multiplayer version of Hamurabi would look like? What I was thinking: Add in a model of free markets to set price of land, so there would then be real trading between players. Then a smart player could influence prices through supply, to his opponents' detriment, if he could see the state of their kingdoms. And then there could be all sorts of nice strategies and counter-strategies in the struggle to be the best. Also: quick (say 30 seconds or a minute at most), timed rounds, ending at round ten or so, at which point the winner is announced, and the game is restarted. > > What do you guys think of that? Sound like any fun? A problem might be finding other players to actually play with live! In which case a slower, non-timed version that emailed you when it was your turn might be more appropriate (and less of a time sucker). You could also have disaffected people moving from city to city, adjusting the populations upward and downward respectively. martin |
|
|
Re: Hamurabi (#223)On Tue, Nov 3, 2009 at 1:48 PM, Benoit Daloze <eregontp@...> wrote:
> So here is my pastie: > http://pastie.textmate.org/681199 > > Still bugged, because I couldn't understand so much the part with planting > seeds. (and why using the variable dead at that moment?) he reused some of the variables for two separate things. the seed planting bit was "calculate a random yield per acre, and see how many bushels you got after planting so many bushels". martin |
|
|
Re: [QUIZ] Hamurabi (#223)Great ideas.
I suggest a new disaster that could happen to a kingdom as well. Public Healthcare 2009/11/3 Martin DeMello <martindemello@...> > On Mon, Nov 2, 2009 at 10:25 AM, Ehsanul Hoque <ehsanul_g3@...> > wrote: > > > > BTW, does anybody have any ideas for how a (fun) multiplayer version of > Hamurabi would look like? What I was thinking: Add in a model of free > markets to set price of land, so there would then be real trading between > players. Then a smart player could influence prices through supply, to his > opponents' detriment, if he could see the state of their kingdoms. And then > there could be all sorts of nice strategies and counter-strategies in the > struggle to be the best. Also: quick (say 30 seconds or a minute at most), > timed rounds, ending at round ten or so, at which point the winner is > announced, and the game is restarted. > > > > What do you guys think of that? Sound like any fun? A problem might be > finding other players to actually play with live! In which case a slower, > non-timed version that emailed you when it was your turn might be more > appropriate (and less of a time sucker). > > You could also have disaffected people moving from city to city, > adjusting the populations upward and downward respectively. > > martin > > -- William Kevin Manire Lead Developer Edge Of Nowhere LLC (http://www.edgeofnowherellc.com) (206) 384-5826 |
|
|
Re: [QUIZ] Hamurabi (#223)> > > On Mon, Nov 2, 2009 at 10:25 AM, Ehsanul Hoque <ehsanul_g3@...> > > > > wrote: > > > BTW, does anybody have any ideas for how a (fun) multiplayer version of > > > > Hamurabi would look like? What I was thinking: Add in a model of free > > markets to set price of land, so there would then be real trading between > > players. Then a smart player could influence prices through supply, to > > his opponents' detriment, if he could see the state of their kingdoms. > > And then there could be all sorts of nice strategies and > > counter-strategies in the struggle to be the best. Also: quick (say 30 > > seconds or a minute at most), timed rounds, ending at round ten or so, at > > which point the winner is announced, and the game is restarted. > > > > > What do you guys think of that? Sound like any fun? A problem might be > > > > finding other players to actually play with live! In which case a slower, > > non-timed version that emailed you when it was your turn might be more > > appropriate (and less of a time sucker). > > > > You could also have disaffected people moving from city to city, > > adjusting the populations upward and downward respectively. > > > > martin > > Great ideas. > > I suggest a new disaster that could happen to a kingdom as well. > > Public Healthcare > > 2009/11/3 Martin DeMello <martindemello@...> Existing disaster is when there is no public responsibility for healthcare. When the world is full of pharisees who pass by on the other side. Human concern for others is something with a value beyond rubies!! David |
| < Prev | 1 - 2 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |