Ejemplo n.º 1
0
#! /usr/bin/env python3

import random

from log.log import Logger
from enums.player_role_enum import PlayerRoleEnum
from common.card_utils import CardUtil

logger = Logger.getLog(__file__)

class Player:

    def __init__(self, name, role=PlayerRoleEnum.DEFAULT):
        """
        name : a specified name for current player
        role : the role of player
        """
        if role == PlayerRoleEnum.DEFAULT:
            raise Exception('Please specified the role of this player,' \
                        'ref <PlayerRoleEnum>')
        logger.info(f'Current Player is [{name}({role.value})]')
        self.name = name
        self.role = role

    def obtain_init_card(self, exclude_card=None):
        """
        Obatain cards at first time in one episode
        """
        card_num = 17
        if self.role == PlayerRoleEnum.LAND_OWNER:
            card_num = 20
Ejemplo n.º 2
0
#! /usr/bin/env python3

from log.log import Logger

import tensorflow as tf
import numpy as np
from common.common_utils import CommonUtils
from common.constants import TF_CONST, EXTRA_CONST
from enums.action_type_enum import ActionTypeEnum
from enums.player_role_enum import PlayerRoleEnum
from dataset.mini_batch import MiniBatch

logger = Logger.getLog(__name__)

logger.info(tf.__version__)
"""
Implement of Deep-Q network
"""


class DeepQNet:
    def __init__(self,
                 n_input,
                 layers,
                 role=PlayerRoleEnum.LAND_OWNER,
                 lr=0.005,
                 dr=0.05,
                 bs=200,
                 epsilon=0.2,
                 buffer_size=5000,
                 n_epoch=500,