Flash Duel is a pretty simple board game. This is a Ruby implementation of the rules in the game so you can write bots to play it.
The goal of this project is to allow lazy people like me to empirically figure out the best approach for this game. It's also a reminder of what one can do by skipping Starcraft for a night or two.
Refer to this pdf with the game instructions.
Your bot can be defined in any class. It must respond to two methods:
def play(hand, board) def respond(action, attack, hand, board)
handis your current hand, represented in an Array. eg:
[1, 3, 3, 2, 5]
boardis a wrapper to game board with some conveniency methods:
board.distanceis the distance between the two players.
board.on_edge?(self)tells you whether you're on the edge of it.
attackis the attacking hand, represented in an Array. eg:
actionis a symbol representing what the oponent used to hit you. Options are
For each of these methods, you need to respond with an array containing an action, and one or more cards.
[:attack, [4, 4]]
[:strike, [3, 4]]
[:block, [4, 4]]
Check for sample bots in the
Use the flash-duel binary:
flash-duel bots/random.rb bots/mine.rb
Change the API to run bots as new processes, allowing more languages and avoiding simple hacks/security wholes.
Implement characters and their special abilities.
Support more command line options: running multiple games, defining who's the first player, print a summary, etc.
Enhance the web api / provide some sort of tournament.
Written by Pedro Belo.
Licensed as GPLv2 - once this gets to be the next eSport I'll want my share.