Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
87 lines (75 sloc) 5.63 KB
''' άσκηση από το http://pythonies.mysch.gr/chapters/nim.pdf
Να επεκτείνετε το παιχνίδι Ανάμεσα ή Acey Ducey, έτσι ώστε να
παίζεται επαναληπτικά. Το πρόγραμμά σας θα πρέπει αρχικά να ρω-
τάει τον παίκτη το συνολικό ποσό με το οποίο επιθυμεί να ξεκινήσει το
παιχνίδι. Με το ίδιο ακριβώς ποσό θα ξεκινήσει και η «μάνα». Σε κάθε
γύρο, όταν ο παίκτης ερωτάται για το ποσό που θα στοιχηματίσει, το
πρόγραμμά σας θα πρέπει να ελέγχει ότι το ποσό αυτό είναι θετικό και
δεν ξεπερνά το συνολικό ποσό που διαθέτει εκείνη την στιγμή ο παί-
κτης, διαφορετικά θα πρέπει να επαναλαμβάνει την ερώτηση μέχρι το
στοίχημα να είναι έγκυρο. Το παιχνίδι θα τελειώνει όταν εξαντληθούν τα
χρήματα του παίκτη ή της «μάνας».
'''
import random
import time
# ερώτηση για το συνολικό ποσό που διαθέτει ο παίκτης για πονταρίσματα
print("Πόσα χρήματα είσαι διατεθειμένος να ποντάρεις συνολικά;", end=" ")
money = int(input())
# εδώ θα χρησιμοποιήσουμε μια δεύτερη μεταβλητή, για τα χρήματα της μάνας
dealermoney = money
# το παιχνίδι θα εκτελείται επαναληπτικά μέχρι να τελείωσει το ποσό του παίκτη ή της μάνας
while money > 0 and dealermoney > 0:
# επανάληψη μέχρι τα δύο πρώτα χαρτιά να είναι έγκυρα
# (οπότε και η valid θα γίνει True)
valid = False
while not valid:
# παραγωγή δύο τυχαίων χαρτιών από το 1 μέχρι το 13
card1 = random.randint(1,13)
card2 = random.randint(1,13)
# φροντίζουμε στο πρώτο χαρτί να αντιστοιχεί ο μικρότερος αριθμός και στο δεύτερο ο μεγαλύτερος
# αν τα πράγματα δεν είναι έτσι τότε ανταλλάσουμε τις τιμές των δύο χαρτιών
if card1 > card2:
card2, card1 = card1, card2
print("Τα χαρτιά είναι το", card1, "και το", card2)
time.sleep(1)
# υπολογισμός διαφοράς των δύο χαρτιών, για να βρούμε πόσα χαρτιά είναι ανάμεσά τους
d = card2 - card1 - 1
# αν η διαφορά των δύο χαρτιών είναι επαρκής
if d >= 1:
# τα χαρτιά είναι έγκυρα
valid = True
else:
print("Θα πρέπει να ξανατραβήξω.")
# ερώτηση στον παίκτη για το ποσό που θα στοιχηματίσει
# πλέον τον ενημερώνουμε και για τα χρήματα που έχει στη διάθεσή του
print("Τα χρήματα σου είναι", money, "ευρώ")
print("Τα χρήματα της μάνας είναι", dealermoney, "ευρώ")
print("Δώσε το ποσό που θα στοιχηματίσεις:", end=" ")
amount = int(input())
# στο σημείο αυτό θα ελέγχουμε πλέον αν τα χρήματα που του έχουν απομείνει επαρκούν
# για να στοιχηματίσει το συγκεκριμένο ποσό
while amount > money:
print("Τα χρήματα σου είναι", money, "ευρώ και δεν αρκούν για να στοιχηματίσεις αυτό το ποσό.")
print("Δώσε το ποσό που θα στοιχηματίσεις:", end=" ")
amount = int(input())
# παράγουμε το τρίτο χαρτί κι ενημερώνουμε κατάλληλα για το αν έχει χάσει ή κερδίσει
card3 = random.randint(1,13)
print("Το τρίτο χαρτί είναι το", card3)
if card3 > card1 and card3 < card2:
# υπολογισμός του ποσού που κέρδισε, αφαιρώντας το ποσό πονταρίσματος
gain = int((12 / d) * amount) - amount
print("Κέρδισες", gain, "ευρώ")
# προσθέτουμε στα συνολικά του χρήματα το ποσό που κέρδισε
money = money + gain
# ενημερώνουμε κατάλληλα και το ποσό της μάνας
dealermoney = dealermoney - gain
else:
print("Κρίμα, έχασες!")
# αφαιρούμε το ποσό που στοιχηματίζει από τα χρήματά του
money = money - amount
# και το προσθέτουμε στα χρήματα της μάνας
dealermoney = dealermoney + amount
if money == 0:
print("Έχασες όλα σου τα χρήματα. Δεν πειράζει, θα σε περιμένουμε ξανά για να χάσεις κι άλλα!")
else:
print("Τίναξες την μπάνκα στον αέρα, τυχερούλι!")