You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- RefSieve is now playable. It understands the basics, sarcastic discards, loaded plays and trash push.
- Notably, it does not understand delayed plays, prompts, or finesses yet.
- NOTE: Loaded rank play clues are right referential and not direct (as in the doc). This is a more powerful convention that has seen success in 2p.
- Fixed some issues with counting bad touch.
- Fixed a faulty self-elim check in good touch elim.
- No longer fetches the variants JSON for every self-play game (fixes#910).
Copy file name to clipboardexpand all lines: README.md
+5-5
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# hanabi-bot
2
2
A deterministic NodeJS bot that plays on the [hanab.live](https://hanab.live/) interface. Basic structure and ideas were taken from [Zamiell's example bot](https://github.com/Zamiell/hanabi-live-bot) (Python). You can play with it by inviting any of the `will-bot`'s to your table.
3
3
4
-
It can play with [H-Group](https://hanabi.github.io/) and [Playful Sieve](https://hackmd.io/@sodiumdebt/playful_sieve) conventions. The goal of the bot is to play with humans, so it can handle suboptimal play within reason. However, it still expects that the conventions are followed (in terms of focus, chop, etc.) and does not perform any "learning" during a game.
4
+
It can play with [H-Group](https://hanabi.github.io/), [Referential Sieve](https://hackmd.io/Ui6LXAK3TdC7AKSDcN20PQ?view) and [Playful Sieve](https://hackmd.io/@sodiumdebt/playful_sieve) conventions. The goal of the bot is to play with humans, so it can handle suboptimal play within reason. However, it still expects that the conventions are followed (in terms of focus, chop, etc.) and does not perform any "learning" during a game.
5
5
6
6
A demo game at H-Group level 3:
7
7
@@ -40,20 +40,20 @@ Send a PM to the bot on hanab.live (`/pm <HANABI_USERNAME> <message>`) to intera
40
40
-`/leave` to kick the bot from your table.
41
41
-`/create <name> <maxPlayers> <password>` to have the bot create a table. The name can't have spaces.
42
42
-`/start` to have the bot start the game (only works if it is the table leader).
43
-
-`/settings [conventions=HGroup,PlayfulSieve] [level]` to set the bot's conventions. To view the current settings, provide no parameters. The bot remembers its settings between games, but plays with H-Group conventions at level 1 on first boot.
43
+
-`/settings [conventions=HGroup,RefSieve,PlayfulSieve] [level]` to set the bot's conventions. To view the current settings, provide no parameters. The bot remembers its settings between games, but plays with H-Group conventions at level 1 on first boot.
44
44
- If only a level is provided (without a convention set), H-Group is assumed.
45
45
-`/restart` and `/remake` to have the bot perform the corresponding room actions after the game has finished (only works if it is the table leader).
46
46
47
47
Some commands can be sent inside a room to affect all bots that have joined.
48
-
-`/setall [conventions=HGroup,PlayfulSieve] [level]` to set conventions and level for all bots.
48
+
-`/setall [conventions=HGroup,RefSieve,PlayfulSieve] [level]` to set conventions and level for all bots.
49
49
-`/leaveall` to kick all bots from the table.
50
50
51
51
## Watching replays
52
52
A replay from hanab.live or from a file (in JSON) can be simulated using `npm run replay [-- <options>]`. Possible options:
53
53
-`id=<id>` indicates the ID of the hanab.live replay to load
54
54
-`file=<filePath>` indicates the path to the JSON replay to load (relative from the root directory)
55
55
-`index=<index>` sets the index of the player the bot will simulate as (defaults to 0)
56
-
-`convention=<HGroup,PlayfulSieve>` sets the conventions for the bot (defaults to HGroup)
56
+
-`convention=<HGroup,RefSieve,PlayfulSieve>` sets the conventions for the bot (defaults to HGroup)
57
57
-`level=<level>` sets the HGroup level for the bot (defaults to 1)
58
58
59
59
In a replay, the following commands are also supported (in addition to `hand` and `state`):
@@ -68,7 +68,7 @@ The bot can play games with copies of itself using `npm run self-play [-- <optio
68
68
-`seed=<seed>` sets the seed of the first game to be played (defaults to 0)
69
69
- The seeding algorithm is different from the one used on hanab.live.
70
70
-`variant=<variantName>` sets the variant to be played for all games (defaults to No Variant)
71
-
-`convention=<HGroup,PlayfulSieve>` sets the conventions for the bot (defaults to HGroup)
71
+
-`convention=<HGroup,RefSieve,PlayfulSieve>` sets the conventions for the bot (defaults to HGroup)
72
72
-`level=<level>` sets the HGroup level for the bot (defaults to 1)
73
73
74
74
The final score for each seed as well as how each game terminated are logged to the console. JSON replays of each game are saved to a `seeds` folder, which can be loaded into hanab.live for viewing.
0 commit comments