Game-fil samt uppdaterad readme
This commit is contained in:
parent
10b4f97d4d
commit
78e6b05917
12
README.md
12
README.md
@ -1 +1,11 @@
|
|||||||
# BlackJack
|
# 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
104
game.py
Normal 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()
|
||||||
Loading…
Reference in New Issue
Block a user