The Royal Game of Ur Analysis Project
RoyalUrAnalysis is a project dedicated to the technical analysis of The Royal Game of Ur. The project uses AI to find the best strategies to use in the game to win!
RoyalUrAnalysis is an open source effort! If you'd like to check out the codebase, or just drop by to give us a star, check us out on GitHub!
Goals
This project aims to answer questions such as:
- π How much of the game is luck?
- π Does playing first give you an advantage?
- π What are the best moves to play from unclear positions?
If you'd like to read about our progress in answering these questions, then you can read about our insights over on GitHub!
Meet the Agents
We currently have a small set of agents designed to play The Royal Game of Ur, and each takes a slightly different approach to picking their moves!
| Agent | Description |
|---|---|
| π² Random | Picks a random move, every time! |
| πΆ First-Move | Picks the least advanced piece to move. |
| π΄ Last-Move | Picks the most advanced piece to move. |
| π€ Greedy | Prioritises taking pieces, and moving onto rosettes. |
| π Expectimax | Does a statistical analysis to determine the best move. |
| πΌ Panda | A cheaper variant of expectimax that skips checking some rolls. |
If you'd like to delve deeper into each agent, how they function, and more statistics about each of them, then check out the agent documentation on GitHub!
Anaylsis Window
RoyalUrAnalysis provides a windowed mode for analysing specific game positions. If you'd like to setup your own positions to analyse, then download the latest RoyalUrAnalysis release on GitHub!
Usage
To use the analysis window, simply click on whatever you wish to change. For example, to change the game to "Dark's Turn", simply click on the "Light's Turn" text, and it will swap over.
Once you have your position set up, click "Analyse", and RoyalUrAnalysis will use the Panda AI from the webgame to evaluate how strong it thinks each move is!
Issues
If you find any bugs in the program, or want to suggest improvements or changes, then feel free to create an issue on GitHub.
