initial commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
"""Basic example: play a random game of Blokus."""
|
||||
import numpy as np
|
||||
|
||||
from blokus_gym import BlokusEnv
|
||||
|
||||
|
||||
def main():
|
||||
# Create environment with 4 players
|
||||
env = BlokusEnv(num_players=4, board_size=20, render_mode="ansi")
|
||||
|
||||
obs, info = env.reset(seed=42)
|
||||
print("=== Initial State ===")
|
||||
print(env.render())
|
||||
|
||||
total_reward = 0
|
||||
steps = 0
|
||||
terminated = False
|
||||
truncated = False
|
||||
|
||||
while not (terminated or truncated):
|
||||
# Select a random valid action
|
||||
valid_actions = np.where(info["action_mask"])[0]
|
||||
if len(valid_actions) == 0:
|
||||
print("No valid moves!")
|
||||
break
|
||||
|
||||
action = np.random.choice(valid_actions)
|
||||
obs, reward, terminated, truncated, info = env.step(action)
|
||||
total_reward += reward
|
||||
steps += 1
|
||||
|
||||
if steps % 10 == 0:
|
||||
print(f"\n=== Step {steps} ===")
|
||||
print(env.render())
|
||||
print(f"Reward: {reward}, Total: {total_reward}")
|
||||
|
||||
print("\n=== Game Over ===")
|
||||
print(f"Total steps: {steps}")
|
||||
print(f"Total reward: {total_reward}")
|
||||
print(f"Terminated: {terminated}, Truncated: {truncated}")
|
||||
|
||||
# Final state
|
||||
print("\n=== Final Board ===")
|
||||
print(env.render())
|
||||
|
||||
env.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user