Play my version here. My slightly improved AI are the pink, green and lime player.
This is a modification of the game Dice Wars from gamedesign.jp. I have added the ability to have multiple types of AI so I could try to create my own AI for the game.
Once you have cloned the repository or downloaded the files, simply navigate to file:///Drive:/the/directory/you/cloned/it/to/index.html in any web browser on your computer (For instance, file:///C:/Users/USERNAME/Downloads/dicewarsjs/index.html).
-
Copy one of the existing ai files, such as
ai_example.js, and name itai_YourName.js. Change the file's function to also be namedai_YourName -
In
index.htmlat line 39 where the other AI scripts are added, add a line forai_YourName.js -
Go to line 42 of
game.jswhere the arraythis.aiis defined. Change some of the items in the array toai_YourName, which is the function in your AI's script. The first player is always the human player, so leave it as null.
- The index of the array corresponds to the color of the player in the game. The human (first) player is always purple, the second index is always lime, then green, pink, orange, cyan, yellow, and red.
- The order of play is shuffled in game, but the player colors always correspond to the order of
this.ai - It may be useful to set your AI as the second player so you can play against it in a two player game
- Modify the function
ai_YourNameinai_YourName.js. Look at existing ai such asai_exampleorai_defensivefor techniques to analyze the game state.
- The code and comments in
ai_example.jsgive a basic outline for how to declare a move - To declare an attack, set
game.area_fromto the id of the attacking region andgame.area_toto the defending region's id (do not return). Once you have no good moves left, end the player's turn by returning 0. game.adatis the array of regions.game.adat[i].armis the id of the player who owns the region, andgame.get_pn()returns the id of the player whose turn it is.game.adat[i].diceis the number of dice the region hasgame.adat[i].join[j]is true (1) when regioniis adjacent to regionjand false (0) otherwise.
If you make a cool new AI, let me know!
I plan to make a version of the game that just plays the AI against themselves quickly so you can get statstics on how well each AI performs.