from retro.game import Game from retro.agent import Agent import time import os import sys 3 def clear_terminal(): if os.name == "nt": os.system("cls") else: sys.stdout.write("\033c") sys.stdout.flush() class RandomKeyAgent(Agent): def act(self, state): return None class MysteryCodingLadderGame(Game): def __init__(self, agents, state): super().__init__(agents=agents, state=state) self.word = "coding" 3 self.index = 0 self.position = 0 self.ladder_height = len(self.word) 0 self.running = True def draw_ladder(self): """Draws the ladder with the orb at the current height.""" clear_terminal() print("Hint: What this class is about\n") for i in range(self.ladder_height - 1, -1, -1): if i == self.position: print(" | ā— |") else: print(" | |") print("\nSpell the mystery word one letter at a time.") print("The circle climbs the ladder with each correct letter!\n") progress = [] for i in range(len(self.word)): if i < self.index: progress.append(self.word[i].upper()) else: progress.append("_") print("Word progress:", " ".join(progress)) print(f"Next letter to guess: {self.word[self.index].upper()}\n") def update(self, action): """Check the player's typed letter.""" if not action: return guess = action.lower()[0] correct = self.word[self.index] if guess == correct: print("Correct letter! The orb climbs!") self.index += 1 self.position += 1 else: print("Incorrect! The ladder resets!") self.index = 0 self.position = 0 if self.position >= self.ladder_height: self.running = False time.sleep(0.5) def run(self): print("Game Start!") while self.running: self.draw_ladder() letter = input("Your letter: ") self.update(letter) clear_terminal() print(" | ā— | TOP OF LADDER!") print("\nšŸŽ‰ You spelled CODING correctly! Great job Buffalo Bull! šŸŽ‰\n") 9 agents = [RandomKeyAgent()] state = {} if __name__ == "__main__": game = MysteryCodingLadderGame(agents=agents, state=state) game.run()-+