· 4 years ago · Mar 24, 2021, 07:34 PM
1import requests
2
3# API
4
5### `POST /`
6
7#Create a new game. Returns a game object that includes an id, and a key that contains the number of blanks.
8
9### `GET /:id`
10
11#Returns the current state of the game.
12
13### `PUT /:id/:letter`
14
15##Makes a new guess! `:letter` is case insensitive, but must be a single letter.
16# Duplicate guesses will error, but don't count against you. Every successful request should return a `200` status.
17URL = 'https://word-guessing-game.onrender.com'
18
19class GuessGame:
20 game_id : str
21 guesses : list
22 blanks : list
23 incorrect_guesses : list
24 game_over = False
25
26 def __init__(self, args):
27 game = args.get('game')
28 self.game_id = game.get('id')
29 self.guesses = game.get('guesses')
30 self.blanks = game.get('blanks')
31 self.incorrect_guesses = game.get('incorrect_guesses')
32
33 def makeGuess(self, guess):
34 if len(guess) > 1:
35 print("Guesses can only be 1 character")
36 return
37
38 if guess in self.guesses:
39 print("You have already guessed that please guess again")
40 return
41
42 resp = requests.put(f"{URL}/{self.game_id}/{guess}").json()
43 err = resp.get('error')
44 win = resp.get('win')
45 lost = resp.get('lost')
46 if err is not None:
47 print("ERROR: " + err)
48 return
49
50 elif win is not None:
51 self.game_over = True
52 print(resp.get('message'))
53
54 elif lost is not None:
55 self.game_over = True
56 print(resp.get('message'))
57
58 else:
59 game = resp.get('game')
60 self.guesses = game.get('guesses')
61 self.blanks = game.get('blanks')
62 self.incorrect_guesses = game.get('incorrect_guesses')
63 self. printGame()
64
65 def printGame(self):
66 print(f"Blanks: {self.blanks}")
67 print(f"Guesses: {self.guesses}")
68 print(f"Incorrect Guesses: {self.incorrect_guesses}\n")
69
70
71init_request = requests.post(URL).json()
72game = GuessGame(init_request)
73
74
75while(not game.game_over):
76 game.printGame()
77
78 guess = input("Make a guess\n")
79
80 game.makeGuess(guess)