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. 

Prolog is a wonderful tool for such things as working out a factory layout for 
new car production or for creating an expert system for choosing antibiotics 
for treating a condition. It has even been used for helping producing 
immigration legislation and then for providing a system for checking 
eligibility (other than can you survive in a desert and get through barbed 
wire!) One person used is to teach primary school children English grammar. The 
children created their own grammar rules and checked them out using Prolog. 
Their understanding of english grammar exceeded many university graduates after 
this exercise. (Google Dr. Richard Ennals).

FWIW. Declaration of interest: Chris Moss is my wife's first cousin.


-----Original Message-----
From: Aaron Brady [mailto:castiro...@gmail.com] 
Sent: Sunday, 28 December 2008 1:22 p.m.
To: python-list@python.org
Subject: Re: game engine (as in rules not graphics)

On Dec 27, 3:02 pm, Martin <mar...@marcher.name> wrote:
> Hello,
>
> I'd like to get in touch with game development a bit. I'm not talking 
> about graphics but rather the game rules itself. Something 
> likehttp://en.wikipedia.org/wiki/Monopoly_(game)#Rules, is there even 
> a general approach to that or should I just go sketch up my rules and 
> try to implement them. Being totally new to this topic I don't quite 
> now what to search for to get some decent results that let me make a 
> mental link between game rules and what the best practices are to 
> implement them in python (or any other programming language)
>
> thanks,
> martin

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 )

There are rule-based languages out there, such as Prolog.  They are equally 
expressive as Python (you can write a Turing machine in them), but they are 
more convenient for representing rules in a prog.
language.

Predicates are more or less equivalent to positive assertions about something.

NewYorkAve.cost= 200
player2.injail= True...
rolldie.islegal= True

Some predicates have to be calculated, rather than stored, but Python 
descriptors go easy on you for that.  Someone else will have to tell you how 
rule-based programming measures up against object-oriented programming.  
<passes mic.>

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to