Ένα βροχερό απόγευμα, κάθεσαι στο τραπέζι της κουζίνας και παίζεις χαρτιά με τη γιαγιά σου. Το παιχνίδι είναι η δική της εκδοχή του παιχνιδιού Camicia.
Στην αρχή μοιάζει με ένα ακόμη φιλικό παιχνίδι: χαρτιά πέφτουν στο τραπέζι, γέλια γύρω από αυτό, και πού και πού ένα νικητήριο χαμόγελο από τη Nonna. Όσο όμως τραβάει το παιχνίδι, κάτι παράξενο συμβαίνει. Τα ίδια χαρτιά γυρίζουν ξανά και ξανά. Παίζεις χαρτί με το χαρτί, κι όμως το τέλος δεν φαίνεται να έρχεται ποτέ.
Αρχίζεις να αναρωτιέσαι. Θα τελειώσει άραγε ποτέ αυτό το παιχνίδι; Ή μήπως θα μπορούσαμε να παίζουμε για πάντα;
Αργότερα, από περιέργεια, ψάχνεις στο διαδίκτυο και προς έκπληξή σου ανακαλύπτεις ότι αυτό που συνέβη δεν ήταν απλώς κακή τύχη. Εσύ και η γιαγιά σου μπορεί να πέσατε πάνω σε μία από τις μεγαλύτερες δυνατές ακολουθίες! Ξαφνικά, έχεις κολλήσει. Αυτό που ξεκίνησε ως ένα χαλαρό παιχνίδι έχει γίνει αναζήτηση: πόσο μπορεί να κρατήσει στ' αλήθεια ένα τέτοιο παιχνίδι; Μπορείς να βρεις μια ακολουθία ακόμη μεγαλύτερη από αυτή που παίξατε στο τραπέζι της κουζίνας; Ίσως μάλιστα αρκετά μεγάλη για να σημειώσεις νέο παγκόσμιο ρεκόρ;
Κι έτσι, χωρίς τίποτα άλλο παρά μια τράπουλα και λίγη αλγοριθμική ευστροφία, αποφασίζεις να το ερευνήσεις...
Σε αυτή την άσκηση, θα προσομοιώσεις ένα παιχνίδι πολύ παρόμοιο με το κλασικό παιχνίδι με κάρτες Camicia. Το πρόγραμμά σου θα λάβει την αρχική διάταξη των τραπουλών δύο παικτών και πρέπει να προσομοιώσει το παιχνίδι μέχρι να τελειώσει (ή να εντοπίσει ότι δε θα τελειώσει ποτέ).
Μικρό παράδειγμα μιας παρτίδας που τελειώνει.
| Γύρος | Παίκτης Α | Παίκτης Β | Σωρός | Οφειλόμενη ποινή |
|---|---|---|---|---|
| 1 | 2 A 7 8 Q 10 | 3 4 5 6 K 9 J | - | |
| 1 | A 7 8 Q 10 | 3 4 5 6 K 9 J | 2 | - |
| 1 | A 7 8 Q 10 | 4 5 6 K 9 J | 2 3 | - |
| 1 | 7 8 Q 10 | 4 5 6 K 9 J | 2 3 A | Player B: 4 |
| 1 | 7 8 Q 10 | 5 6 K 9 J | 2 3 A 4 | Player B: 3 |
| 1 | 7 8 Q 10 | 6 K 9 J | 2 3 A 4 5 | Player B: 2 |
| 1 | 7 8 Q 10 | K 9 J | 2 3 A 4 5 6 | Player B: 1 |
| 1 | 7 8 Q 10 | 9 J | 2 3 A 4 5 6 K | Player A: 3 |
| 1 | 8 Q 10 | 9 J | 2 3 A 4 5 6 K 7 | Player A: 2 |
| 1 | Q 10 | 9 J | 2 3 A 4 5 6 K 7 8 | Player A: 1 |
| 1 | 10 | 9 J | 2 3 A 4 5 6 K 7 8 Q | Player B: 2 |
| 1 | 10 | J | 2 3 A 4 5 6 K 7 8 Q 9 | Player B: 1 |
| 1 | 10 | - | 2 3 A 4 5 6 K 7 8 Q 9 J | Player A: 1 |
| 1 | - | - | 2 3 A 4 5 6 K 7 8 Q 9 J 10 | - |
| 2 | - | 2 3 A 4 5 6 K 7 8 Q 9 J 10 | - | - |
status: "finished", cards: 13, tricks: 1
Μικρό παράδειγμα μιας παρτίδας που μπαίνει σε βρόχο.
| Γύρος | Παίκτης Α | Παίκτης Β | Σωρός | Οφειλόμενη ποινή |
|---|---|---|---|---|
| 1 | J 2 3 | 4 J 5 | - | - |
| 1 | 2 3 | 4 J 5 | J | Player B: 1 |
| 1 | 2 3 | J 5 | J 4 | - |
| 2 | 2 3 J 4 | J 5 | - | - |
| 2 | 3 J 4 | J 5 | 2 | - |
| 2 | 3 J 4 | 5 | 2 J | Player A: 1 |
| 2 | J 4 | 5 | 2 J 3 | - |
| 3 | J 4 | 5 2 J 3 | - | - |
| 3 | J 4 | 2 J 3 | 5 | - |
| 3 | 4 | 2 J 3 | 5 J | Player B: 1 |
| 3 | 4 | J 3 | 5 J 2 | - |
| 4 | 4 5 J 2 | J 3 | - | - |
Η αρχή του 4ου γύρου ταιριάζει με την αρχή του 2ου γύρου. Θυμήσου, η αξία των αριθμητικών καρτών δεν έχει σημασία.
status: "loop", cards: 8, tricks: 3
"finished" ή "loop"
Για όσους θέλουν να αναλάβουν μια πιο συναρπαστική πρόκληση, η αναζήτηση άλλων ρεκόρ για το μεγαλύτερο παιχνίδι που έχει τέλος είναι ακόμη ανοιχτή. Υπάρχουν 653.534.134.886.878.245.000 (περίπου 654 εκατομμύρια τρισεκατομμύρια) πιθανότητες, και δεν τις έχουμε υπολογίσει όλες ακόμα!
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Lean με 100 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.