Last active
November 13, 2021 07:41
-
-
Save xmichael446/048e98ca585192d1d0f69936e7e4f4cb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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