Files
project_game/graph_demo.py
Chris Proctor 93becc1a2b Added a demo file showing how to use retro.graph.Graph
Note that you will need to run `mwc update` to update retro-games
to at least 1.1.1.
2025-12-10 15:18:56 -05:00

42 lines
1.2 KiB
Python

from retro.game import Game
from retro.graph import Graph
from retro.agent import ArrowKeyAgent
class Player(ArrowKeyAgent):
"""Player is a subclass of ArrowKeyAgent, so it inherits all of that
class's attributes. However, I'm redefining `try_to_move`: Player
only moves if the new position is on the board and unoccupied.
"""
def try_to_move(self, position, game):
if game.on_board(position) and game.is_empty(position):
self.position = position
g = Graph()
g.get_or_create_edge(15, 16, 16, 16)
g.get_or_create_edge(16, 16, 16, 14)
g.get_or_create_edge(16, 14, 13, 14)
g.get_or_create_edge(13, 14, 13, 18)
g.get_or_create_edge(13, 18, 18, 18)
g.get_or_create_edge(18, 18, 18, 12)
g.get_or_create_edge(18, 12, 11, 12)
g.get_or_create_edge(11, 12, 11, 20)
g.get_or_create_edge(11, 20, 20, 20)
g.get_or_create_edge(20, 20, 20, 10)
g.get_or_create_edge(20, 10, 9, 10)
g.get_or_create_edge( 9, 10, 9, 22)
g.get_or_create_edge( 9, 22, 22, 22)
g.get_or_create_edge(22, 22, 22, 10)
agents = g.get_agents()
for agent in agents:
agent.color = "gray_on_black"
player = Player()
player.position = (15, 15)
agents.append(player)
game = Game(agents, {}, board_size=(30, 30))
game.play()