94 lines
2.6 KiB
Python
94 lines
2.6 KiB
Python
from random import randint
|
|
|
|
class TheGame:
|
|
|
|
def __init__(self):
|
|
self.val = ["Sten", "Sax", "Påse"]
|
|
self.computer_wins = 0
|
|
self.user_wins = 0
|
|
self.rounds = 0
|
|
|
|
def klunsa(self):
|
|
return randint(1,3)
|
|
|
|
def play(self, user):
|
|
computer = self.klunsa()
|
|
|
|
if user not in range(0,4):
|
|
print("Ej korrekt val! Försök igen!")
|
|
return None
|
|
|
|
# Avsluta om användaren skriver in 0
|
|
if user == 0:
|
|
print("#################################################")
|
|
print("Användaren avslutade spelet!")
|
|
return 'exit'
|
|
|
|
# Skriva ut omgångens resultat
|
|
print(f'Resultat användare: {self.val[user-1]}, dator: {self.val[computer-1]}')
|
|
|
|
# Kolla vem som vann omgången
|
|
if user == computer:
|
|
print("Oavgjort!")
|
|
elif user == 1 and computer == 2:
|
|
print("Du vann")
|
|
self.user_wins += 1
|
|
elif user == 2 and computer == 3:
|
|
print("Du vann")
|
|
self.user_wins += 1
|
|
elif user == 3 and computer == 1:
|
|
print("Du vann")
|
|
self.user_wins += 1
|
|
elif computer == 1 and user == 2:
|
|
print("Datorn vann")
|
|
self.computer_wins += 1
|
|
elif computer == 2 and user == 3:
|
|
print("Datorn vann")
|
|
self.computer_wins += 1
|
|
elif computer == 3 and user == 1:
|
|
print("Datorn vann")
|
|
self.computer_wins += 1
|
|
|
|
print("#################################################")
|
|
self.rounds += 1
|
|
return self.winner_game()
|
|
|
|
def winner_game(self):
|
|
# När någon kommer till 3 vinster så avslutas spelet
|
|
if self.user_wins == 3 or self.computer_wins == 3:
|
|
if self.user_wins == 3:
|
|
print(f'Användaren fick 3 vinster först och vann!')
|
|
elif self.computer_wins == 3:
|
|
print(f'Datorn fick 3 vinster först och vann!')
|
|
return 'exit'
|
|
|
|
def game_score(self):
|
|
print(f'Ställning användaren: {self.user_wins}, dator: {self.computer_wins}')
|
|
|
|
|
|
def main():
|
|
|
|
game = TheGame()
|
|
|
|
print("Sten, Sax, Påse. Först till 3 vinster!")
|
|
print("#################################################")
|
|
|
|
while True:
|
|
|
|
if game.rounds > 0:
|
|
game.game_score()
|
|
|
|
try:
|
|
user = int(input("Välj 1=Sten, 2=Sax, 3=Påse, 0 för att avsluta: "))
|
|
except ValueError:
|
|
print("Ej korrekt val! Försök igen!")
|
|
continue
|
|
|
|
result = game.play(user)
|
|
|
|
if result == 'exit':
|
|
break
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main() |