118 lines
4.5 KiB
Markdown
118 lines
4.5 KiB
Markdown
# Inspirations
|
|
|
|
tools
|
|
- config clippy ?
|
|
- bacon : tests runner (ou loom ?)
|
|
|
|
## Rust libs
|
|
|
|
cf. https://blessed.rs/crates
|
|
|
|
- cli : https://lib.rs/crates/pico-args ( ou clap )
|
|
- reseau async : tokio
|
|
- web serveur : axum (uses tokio)
|
|
- https://fasterthanli.me/series/updating-fasterthanli-me-for-2022/part-2#the-opinions-of-axum-also-nice-error-handling
|
|
- db : sqlx
|
|
|
|
|
|
- eyre, color-eyre (Results)
|
|
- tracing (logging)
|
|
- rayon ( sync <-> parallel )
|
|
|
|
- front : yew + tauri
|
|
- egui
|
|
|
|
- https://docs.rs/board-game/latest/board_game/
|
|
|
|
## Others
|
|
- plugins avec https://github.com/extism/extism
|
|
|
|
## Backgammon existing projects
|
|
|
|
* go : https://bgammon.org/blog/20240101-hello-world/
|
|
- protocole de communication : https://code.rocket9labs.com/tslocum/bgammon/src/branch/main/PROTOCOL.md
|
|
* ocaml : https://github.com/jacobhilton/backgammon?tab=readme-ov-file
|
|
cli example : https://www.jacobh.co.uk/backgammon/
|
|
* lib rust backgammon
|
|
- https://github.com/carlostrub/backgammon
|
|
- https://github.com/marktani/backgammon
|
|
* network webtarot
|
|
* front ?
|
|
|
|
|
|
## cli examples
|
|
|
|
### GnuBackgammon
|
|
|
|
(No game) new game
|
|
gnubg rolls 3, anthon rolls 1.
|
|
|
|
GNU Backgammon Positions ID: 4HPwATDgc/ABMA
|
|
Match ID : MIEFAAAAAAAA
|
|
+12-11-10--9--8--7-------6--5--4--3--2--1-+ O: gnubg
|
|
| X O | | O X | 0 points
|
|
| X O | | O X | Rolled 31
|
|
| X O | | O |
|
|
| X | | O |
|
|
| X | | O |
|
|
^| |BAR| | (Cube: 1)
|
|
| O | | X |
|
|
| O | | X |
|
|
| O X | | X |
|
|
| O X | | X O |
|
|
| O X | | X O | 0 points
|
|
+13-14-15-16-17-18------19-20-21-22-23-24-+ X: anthon
|
|
|
|
gnubg moves 8/5 6/5.
|
|
|
|
### jacobh
|
|
|
|
Move 11: player O rolls a 6-2.
|
|
Player O estimates that they have a 90.6111% chance of winning.
|
|
|
|
Os borne off: none
|
|
24 23 22 21 20 19 18 17 16 15 14 13
|
|
-------------------------------------------------------------------
|
|
| v v v v v v | | v v v v v v |
|
|
| | | |
|
|
| X O O O | | O O O |
|
|
| X O O O | | O O |
|
|
| O | | |
|
|
| | X | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
|------------------------------| |------------------------------|
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| X | | |
|
|
| X X | | X |
|
|
| X X X | | X O |
|
|
| X X X | | X O O |
|
|
| | | |
|
|
| ^ ^ ^ ^ ^ ^ | | ^ ^ ^ ^ ^ ^ |
|
|
-------------------------------------------------------------------
|
|
1 2 3 4 5 6 7 8 9 10 11 12
|
|
Xs borne off: none
|
|
|
|
Move 12: player X rolls a 6-3.
|
|
Your move (? for help): bar/22
|
|
Illegal move: it is possible to move more.
|
|
Your move (? for help): ?
|
|
Enter the start and end positions, separated by a forward slash (or any non-numeric character), of each counter you want to move.
|
|
Each position should be number from 1 to 24, "bar" or "off".
|
|
Unlike in standard notation, you should enter each counter movement individually. For example:
|
|
24/18 18/13
|
|
bar/3 13/10 13/10 8/5
|
|
2/off 1/off
|
|
You can also enter these commands:
|
|
p - show the previous move
|
|
n - show the next move
|
|
<enter> - toggle between showing the current and last moves
|
|
help - show this help text
|
|
quit - abandon game
|
|
|