chrisraff / dicewarsjs

Modified Dice Wars
18 stars 7 forks source link
dice dicewars-game game

Dicewars JS

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.

Usage

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).

Make Your Own AI

  1. Copy one of the existing ai files, such as ai_example.js, and name it ai_YourName.js. Change the file's function to also be named ai_YourName

  2. In index.html at line 39 where the other AI scripts are added, add a line for ai_YourName.js

  3. Go to line 42 of game.js where the array this.ai is defined. Change some of the items in the array to ai_YourName, which is the function in your AI's script. The first player is always the human player, so leave it as null.

  1. Modify the function ai_YourName in ai_YourName.js. Look at existing ai such as ai_example or ai_defensive for techniques to analyze the game state.

    • The code and comments in ai_example.js give a basic outline for how to declare a move
    • To declare an attack, set game.area_from to the id of the attacking region and game.area_to to the defending region's id (do not return). Once you have no good moves left, end the player's turn by returning 0.
    • game.adat is the array of regions.
    • game.adat[i].arm is the id of the player who owns the region, and game.get_pn() returns the id of the player whose turn it is.
    • game.adat[i].dice is the number of dice the region has
    • game.adat[i].join[j] is true (1) when region i is adjacent to region j and false (0) otherwise.

Contributing

If you make a cool new AI, let me know!

Potential Improvements

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.

License

MIT