rlcard.games.mahjong¶
rlcard.games.mahjong.dealer¶
- class rlcard.games.mahjong.dealer.MahjongDealer(np_random)¶
Bases:
object
Initialize a mahjong dealer class
- deal_cards(player, num)¶
Deal some cards from deck to one player
- Parameters:
player (object) – The object of DoudizhuPlayer
num (int) – The number of cards to be dealed
- shuffle()¶
Shuffle the deck
rlcard.games.mahjong.game¶
- class rlcard.games.mahjong.game.MahjongGame(allow_step_back=False)¶
Bases:
object
- static get_legal_actions(state)¶
Return the legal actions for current player
- Returns:
A list of legal actions
- Return type:
(list)
- static get_num_actions()¶
Return the number of applicable actions
- Returns:
The number of actions. There are 4 actions (call, raise, check and fold)
- Return type:
(int)
- get_num_players()¶
return the number of players in Mahjong
- Returns:
the number of players in the game
- Return type:
(int)
- get_player_id()¶
return the id of current player in Mahjong
- Returns:
the number of players in the game
- Return type:
(int)
- get_state(player_id)¶
Return player’s state
- Parameters:
player_id (int) – player id
- Returns:
The state of the player
- Return type:
(dict)
- init_game()¶
Initialilze the game of Mahjong
This version supports two-player Mahjong
- Returns:
Tuple containing:
(dict): The first state of the game (int): Current player’s id
- Return type:
(tuple)
- is_over()¶
Check if the game is over
- Returns:
True if the game is over
- Return type:
(boolean)
- step(action)¶
Get the next state
- Parameters:
action (str) – a specific action. (call, raise, fold, or check)
- Returns:
Tuple containing:
(dict): next player’s state (int): next plater’s id
- Return type:
(tuple)
- step_back()¶
Return to the previous state of the game
- Returns:
True if the game steps back successfully
- Return type:
(bool)
rlcard.games.mahjong.judger¶
Implement Mahjong Judger class
- class rlcard.games.mahjong.judger.MahjongJudger(np_random)¶
Bases:
object
Determine what cards a player can play
- cal_set(cards)¶
Calculate the set for given cards :param Cards: List of cards. :type Cards: list
- Returns:
Sets (list): List of cards that has been pop from user’s hand
- Return type:
Set_count (int)
- static check_consecutive(_list)¶
Check if list is consecutive :param _list: The target list :type _list: list
- Returns:
consecutive or not
- Return type:
Result (bool)
- judge_chow(dealer, players, last_player)¶
Judge which player has chow :param dealer: The dealer object. :type dealer: object :param players: List of all players :type players: list :param last_player: The player id of last player :type last_player: int
- judge_game(game)¶
Judge which player has win the game :param dealer: The dealer object. :type dealer: object :param players: List of all players :type players: list :param last_player: The player id of last player :type last_player: int
- judge_hu(player)¶
Judge whether the player has win the game :param player: Target player :type player: object
- Returns:
Win or not Maximum_score (int): Set count score of the player
- Return type:
Result (bool)
- static judge_pong_gong(dealer, players, last_player)¶
Judge which player has pong/gong :param dealer: The dealer object. :type dealer: object :param players: List of all players :type players: list :param last_player: The player id of last player :type last_player: int
rlcard.games.mahjong.player¶
- class rlcard.games.mahjong.player.MahjongPlayer(player_id, np_random)¶
Bases:
object
- chow(dealer, cards)¶
Perform Chow :param dealer: Dealer :type dealer: object :param Cards: The cards to be Chow. :type Cards: object
- get_player_id()¶
Return the id of the player
- gong(dealer, cards)¶
Perform Gong :param dealer: Dealer :type dealer: object :param Cards: The cards to be Gong. :type Cards: object
- play_card(dealer, card)¶
Play one card :param dealer: Dealer :type dealer: object :param Card: The card to be play. :type Card: object
- pong(dealer, cards)¶
Perform Pong :param dealer: Dealer :type dealer: object :param Cards: The cards to be Pong. :type Cards: object
- print_hand()¶
Print the cards in hand in string.
- print_pile()¶
Print the cards in pile of the player in string.
rlcard.games.mahjong.round¶
- class rlcard.games.mahjong.round.MahjongRound(judger, dealer, num_players, np_random)¶
Bases:
object
- get_state(players, player_id)¶
Get player’s state
- Parameters:
players (list) – The list of MahjongPlayer
player_id (int) – The id of the player
- Returns:
The information of the state
- Return type:
state (dict)
- proceed_round(players, action)¶
Call other Classes’s functions to keep one round running
- Parameters:
player (object) – object of UnoPlayer
action (str) – string of legal action
rlcard.games.mahjong.card¶
- class rlcard.games.mahjong.card.MahjongCard(card_type, trait)¶
Bases:
object
- get_str()¶
Get the string representation of card
- Returns:
The string of card’s color and trait
- Return type:
(str)
- info = {'trait': ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'green', 'red', 'white', 'east', 'west', 'north', 'south'], 'type': ['dots', 'bamboo', 'characters', 'dragons', 'winds']}¶
- set_index_num(index_num)¶
rlcard.games.mahjong.utils¶
- rlcard.games.mahjong.utils.cards2list(cards)¶
- rlcard.games.mahjong.utils.encode_cards(cards)¶
- rlcard.games.mahjong.utils.init_deck()¶
- rlcard.games.mahjong.utils.pile2list(pile)¶