OpenSpiel state methods: apply_action and apply_actions¶
Apply the specified action in a turn-based game (1), or joint action (one action per player) in a simultaneous-move game (2).
(1) must also be called to apply chance outcomes at chance nodes. (1) can also
be called on a simultaneous player state by passing in a flat integer (which was
legal_actions() on a simultaneous node).
In a simultaneous-move game, when a player has no legal actions, 0 must be passed in for their action choice.
For performance reasons, legality of the actions are generally not checked and applying an illegal action (or outcome at chance nodes) can fail in unspecified ways.
import pyspiel import numpy as np game = pyspiel.load_game("tic_tac_toe") state = game.new_initial_state() state.apply_action(4) # Player 0 takes the middle state.apply_action(1) # Player 1 takes the top game = pyspiel.load_game("leduc_poker") state = game.new_initial_state() state.apply_action(0) # First player gets the lowest card state.apply_action(1) # Second player gets the next lowest card state.apply_action(1) # First player checks game = pyspiel.load_game("matrix_pd") # Prisoner's dilemma state = game.new_initial_state() state.apply_actions([1, 1]) # Defect, Defect