[Tutor] Programming the behavior of a set of domino

Chung-hong Chan chainsawtiney at gmail.com
Fri Feb 23 19:07:48 CET 2007

```Hello,

I am a newbie in computer programming and I am also not a native
English Speaker. I love to play domino and I would like to program a
simple domino game in python. Also a good opportunity for me to learn
some computer programming.
I need some help in my code which programming the behaviors of a set of domino.
Here is the code, generally a modification of the code from the deck
of card example in How to Think like a Computer Scientist.

#!/usr/bin/python
class domino:
def __init__(self,a_end,b_end):
self.a_end=a_end
self.b_end=b_end
def __str__(self):
return ("["+str(self.a_end)+","+str(self.b_end)+"]")
def __cmp__(self,other):
if self.a_end==other.b_end and self.b_end==other.a_end:
return 0
return 1

class deck:
def __init__(self,set_type):
self.dominoes = []
self.set_type = set_type
for a_end in range(self.set_type+1):
for b_end in range(self.set_type+1):
self.dominoes.append(domino(a_end,b_end))
def print_deck(self):
for domino in self.dominoes:
print domino
def deck_len(self):
print len(self.dominoes)

newdomino = deck(12)
newdomino.print_deck()
newdomino.deck_len()

if domino(1,2)==domino(2,2):
print "yes"
else:
print "no"

each piece of domino have a_end and b_end. domino (1,2) and
domino(2,1) is the same and thus one of them should be removed. Now,
deck(12) will return 169 dominoes while the expected number of
dominoes is 91. Even I wrote a __cmp__ method for domino, list
membership (i.e. x in list) is not working because they are not a
exact duplicates.
Can anyone shed me some light to solve this problem?
Thank You.

Regards,
CH

--
"The scientists of today think deeply instead of clearly. One must be
sane to think clearly, but one can think deeply and be quite insane."
Nikola Tesla
http://www.macgrass.com
```