· 

Python sample サイコロ

# サイコロを2つ転がして出た目の合計が偶数か奇数かを当てるゲーム

 

import random

 

class Saikoro:

    ANS = ['偶数','奇数']

    def description(self):

        return "偶数:0, 奇数:1"

        

    def your_kai_print(self, you, kai):

        return 'あなた: {0},  結果: {1}' .format(self.ANS[you], self.ANS[kai])

        

    def kai_rtn(self):

        return (random.randint(1, 6) + random.randint(1, 6)) % 2

    

    def judge(self, you, kai):

        result = you - kai

        if result == 0:

            return "正解"

        elif result == 1:

            return "はずれ"

        else:

            return "はずれ"

                

class SystemIO:

        def print(self, message):

            print(message)

            

        def input(self):

            return input()

    

class SyoriFlow:

    def __init__(self, game, flow_io):

        self.game = game

        self.flow_io = flow_io

        

    def play(self):

        check = 1

        while ( check):

            check=self.play_sub()

        

    def play_sub(self):

        self.flow_io.print(self.game.description())

 

        try:

            you = int(self.flow_io.input())

            

            kai = self.game.kai_rtn()

            self.flow_io.print(self.game.your_kai_print(you, kai))

            result = self.game.judge(you, kai)

            self.flow_io.print(result)

            return 0

 

        except:

            self.flow_io.print("0から1までの数字を入力してください。")

            return 1

 

 

game = Saikoro()

flow_io = SystemIO()

flow = SyoriFlow(game, flow_io)

 

flow.play()

 

偶数:0, 奇数:1

1

あなた: 奇数,  結果: 奇数

正解