HY252 – Οντοκεντρικός Προγραμματισμός

Περιγραφή Projects

Klondike Solitaire

Είναι η πιο διαδεδομένη πασιέντζα, μια υλοποίηση της μπορείτε να βρείτε και στα MS-Windows.
Στο παιχνίδι αυτό υπάρχουν τέσσερις τύπου σωροί με κάρτες:

?	Η τράπουλα (deck pile)
?	Ο σωρός με τα χαρτιά ίδιου χρώματος – σχήματος (suit pile)
?	Το ταμπλό (table piles)
?	Ο σωρός ξεσκαρταρισμένων καρτών (discard pile)

Στόχος του παιχνιδιού είναι να φτάσουν όλες οι κάρτες με αύξουσα σειρά στα suit piles. Το 
παιχνίδι παίζεται κυρίως στο ταμπλό όπου αρχικά οι κάρτες τοποθετούνται σε 7 στήλες. Η πρώτη 
στήλη έχει μία κάρτα η δεύτερη δύο ... και η τελευταία εφτά. Οι υπόλοιπες κάρτες τοποθετούνται 
στο deck pile από όπου ο παίχτης σηκώνει κάρτες για να τις χρησιμοποιήσει στο ταμπλό ή να τις 
τοποθετήσει σε κάποιο suit pile. Για να τοποθετηθεί μια κάρτα κάτω από μια άλλη στο ταμπλό 
πρέπει να είναι διαφορετικού χρωματισμού (κόκκινο ή μαύρο) και κατά μία θέση μικρότερη στην 
ιεραρχία των καρτών της τράπουλας, ξεκινώντας από τον άσσο και καταλήγοντας στον ρήγα. Αν 
αδειάσει μια θέση στο ταμπλό, μπορεί να τοποθετηθεί μόνο ρήγας. Στα suit piles τοποθετούνται 
οι κάρτες με τη σειρά από τον άσσο στο ρήγα που έχουν το ίδιο χρώμα – σχήμα, οπότε έχουμε 
τέσσερα suit piles. Στο ταμπλό μπορούν να φτάσουν κάρτες είτε από το discard pile (η πάνω – 
πάνω κάρτα) είτε από τα suit piles. Κάθε φορά που μια κάρτα φεύγει από το deck pile πηγαίνει 
στο discard pile.

Οι επιλογές που έχει ο χρήστης είναι να αρχίσει καινούριο παιχνίδι καθώς και να ορίσει πόσες κάρτες θα τραβάει κάθε φορά που κάνει click στο deck pile. Τέλος θα μπορεί να θέσει και το πόσες φορές μπορεί να ξαναμοιράσει μέσα σε ένα παιχνίδι. Τη μετακίνηση της κάρτας μπορείτε να την υλοποιήσετε με τη χρήση δύο clicks, ένα πάνω στην κάρτα και ένα στη θέση που θέλετε να πάει είτε με τρόπο drag & drop. Κάθε φορά που μια κάρτα μετακινείτε πρέπει να ελέγχετε αν η κίνηση είναι νόμιμη και μόνο τότε να την επιτρέπετε αλλιώς θα βγάζεται το αντίστοιχο μήνυμα. Φροντίστε το παιχνίδι να χρησιμοποιεί μία τράπουλα 54 φύλλων και να μπορεί να την ανακατεύει. Επιπλέον πρέπει να χρονομετρά το κάθε παιχνίδι έτσι ώστε να κρατάει βαθμολογία ανάλογα με το χρόνο.