diff --git a/handlers/elements.go b/handlers/elements.go index 4fe08ee..60b4196 100644 --- a/handlers/elements.go +++ b/handlers/elements.go @@ -86,7 +86,7 @@ func HandleShowColor(w http.ResponseWriter, r *http.Request) { fi.Room.ClearMarks() } switch string(color) { - case "black": + case string(models.WordColorBlack): log.Debug("opened black word", "room", fi.Room) // game over fi.Room.IsRunning = false @@ -102,7 +102,7 @@ func HandleShowColor(w http.ResponseWriter, r *http.Request) { fi.Room.ThisTurnLimit = 0 fi.Room.ActionHistory = append(fi.Room.ActionHistory, action) fi.Room.ClearMarks() - case "white", string(oppositeColor): + case string(models.WordColorWhite), string(oppositeColor): log.Debug("opened opposite color word", "room", fi.Room, "opposite-color", oppositeColor) // end turn fi.Room.TeamTurn = oppositeColor diff --git a/llmapi/main.go b/llmapi/main.go index c4e2892..b52b5ce 100644 --- a/llmapi/main.go +++ b/llmapi/main.go @@ -84,6 +84,7 @@ func (b *Bot) checkGuess(word string, room *models.Room) error { room.ActionHistory = append(room.ActionHistory, action) // if opened card is of color of opp team, change turn oppositeColor := room.GetOppositeTeamColor() + room.OpenedThisTurn++ if room.OpenedThisTurn >= room.ThisTurnLimit { // end turn room.TeamTurn = oppositeColor @@ -92,7 +93,7 @@ func (b *Bot) checkGuess(word string, room *models.Room) error { room.ThisTurnLimit = 0 } switch string(color) { - case "black": + case string(models.WordColorBlack): // game over room.IsRunning = false room.IsOver = true @@ -106,7 +107,7 @@ func (b *Bot) checkGuess(word string, room *models.Room) error { Action: models.ActionTypeGameOver, } room.ActionHistory = append(room.ActionHistory, action) - case "white", string(oppositeColor): + case string(models.WordColorWhite), string(oppositeColor): // end turn room.TeamTurn = oppositeColor room.MimeDone = false @@ -224,7 +225,7 @@ func (b *Bot) BotMove() { } if err := b.checkGuess(guess, room); err != nil { b.log.Warn("failed to check guess", "mimeResp", tempMap, "bot_name", b.BotName, "guess", guess, "error", err) - msg := fmt.Sprintf("failed to check guess", "mimeResp", tempMap, "bot_name", b.BotName, "guess", guess, "error", err) + msg := fmt.Sprintf("failed to check guess; mimeResp: %v; bot_name: %s; guess: %s; error: %v", tempMap, b.BotName, guess, err) room.LogJournal = append(room.LogJournal, msg) } b.log.Info("mime resp log", "guesserResp", tempMap) @@ -393,6 +394,9 @@ func (b *Bot) BuildSimpleGuesserPrompt(room *models.Room) string { // number := room.ActionHistory[len(room.ActionHistory)-1].Number words := make([]string, len(room.Cards)) for i, card := range room.Cards { + if card.Revealed { // skipped already opened + continue + } words[i] = card.Word } return fmt.Sprintf(GuesserSimplePrompt, clueAction.Word, words) diff --git a/todos.md b/todos.md index 1c99a19..f1b8675 100644 --- a/todos.md +++ b/todos.md @@ -55,3 +55,4 @@ - there is a clue window for a mime before game started; - retry call to llm (if 400|429|4xx); - when llm guesses the word it is not removed from a pool of words making it keep guessing it; +- bot team does not loses their turn after white card (or limit);