WillFlame14 / hanabi-bot

A bot that plays on the hanab.live interface.
GNU General Public License v3.0
15 stars 9 forks source link

Should have done a SDCM to save critical card #239

Open flackr opened 4 months ago

flackr commented 4 months ago

Version (PM the bot with /version): v1.4.5 Convention settings: /setall 11 Steps to reproduce or replay link: https://hanab.live/replay/1172337#27 Additional information: I think the bot should have performed a scream discard chop move to save the red 4.

WillFlame14 commented 4 months ago

According to the docs, a Scream Discard Chop Move can only be done at 0 clues, or at 1 clue if the next player is locked. A search in the H-Group Discord reveals one instance 4 years ago where Zamiel states that an SDCM can be performed at 1 clue if it is the only way to save the cards, but this seems a bit ill-defined. Could botbot1 be expected to clue purple or yellow to mr_fancy_pants2 on their turn rather than discarding?

I try to avoid this situation by saving as flackr, so robot1 is forced to discard to give botbot1 a clue. robot1 discards in both situations, you'll need to end up cluing red later anyways, and there's no ambiguity about whether the SDCM was legal or not.

flackr commented 4 months ago

According to the docs, a Scream Discard Chop Move can only be done at 0 clues, or at 1 clue if the next player is locked. A search in the H-Group Discord reveals one instance 4 years ago where Zamiel states that an SDCM can be performed at 1 clue if it is the only way to save the cards, but this seems a bit ill-defined. Could botbot1 be expected to clue purple or yellow to mr_fancy_pants2 on their turn rather than discarding?

From https://hanabi.github.io/level-7/#the-scream-discard-chop-move-sdcm

Players are only allowed to Scream Discard as an absolute last resort. This means Scream Discards are almost always performed while the team is at 0 clues. (Less commonly, they can also be performed if the team is at 1 clue and the next person happens to be Locked.)

This would have been the situation in this game, since the chop move locks botbot1.

Could botbot1 be expected to clue purple or yellow to mr_fancy_pants2 on their turn rather than discarding?

Yes, the chop move would lock the hand, and a scream discard requires a clue anyways.

I try to avoid this situation by saving as flackr, so robot1 is forced to discard to give botbot1 a clue. robot1 discards in both situations, you'll need to end up cluing red later anyways, and there's no ambiguity about whether the SDCM was legal or not.

I agree, it would have been cleaner for me to clue a save and force a generation discard. My thinking at the time was that my play would allow unlocking botbot1 sooner, but perhaps it's not worth it. While I could arguably have avoided the situation, I think it's still true that robot1 could have scream discarded to avoid losing the critical card.

WillFlame14 commented 4 months ago

they can also be performed if the team is at 1 clue and the next person happens to be Locked.

I interpreted this to mean that the next player is already locked before the SDCM, since the wording uses the present tense in a conditional, except I realized that this scenario doesn't really make sense. I've asked about it in the H-Group Discord, will update based on the response.

elamate commented 4 months ago

I think SDCM should allowed there.Let assume mr_fancy_pants2 hand can be g3 p5 instead of b1 r1, this case y2 need to play or mr_fancy_pants2 discard y3. Also flackr chop can be p5, so flackr see someone need to scream/generate clue and robot1 hand have safe discard, so leting robot1 sdcm is better, then risking losing the game discarding flackr chop.

WillFlame14 commented 4 months ago

Yep, the consensus seems to be that an SDCM here is allowed. I'll try to implement this together with upcoming clue-safe changes.