On Dec 29, 4:14 am, Martin <mar...@marcher.name> wrote: > Hi, > > 2008/12/29 Phil Runciman <ph...@aspexconsulting.co.nz>: > > > See: Chris Moss, Prolog++: The Power of Object-Oriented and Logic > > Programming (ISBN 0201565072) > > > This book is a pretty handy intro to an OO version Prolog produced by Logic > > Programming Associates. > > From: Aaron Brady [mailto:castiro...@gmail.com] > > Sent: Sunday, 28 December 2008 1:22 p.m. > > Not my expertise but here are my $0.02. You are looking for ways to > > represent rules: buying a house is legal in such and such situation, and > > the formula for calculating its price is something. You want "predicates" > > such as InJail, OwnedBy, Costs. > > > Costs( New York Ave, 200 ) > > InJail( player2 ) > > OwnedBy( St. Charles Ave, player4 ) > > LegalMove( rolldie ) > > LegalMove( sellhouse ) > > I'm not sure I'm looking for prolog, i had an introductory course back > at the university but it didn't exactly like it. I'm after some info > how such rules would defined in python (specifically python althou > logic programming is probably the more appropriate way). > > I guess I'm missing quite some basics in the design of such concepts, > I'll head back to google to find some introductory stuff now :). snip
It depends on what you want to do with it. Do you want to answer a question about whether something is legal? Do you want a catalog of legal moves? Do you want to forward-chain moves to a state? Do you want just a representation for its own sake? For instance, the game just started. Player 1 landed on Oriental, bought it, and Player 2 landed in the same place. Here are the legal possibilities. Player 1 offers to sell Oriental to Player X. Player X offers to buy Oriental from Player 1. Player 1 mortgages Oriental. Player 1 collects rent from Player 2. Player 3 rolls dice. Thinking aloud, I think the closest thing to predicates you'll have in Python is to build a Relation class or use a relational database. Some tables you might use are: Property( id, name, price, rent0houses, rent1house, ..., numhouses, mortgaged, owner ). Player( id, location, money ). LastMove( player.id ). P.S. There is 'pyprolog' on sourceforge; I did not check it out. -- http://mail.python.org/mailman/listinfo/python-list