KCL 6CCS3PRJ - AI opponent for the card game Ulti
Ulti-mate is a proof of concept implementation of a set of smart bidding algorithms for the complex trick-taking card game Ulti designed as part of my BSc thesis at King's College London under the supervision of Dr Agi Kurucz.
The supported list of smart bidding algorithms is as follows:
- Simple
- Simple of Hearts
- Betli
- Rebetli
- Open Betli
- Durchmars
- Redurchmars
- Open Durchmars
Ulti-mate provides an extensive CLI with various experimentation options as well as detailed reasoning behind computed decisions.
npm start
to run a simulationnpm start -- [args]
to pass CLI argumentsnpm start -- -h
to see CLI helpnpm test
to run TS module tests (concurrently)
-h
for CLI commands help-R, --max-risk
to specify max risk in percentages-H, --custom-hand <card ids...>
to run the simulation with a custom hand--no-opponents
to skip calculation of opponents' hands--no-reasoning
to skip logging of detailed reasoning behind decisions
npm start -- --no-opponents
runs simulation with only player's handnpm start -- -R 70
the bot should only play games where the winning chance is >=70%npm start -- -H 0 1 2 3 4 5 6 7 8 9
sets player's hand to cards whose ids are 0-9
To run Ulti-mate simulations or develop locally.
- node.js
^14.x
- min
2 GB
free memory
npm i
to install project dependenciesnpm run build
to compile project- Run your choice of CLI command