Μάθημα : ΠΛΗΡΟΦΟΡΙΚΗ Γ ΓΥΜΝΑΣΙΟΥ
-
Εμφάνιση όλων των ενοτήτων
Python: Πέτρα-Ψαλίδι-Χαρτί
Υλοποίηση του παιχνιδιού Πέτρα- Ψαλίδι - Χαρτί
|
Εισαγωγή Ο σκοπός αυτής της δραστηριότητας είναι η υλοποίηση του γνωστού παιχνιδιού Πέτρα – Ψαλίδι – Χαρτί το οποίο παίζουν δυο παίκτες, εσείς και ο υπολογιστής. Σε περίπτωση που δεν έχετε ξαναπαίξει θυμίζουμε ότι οι δυο παίκτες επιλέγουν ένα αντικείμενο και η Πέτρα κερδίζει το Ψαλίδι, το Ψαλίδι κερδίζει το Χαρτί το οποίο κερδίζει την Πέτρα.
|
Πως επιλέγει ο υπολογιστής:
Θέλουμε ο υπολογιστής να επιλέξει στην τύχη ένα εκ των Πέτρα/Ψαλίδι/Χαρτί. Για αυτό τον λόγο θα χρησιμοποιήσουμε την εντολή random.randint(0,2) η οποία επιστρέφει με τυχαίο τρόπο έναν εκ των αριθμών 0, 1 ή 2.
Η σειρά του υπολογιστή
Ο υπολογιστής θα παίζει σε κάθε γύρο καλώντας την random.randint. Αν η συνάρτηση επιστρέψει 0 σημαίνει ότι ο υπολογιστής παίζει Πέτρα (R), 1 για Ψαλίδι (S) και 2 για Χαρτί (P). Να συμπληρώσετε το παρακάτω τμήμα κώδικα έτσι ώστε στη μεταβλητή computer να καταχωρείται η επιλογή του υπολογιστή.
|
RPS = [“Π”, “Ψ”, “Χ”] choise = random.randint(0,2) computer: ___________________ |
Τώρα είναι η σειρά του παίχτη
Τώρα είναι η σειρά του παίκτη. Το πρόγραμμα θα ζητάει από τον παίκτη την επιλογή του η οποία θα είναι "Π", "Ψ", ή "Χ" με χρήση της input όπως φαίνεται παρακάτω:
|
player = input ( “Δώσε την επιλογή σου: Π για Πέτρα, Χ για χαρτί και Ψ για ψαλίδι” ) |
Στη συνέχεια ελέγχοντας όλους τους συνδυασμούς μεταξύ computer και player το πρόγραμμα θα εμφανίζει κατάλληλο μήνυμα για το νικητή ή την ισοπαλία του γύρου, και στο τέλος θα εμφανίζει τις επιλογές και των δυο, ώστε να φαίνεται ότι δεν ..... κλέβει.
|
if computer == "Χ" and player == "Ψ" : # το ψαλίδι κερδίζει το χαρτί print ( " Κέρδισες!!! " ) elif computer == "X" and player == “Π" : …………………….. ……………………… print ( "You = ", player ) print ( " Computer = ", computer ) |
Παρακάτω δίνεται μια οθόνη εκτέλεσης του παιχνιδιού, με ελαφρά διαφορετικά μηνύματα από αυτά που έχω παραπάνω. Μπορείτε να βάλετε και εσείς τα δικά σας μηνύματα στα αγγλικά ή στα ελληνικά.
|
Δώσε την επιλογή σου: Π για Πέτρα, Χ για χαρτί και Ψ για ψαλίδι Χ ΕΧΑΣΕΣ! You : Χ Computer : Ψ |
Επαναλαμβανόμενοι Γύροι
Μέχρι στιγμής έχουμε σχεδιάσει ένα παιχνίδι το οποίο όμως έχει ένα μόνο γύρο. Το πρόγραμμα θα έχει 5 γύρους.
|
For i in range(5):
|
Κρατάμε σκορ;
Ας λύσουμε τώρα το δεύτερο προβληματάκι που διαπιστώσαμε, ότι δηλαδή ενώ έχουμε τη δυνατότητα να παίζουμε πολλούς γύρους, στο τέλος δεν φαίνεται το σκορ. Για να κρατάμε το σκορ αρκεί να μετράμε τις νίκες κάθε παίκτη και στο τέλος του παιχνιδιού να εμφανίζουμε το τελικό σκορ. Έτσι θα χρειαστούμε 3 μεταβλητές, μια για τις δικές μας νίκες, μια για τις νίκες του υπολογιστή και μια για τις ισοπαλίες. Ανάλογα με το αποτέλεσμα θα αυξάνεται η αντίστοιχη μεταβλητή, όπως φαίνεται στο παρακάτω τμήμα κώδικα:
|
win = lost = draw = __ For ……… : if computer == "Χ and player == "Ψ" : # το ψαλίδι κερδίζει το χαρτί print ( "Κέρδισες! " ) win += 1 elif …. . . elif player == computer: print (“Ισοπαλία") Draw += 1
…. elif __________ : print ( " Έχασες !!! " ) lost += 1 |
- Ποιες πιστεύετε ότι πρέπει να είναι η αρχικές τιμές των win, lost, draw?
- Τι θα συμβεί αν ο χρήστης δεν δώσει κάποιο από τα κεφαλαία γράμματα Π, Ψ, Χ. Πως μπορούμε να αντιμετωπίσουμε αυτό το πρόβλημα;
Απαιτητικό
1. Μπορείτε να προσθέσετε τη συνθήκη while έτσι ώστε το παιχνίδι να σταματάει όταν κάποιος κερδίζει με διαφορά 10 νίκες;
2. Να δώσετε μια δεύτερη έκδοση του προγράμματός σας στην οποία ο υπολογιστής θα προσπαθεί να κερδίσει τον άνθρωπο με τον εξής τρόπο: Δεν θα επιλέγει στην τύχη αλλά θα καθορίζει την επιλογή έτσι ώστε να κερδίζει πάντα, αφού θα γνωρίζει την επιλογή του παίκτη. Θα διαβάζει πρώτα την επιλογή και αμέσως θα εμφανίζει την δική του αλλά δεν θα είναι τυχαία (θα κλέβει δηλαδή ☺ )