This provides an easy way to create a bot or an engine using typescript / javascript
$ npm install -S wartemis
- Make a class that extends the Bot or Engine class
- Implement the required methods (see API)
- Call
start()
exactly once
const { Bot, Engine } = require('wartemis');
import { Bot, Engine } from 'wartemis';
Argument | Type | Default | Description |
---|---|---|---|
game | string | - | The game your bot is made for |
name | string | - | The name of your bot |
sendSilentState | boolean | false | Whether or not your bot will receive state messages that don't expect an answer |
endpoint | string | ws://api.wartemis.com/socket | What endpoint to connect to |
Argument | Type | Description |
---|---|---|
error | string | The error message |
Should return the action your bot takes
Argument | Type | Description |
---|---|---|
state | string | The game state |
move | boolean | If you are expected to move on this state |
game | string | The game id, this is public information and is sent to each bot in a game |
key | string | The bot id, this is private information and is unique for each bot in a game |
WIP
const { Bot } = require('wartemis');
class BotTicTacToe extends Bot {
constructor() {
super('Tic Tac Toe', 'Demobot');
}
handleError(error) {
console.error(error);
}
handleState(state) {
console.log(state);
return {
position: state.board.indexOf(' ')
};
}
}
const bot = new BotTicTacToe();
bot.start();
import { Bot } from 'wartemis';
interface State {
board: string;
symbol: string;
}
interface Action {
position: number;
}
class BotTicTacToe extends Bot {
constructor() {
super('Tic Tac Toe', 'Demobot');
}
handleError(error: string): void {
console.error(error);
}
handleState(state: State): Action {
return {
position: state.board.indexOf(' ')
};
}
}
const bot = new BotTicTacToe();
bot.start();