Swoggle Game Engine¶
Implements a silly game we invented last Christmas and have been playing recently.
Rules are TODO.
Install¶
Should be as easy as:
pip install swoggle
How to use¶
To get a board with the basic setup, use the swoggle class:
s = Swoggle(agents=[])
s.show()
Players can move (after rolling a dice). For example, player 1 could move to the square with a drone:
s.move(1, (0, 0), (3, 2), 5) # Only works if dice_roll is high enough
s.show()
You can move with the drone, but only half as far:
s.move(1, (3, 2), (1, 1), 5, drone=True) # Only works if dice_roll is high enough
s.show()
You can leave the drone behind to move elsewhere. But you cannot take an occupied base without the drone:
s.move(1, (1, 1), (7, 0), 6) # No drone - no luck
You can take a droned player with a drone for yourself or a powerjump:
s.move(1, (1, 1), (4, 0), 6, drone=True) # Put 1 in position
s.move(2, (7, 0), (4, 0), 6, powerjump=True) # take one with a powerjump
s.show()
Now player 1 must try to escape, by rolling a 5 ot 6
s.move(1, (0, 0), (0, 0), 4) # No escape with a 4
s.move(1, (0, 0), (0, 0), 5) # Escaped
s.show()
s.move(1, (0, 0), (4, 0), 6) # Capture 2
s.move(1, (4, 0), (7, 0), 5) # Take 2's base to win the game
s.show()
Adding agents¶
We have several agents to choose from. Let's create a game with 2 random agents and 2 basic agents and watch them play:
sr = Swoggle([RandomAgent(i+1) for i in range(2)]+[BasicAgent(i+3) for i in range(2)])
sr.show()
# Run repeatedly to see a game play out
sr.move_agents()
sr.show()
Where Next?¶
The point of this exercise was to 1) Learn NBev and 2) Get a gae ready for RL experiments. So far so good :)