Τον κώδικα μπορείτε να τον δείτε και να τον κατεβάσετε από εδώ:
(λογικά γίνεται compile σε οποιονδήποτε c-compiler υποστηρίζει την αναθεώρηση C99, δεν περιέχει τίποτα το "περίεργο").
Το παιχνίδι αποτελείται από ένα πλέγμα 49 κελιών (7χ7) με το καθένα από αυτά να περιέχει από 0 έως 48 πόντους σε τυχαία σειρά (μπορεί περισσότερα του ενός κελιού να περιέχουν ίδιους πόντους). Το μισό του αθροίσματος όλων των πόντων στα κελιά είναι οι πόντοι που πρέπει να συγκεντρώσετε. Ο μέγιστος αριθμός κινήσεων που έχετε στη διάθεσή σας είναι το πλήθος των κελιών / 2 (δηλαδή 24 για πλέγμα 7χ7).
Σε κάθε γύρο στην οθόνη εμφανίζεται το πλέγμα δυο φορές: στην αριστερή μεριά δείχνει τις θέσεις των κελιών που δεν έχετε επιλέξει ακόμα και δεξιά δείχνει τους πόντους των κελιών που έχετε ήδη επιλέξει. Για να επιλέξετε κελί, πληκτρολογήστε τη θέση του στο πλέγμα, όπως εμφανίζεται στο αριστερό διάγραμμα.
Εκτός από θέσεις κελιών, μπορείτε να πληκτρολογήσετε και 3 εντολές: h (help), t (show stats), x (έξοδος) EDIT V1.5: s (save game), l (load game) EDIT V1.6: r (reset game) EDIT V1.7: i (show high-scores)
Το παιχνίδι τελειώνει είτε όταν πληκτρολογήστε x (δεν παίρνετε σκορ), είτε όταν σας τελειώσουν οι κινήσεις χωρίς να έχετε συγκεντρώσει τους απαιτούμενους πόντους (πάλι δεν παίρνετε σκορ) είτε όταν συγκεντρώσετε τους απαιτούμενους πόντους. Αυτή η τελευταία είναι η μόνη περίπτωση κατά την οποία βαθμολογήστε. Το πλήθος των κινήσεων που σας είχαν απομείνει + 1 πολλαπλασιάζονται με τους έξτρα πόντους που συγκεντρώσατε πάνω από τους απαιτούμενους + 1 EDIT V1.7: κι όλο μαζί πολλαπλασιάζεται με το γινόμενο γραμμές * στήλες του πλέγματος.
Για παράδειγμα, αν σε πλέγμα 7x7 πρέπει να συγκεντρώσετε 500 πόντους σε 24 κινήσεις κι εσείς συγκεντρώσετε 530 σε 20 κινήσεις, το σκορ σας υπολογίζετε ως εξής:
- Κώδικας: Επιλογή όλων
(24-20 + 1) * (530 - 500 + 1) * 49 = 5 * 31 * 49 = 7695
Θέλω να του προσθέσω ακόμα τη δυνατότητα να αποθηκεύει high-scores EDIT: έγινε στην έκδοση 1.7 καθώς και τη δυνατότητα αποθήκευσης παιχνιδιού και φορτώματος αποθηκευμένου παιχνιδιού. Έχω κάνει ήδη μια αρχική πρόβλεψη για αυτό το τελευταίο, βάζοντας όλες τις βασικές μεταβλητές μέσα σε μια μεταβλητή: game που είναι τύπου structure : GameStatus. Οπότε η μεταβλητή: game αναπαριστάνει ανά πάσα στιγμή την τρέχουσα κατάσταση του παιχνιδιού. Σώζοντας τις τιμές της σε ένα αρχείο όταν ο χρήστης πληκτρολογήσει εντολή αποθήκευσης είναι το μόνο που χρειάζεται για να αποθηκευτεί το παιχνίδι στον σκληρό δίσκο. Για το φόρτωμα ενός αποθηκευμένου παιχνιδιού χρειάζονται περισσότερες αλλαγές στη δομή του προγράμματος. EDIT: έγινε στην έκδοση 1.5.
Ορίστε και μερικές οθόνες από το παιχνίδι: 1, 2, 3, 4 (Έκδοση 1.0)
ΥΓ. Αλγοριθμικά το παιχνίδι δεν παρουσιάζει κανένα ενδιαφέρον, όλα είναι τελείως straight-forward, ίσως όμως χρησιμεύει σαν κώδικας σε όσους κάνουν τα πρώτα τους βήματα στη C. Όλα τα σχόλια καθώς και τα κείμενα του παιχνιδιού είναι στα Αγγλικά.