Skip to content

Instantly share code, notes, and snippets.

@xmichael446
Last active November 13, 2021 07:41
Show Gist options
  • Save xmichael446/048e98ca585192d1d0f69936e7e4f4cb to your computer and use it in GitHub Desktop.
Save xmichael446/048e98ca585192d1d0f69936e7e4f4cb to your computer and use it in GitHub Desktop.
import random
class Player:
def __init__(self, name):
self.name = name
self.score = 0
def guess(self):
return int(input(f"{self.name}, what is your guess? "))
def add_score(self):
self.score += 1
def get_score(self):
return self.score
def get_name(self):
return self.name
class Game:
def __init__(self):
self.secret_number = self.generate_secret_number()
self.guess_count = 0
# create 2 players with random names
self.player_1 = Player(input("Player 1, enter your name: "))
self.player_2 = Player(input("Player 2, enter your name: "))
def generate_secret_number(self):
return random.randint(1, 100)
def play(self):
while True:
guess_1 = self.player_1.guess()
guess_2 = self.player_2.guess()
p1_diff = abs(guess_1 - self.secret_number)
p2_diff = abs(guess_2 - self.secret_number)
if p1_diff < p2_diff:
self.player_1.add_score()
print(f"{self.player_1.get_name()} guessed the number closest to the secret number")
elif p1_diff > p2_diff:
self.player_2.add_score()
print(f"{self.player_2.get_name()} guessed the number closest to the secret number")
else:
print("It's a draw")
print(f"The secret number is {self.secret_number}")
print(f"{self.player_1.get_name()}: {self.player_1.get_score()}")
print(f"{self.player_2.get_name()}: {self.player_2.get_score()}")
# check if the player wants to play again
play_again = input("Do you want to play again? (y/n): ")
if play_again == "y":
self.guess_count = 0
self.secret_number = self.generate_secret_number()
else:
break
if self.player_1.get_score() > self.player_2.get_score():
print(f"{self.player_1.get_name()} wins!")
elif self.player_1.get_score() < self.player_2.get_score():
print(f"{self.player_2.get_name()} wins!")
else:
print("It's a draw!")
print(f"Thanks for playing {self.player_1.get_name()} and {self.player_2.get_name()}!")
game = Game()
game.play()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment