« サージャント・グルカ :谷 甲州 | トップページ | 撲殺天使ドクロちゃん 5:おかゆ まさき »

2005年5月 1日

Python Janken class

ジャンケンをクラスに。


import random

__author__ = "kadotanimitsuru"
__date__ = "2005-05-01"
__license__ = "public domain"
__version__ = "1.0.0"

class _Janken(object):
    def __str__(self):
        return self.name
    def __unicode__(self):
        return self.ja_name or unicode(self.name)
    def __int__(self):
        return self.int
    def __cmp__(self, other):
        if isinstance(other, self.win):
            return 1
        elif isinstance(other, self.lose):
            return -1
        elif isinstance(other, self.tie):
            return 0
        else:
            raise TypeError
class Goo(_Janken):
    def __init__(self):
        _Janken.__init__(self)
        self.name = "rock"
        self.ja_name = u"グー"
        self.int = 0
        self.win = Choki
        self.lose = Par
        self.tie = Goo
class Choki(_Janken):
    def __init__(self):
        _Janken.__init__(self)
        self.name = "scissors"
        self.ja_name = u"チョキ"
        self.int = 2
        self.win = Par
        self.lose = Goo
        self.tie = Choki
class Par(_Janken):
    def __init__(self):
        _Janken.__init__(self)
        self.name = "paper"
        self.ja_name = u"パー"
        self.int = 5
        self.win = Goo
        self.lose = Choki
        self.tie = Par
GOO = ROCK = Goo()
CHOKI = SCISSORS = Choki()
PAR = PAPER = Par()
def pon():
    return random.choice((GOO, CHOKI, PAR))
# 好きに流用してください。

example:

>>> import janken
>>> a = janken.pon()
>>> print a,unicode(a),int(a)
scissors チョキ 2
>>> print a > janken.GOO, a > janken.CHOKI, a > janken.PAR
False False True
>>> print a == janken.GOO, a == janken.CHOKI, a == janken.PAR
False True False
>>> print a < janken.GOO, a < janken.CHOKI, a < janken.PAR
True False False
>>> b = janken.pon()
>>> print b,unicode(b),int(b)
rock グー 0
>>> a.__cmp__(b)
-1
>>> print a > b, a == b, a < b
False False True

参考:ジャンケン文明論(李 御寧) ISBN:4-10-610111-4

« サージャント・グルカ :谷 甲州 | トップページ | 撲殺天使ドクロちゃん 5:おかゆ まさき »

Python」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/68856/3939326

この記事へのトラックバック一覧です: Python Janken class:

« サージャント・グルカ :谷 甲州 | トップページ | 撲殺天使ドクロちゃん 5:おかゆ まさき »

ブログ妖精

  • ココロ

Affiliate

無料ブログはココログ