Pythonでボードゲームシミュレーション

domemo.py

import random

class Domemo:
    def __init__(self, player_instances):
        self.use_cards = [
            1,
            2, 2,
            3, 3, 3,
            4, 4, 4, 4,
            5, 5, 5, 5, 5,
            6, 6, 6, 6, 6, 6,
            7, 7, 7, 7, 7, 7, 7,
        ]

        self.open_cards = []
        self.closed_cards = []
        self.player_instances = player_instances

    def get_player_instances(self):
        return self.player_instances

    def give_card_for_player(self):
        random.shuffle(self.use_cards)

        for player_instance in self.get_player_instances():
            player_instance.set_my_cards(self.use_cards[:4])
            player_instance.set_original_cards()
            del self.use_cards[:4]

    def give_card_for_field(self):
        random.shuffle(self.use_cards)

        self.open_cards = self.use_cards[:4]
        del self.use_cards[:4]

        self.closed_cards = self.use_cards[:4]
        del self.use_cards[:4]

    def show_cards_on_field(self):
        print(self.open_cards)
        print(self.closed_cards)

        for player_instance in self.get_player_instances():
            print(player_instance)
            print(player_instance.player_name)
            print(player_instance.get_my_cards())

player.py

import copy


class Player:
    def __init__(self, name):
        self.player_name = name
        self.my_cards = []
        self.original_cards = []
        self.my_call_cards = []
        self.my_call_judge = [True, True, True, True, True, True, True]
        self.other_call_cards = []
        self.call_card_list = [1, 2, 3, 4, 5, 6, 7]

    def set_my_cards(self, cards):
        self.my_cards = cards

    def get_my_cards(self):
        return self.my_cards

    def set_original_cards(self):
        self.original_cards = copy.copy(self.get_my_cards())

    def get_original_cards(self):
        return self.original_cards

    def call_card(self, card):
        self.my_call_cards.append(card)
        if card in self.my_cards:
            self.my_cards.remove(card)
            return True
        self.my_call_judge[card - 1] = False
        return False

    def think(self, open_cards=[]):
        return int(input("call num (1 ~ 7)>>> "))

    def get_hand_num(self):
        return len(self.my_cards)

    def get_my_call_cards(self):
        return self.my_call_cards