Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
62 lines (61 sloc) 2.62 KB
import random
def next(p):
""" Επιστρέφει τον αριθμό του παίκτη
που παίζει μετά τον παίκτη p.
p: αριθμός παίκτη (1 ή 2)
"""
if p == 1:
return 2
else:
return 1
def maxMatches(m):
""" Επιστρέφει το μέγιστο πλήθος σπίρτων
που επιτρέπεται να αφαιρεθούν.
m: πλήθος σπίρτων που απομένουν
"""
# το πολύ 3 σπίρτα ή όσα απομένουν
if m > 3:
return 3
else:
return m
def readMatches(p,m):
""" Διαβάζει από το χρήστη κι επιστρέφει
το πλήθος σπίρτων που θα αφαιρεθούν.
Εξασφαλίζει ότι η τιμή είναι έγκυρη.
p: αριθμός παίκτη που παίζει
m: πλήθος σπίρτων που απομένουν
"""
# μέγιστο πλήθος σπίρτων προς αφαίρεση
limit = maxMatches(m)
# ανάγνωση σπίρτων που θα πάρει ο παίκτης
print("Παίκτη", p, "πόσα σπίρτα θέλεις;")
num = int(input())
# έλεγχος και επανάληψη (σε περίπτωση λάθους)
while num < 1 or num > limit:
# μήνυμα λάθους
print("Πάρε από 1 μέχρι και",limit,"σπίρτα.")
# ανάγνωση σπίρτων που θα πάρει ο παίκτης
print("Παίκτη", p, "πόσα σπίρτα θέλεις;")
num = int(input())
# επιστροφή τιμής
return num
# αρχικό πλήθος σπίρτων
matches = random.randint(7,21)
# εμφάνιση αρχικού πλήθους σπίρτων
print("Αρχικό πλήθος σπίρτων:", matches)
# επιλογή παίκτη-υπολογιστή
computer = random.randint(1,2)
# ορισμός παίκτη που θα παίξει πρώτος
player = 1
# επανάληψη: συνεχίζεται όσο υπάρχουν σπίρτα
while matches > 0:
# ανάγνωση σπίρτων που θα πάρει ο παίκτης
removed = readMatches(player, matches)
# μείωση σπίρτων
matches = matches - removed
# εμφάνιση πλήθους σπίρτων που απομένουν
print("Σπίρτα που απομένουν:", matches)
# εναλλαγή παίκτη
player = next(player)
# εμφάνιση αποτελέσματος παιχνιδιού
print("Παίκτη", player, "κέρδισες!")