#!/usr/bin/env python3
# coding: UTF-8
import random
# メッセージ分離方式: メッセージは本体から分けておく(メインテナンスの為)
msg = {'intro': 'じゃんけんを始めます\n0=goo 1=chok 2=paa',
'prompt': '0:goo 1:chok 2:paa を入力?',
'result': 'cpのては{}です\nコンピューターは{}を出しました\nあなたは{}を出したので{}です',
0: 'あいこ',
1: '負け',
2: '勝ち'}
# 構造体: Pythonではクラス、と呼ぶ。
# 自分の手とコンピュータの手を保持(記憶)する為のデータ構造。
# https://d...content-available-to-author-only...n.org/ja/3/tutorial/classes.html
class Env(object):
def __init__(self, hand, comH, result):
self.hand = hand
self.comH = comH
self.result = result
def __repr__(self):
return msg['result'].format(self.comH, self.comH, self.hand, msg[self.result])
# プログラム本体: 関数を作る事を覚えよう。
# 加えて、「じゃんけんのアルゴリズム」を検索。
def result(my_hand):
comH = random.randint(0, 2)
return Env(my_hand, comH, (my_hand - comH + 3) % 3)
if __name__ == '__main__':
print(msg['intro'])
print(result(int(input(msg['prompt']))))
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwojIGNvZGluZzogVVRGLTgKCmltcG9ydCByYW5kb20KCiMg44Oh44OD44K744O844K45YiG6Zui5pa55byPOiDjg6Hjg4Pjgrvjg7zjgrjjga/mnKzkvZPjgYvjgonliIbjgZHjgabjgYrjgY8o44Oh44Kk44Oz44OG44OK44Oz44K544Gu54K6KQptc2cgPSB7J2ludHJvJzogJ+OBmOOCg+OCk+OBkeOCk+OCkuWni+OCgeOBvuOBmVxuMD1nb28gMT1jaG9rIDI9cGFhJywKICAgICAgICdwcm9tcHQnOiAnMDpnb28gMTpjaG9rIDI6cGFhIOOCkuWFpeWKm++8nycsCiAgICAgICAncmVzdWx0JzogJ++9g++9kOOBruOBpuOBr3t944Gn44GZXG7jgrPjg7Pjg5Tjg6Xjg7zjgr/jg7zjga97feOCkuWHuuOBl+OBvuOBl+OBn1xu44GC44Gq44Gf44Gve33jgpLlh7rjgZfjgZ/jga7jgad7feOBp+OBmScsCiAgICAgICAwOiAn44GC44GE44GTJywKICAgICAgIDE6ICfosqDjgZEnLAogICAgICAgMjogJ+WLneOBoSd9CgojIOani+mAoOS9kzogUHl0aG9u44Gn44Gv44Kv44Op44K544CB44Go5ZG844G244CCCiMg6Ieq5YiG44Gu5omL44Go44Kz44Oz44OU44Ol44O844K/44Gu5omL44KS5L+d5oyBKOiomOaGtinjgZnjgovngrrjga7jg4fjg7zjgr/mp4vpgKDjgIIKIyBodHRwczovL2QuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLm4ub3JnL2phLzMvdHV0b3JpYWwvY2xhc3Nlcy5odG1sCmNsYXNzIEVudihvYmplY3QpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGhhbmQsIGNvbUgsIHJlc3VsdCk6CiAgICAgICAgc2VsZi5oYW5kID0gaGFuZAogICAgICAgIHNlbGYuY29tSCA9IGNvbUgKICAgICAgICBzZWxmLnJlc3VsdCA9IHJlc3VsdCAKICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICByZXR1cm4gbXNnWydyZXN1bHQnXS5mb3JtYXQoc2VsZi5jb21ILCBzZWxmLmNvbUgsIHNlbGYuaGFuZCwgbXNnW3NlbGYucmVzdWx0XSkKCiMg44OX44Ot44Kw44Op44Og5pys5L2TOiDplqLmlbDjgpLkvZzjgovkuovjgpLopprjgYjjgojjgYbjgIIKIyDliqDjgYjjgabjgIHjgIzjgZjjgoPjgpPjgZHjgpPjga7jgqLjg6vjgrTjg6rjgrrjg6DjgI3jgpLmpJzntKLjgIIKZGVmIHJlc3VsdChteV9oYW5kKToKICAgIGNvbUggPSByYW5kb20ucmFuZGludCgwLCAyKQogICAgcmV0dXJuIEVudihteV9oYW5kLCBjb21ILCAobXlfaGFuZCAtIGNvbUggKyAzKSAlIDMpCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgcHJpbnQobXNnWydpbnRybyddKQogICAgcHJpbnQocmVzdWx0KGludChpbnB1dChtc2dbJ3Byb21wdCddKSkpKQo=