guess-env / server /guess_environment.py
numb3r33's picture
Upload folder using huggingface_hub
49ded5c verified
from guess_env.models import GuessObservation
import random
class GuessEnvironment:
def __init__(self, max_guesses: int):
self.max_guesses = max_guesses
self.guesses_made = 0
self.done = False
def reset(self):
self.guesses_made = 0
self.done = False
self.target_number = random.randint(1, 100)
return GuessObservation(
last_guess_feedback="Game reset. Start guessing!",
guesses_remaining=self.max_guesses,
reward=0.0,
done=self.done
)
def step(self, action):
if self.done:
raise Exception("Game is over. Please reset the environment.")
self.guesses_made += 1
guess = action.guess
if guess < self.target_number:
feedback = "Too low!"
reward = -1.0
elif guess > self.target_number:
feedback = "Too high!"
reward = -1.0
else:
feedback = "Correct! You've guessed the number!"
reward = 10.0
self.done = True
if self.guesses_made >= self.max_guesses and not self.done:
feedback = f"Game over! The correct number was {self.target_number}."
self.done = True
return GuessObservation(
last_guess_feedback=feedback,
guesses_remaining=self.max_guesses - self.guesses_made,
reward=reward,
done=self.done
)