Game-fil samt uppdaterad readme

This commit is contained in:
jwradhe 2024-09-30 22:37:16 +02:00
parent 10b4f97d4d
commit 78e6b05917
2 changed files with 115 additions and 1 deletions

View File

@ -1 +1,11 @@
# BlackJack
Python kurs - StenSaxPåse
Starta spelet med att skriva in 'py play.py'
Spelet startar och ger användaren samt datorn 2 kort var, där dina kort visas samt datorns första.
Där får du ange 'hit / stand' för att komma vidare, väljer du 'hit' får du ett kort till, och fortsätter tills du har 21 eller väljer att stanna 'stand'.
När du kört klart din runda utan att förlora så körs datorns runda igenom tills datorn väljer att stanna.

104
game.py Normal file
View File

@ -0,0 +1,104 @@
from random import randint
import time
class BlackJack:
def __init__(self):
self.user_pts = 0
self.computer_pts = 0
# Funktion för randomkort värde 1-10
def card(self):
return randint(1, 10)
# Starta spelet, få 2 kort var
def start(self, player):
card1 = self.card()
card2 = self.card()
val = card1 + card2
if player == 'user':
self.user_pts += val
print(f'Användare startkort: {card1}+{card2}. totalt: {val}')
elif player == 'computer':
self.computer_pts += val
print(f'Dators ena startkort: {card1}')
# Fortsätta spelet, få ett kort i taget
def play(self, player):
if player == "user":
val = self.card()
self.user_pts += val
print(f'Du fick {val}, totalt {self.user_pts}')
if self.user_pts > 21:
print("Du fick över 21, game over")
return "end"
elif player == "computer":
while True:
if self.computer_pts < 17:
time.sleep(1)
val = self.card()
self.computer_pts += val
print(f'Datorn fick {val} denna omgång, totalt {self.computer_pts}')
time.sleep(1)
if self.computer_pts > 21:
print("Datorn fick över 21, du vann")
return "win"
else:
print(f'Datorn har {self.computer_pts}, men väljer att stanna.')
time.sleep(1)
return 'stop'
return None
# När spelet stoppats och ingen förlorat så kollas resultatet för vinnare.
def checkWinner(self):
if self.user_pts == self.computer_pts:
print(f'Du har {self.user_pts} och datorn har {self.computer_pts}, matchen är oavgjord!')
elif self.user_pts > self.computer_pts:
print(f'Du har {self.user_pts} och datorn har {self.computer_pts}, du vann!')
elif self.computer_pts > self.user_pts:
print(f'Du har {self.user_pts} och datorn har {self.computer_pts}, datorn vann!')
def main():
game = BlackJack()
while True:
try:
# Få startkort
if(game.user_pts == 0):
game.start('computer')
game.start('user')
# Vill användaren fortsätta
user = input("Fortsätta? (hit/stand): ").lower()
# Ja = fortsätta tills man går över 21
if user == 'hit':
result = game.play('user')
if result == "end":
break
# Nej, man stannar och datorns tur
elif user == 'stand':
result = game.play('computer')
if result == "win":
break
elif result == "stop":
game.checkWinner()
break
# Om varken hit eller stand resultat.
elif user != 'hit' or user != 'stand':
print("Felaktigt svar, försök igen!")
continue
else:
break
except ValueError:
print('Nu blev det nog lite fel här!')
if __name__ == "__main__":
main()