marksverdhei
Make game replayable
7fe9bd6
import logging
from transformers import PreTrainedTokenizer
from src.constants import MAX_ATTEMPTS
from src.constants import STARTING_INDEX
from src.params import ReducerParams
from src.shared import all_tokens
from src.shared import tokenizer
from src.utils import get_current_prompt_text
logger = logging.getLogger(__name__)
def get_current_text(params: ReducerParams, tokenizer: PreTrainedTokenizer):
return tokenizer.decode(all_tokens[: params.word_number])
def handle_player_win(params: ReducerParams) -> ReducerParams:
# TODO: point system
points = 1
params.player_points += points
params.button_label = "Next word"
params.bottom_html = f"Player gets {points} point!"
return params
def handle_lm_win(params: ReducerParams) -> ReducerParams:
points = 1
params.lm_points += points
params.button_label = "Next word"
params.bottom_html = f"GPT2 gets {points} point!"
return params
def handle_out_of_attempts(params: ReducerParams) -> ReducerParams:
params.button_label = "Next word"
params.bottom_html = f"Out of attempts. No one gets points! The correct word was: {tokenizer.decode(all_tokens[STARTING_INDEX + params.word_number])}"
return params
def handle_tie(params: ReducerParams) -> ReducerParams:
params.button_label = "Next word"
params.bottom_html = "TIE! No one gets points!"
return params
def handle_both_wrong(params: ReducerParams) -> ReducerParams:
params.bottom_html = f"That was not it... {params.remaining_attempts} attempts left"
return params
def handle_no_input(params: ReducerParams) -> ReducerParams:
params.bottom_html = "Please write something"
return params
def handle_next_word(params: ReducerParams) -> ReducerParams:
params.word_number += 1
params.button_label = "Guess!"
params.bottom_html = ""
params.prompt_text = get_current_prompt_text(params.word_number)
params.current_guesses = ""
params.remaining_attempts = MAX_ATTEMPTS
params.guess_field = ""
return params