Re: game engine (as in rules not graphics)

2009-01-01 Thread Aaron Brady
On Dec 29 2008, 8:52 am, Aaron Brady castiro...@gmail.com wrote:
 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.

You know what I am thinking for this-- not that the OP is still
around-- is a regular expression / BNF grammar that transitions on
moves from one legal set of moves to the next.  It will need some sort
of concatenation structure, since late in the game, selling each
property a player has is a legal move.  Sorry for the replies to
myself.
--
http://mail.python.org/mailman/listinfo/python-list


Re: game engine (as in rules not graphics)

2008-12-29 Thread Martin
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 :).

regards,
Martin


-- 
http://soup.alt.delete.co.at
http://www.xing.com/profile/Martin_Marcher
http://www.linkedin.com/in/martinmarcher

You are not free to read this message,
by doing so, you have violated my licence
and are required to urinate publicly. Thank you.

Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html
--
http://mail.python.org/mailman/listinfo/python-list


Re: game engine (as in rules not graphics)

2008-12-29 Thread Aaron Brady
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


RE: game engine (as in rules not graphics)

2008-12-28 Thread Phil Runciman
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


[OT] game engine (as in rules not graphics)

2008-12-27 Thread Martin
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 like
http://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

-- 
http://soup.alt.delete.co.at
http://www.xing.com/profile/Martin_Marcher
http://www.linkedin.com/in/martinmarcher

You are not free to read this message,
by doing so, you have violated my licence
and are required to urinate publicly. Thank you.

Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html
--
http://mail.python.org/mailman/listinfo/python-list


Re: game engine (as in rules not graphics)

2008-12-27 Thread Aaron Brady
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