>> ZAMYLA CHAN: Ας έχουν διασκέδαση με δεκαπέντε.
Δεκαπέντε είναι το πρώτο παιχνίδι που μπορείτε να πάρετε να εφαρμόσουν και είναι διαδραστικές.
Τώρα, μην ανησυχείτε.
Δεν χρειάζεται να γράψετε την ολόκληρο το πράγμα στον εαυτό σας.
Κοιτάξτε τον κώδικα της διανομής, επειδή ένα μεγάλο μέρος της δομής του παιχνιδιού είναι ήδη
δημιουργηθεί για εσάς.
Αποδέχεται και αναλύει μια γραμμή εντολών επιχείρημα από το χρήστη και δημιουργεί μια
διοικητικό συμβούλιο με βάση την εν λόγω είσοδο.
Ελέγχει αν το παιχνίδι έχει κερδίσει και τις εξόδους μόλις ο χρήστης κέρδισε το παιχνίδι.
Και για να κερδίσει το παιχνίδι, παίρνει εισόδου από το χρήστη και
καλεί τη συνάρτηση Move.
>> Έτσι θα πάμε να υλοποιούν τέσσερα λειτουργίες για το παιχνίδι των Δεκαπέντε,
init, επιστήσει, κίνηση, και κέρδισε.
Κατ 'αρχάς, ας αντιμετωπίσουμε init.
Σε init, για αρχικοποιούν, εμείς εκπροσωπούμε το διοικητικό συμβούλιο σε ένα 2D πίνακα ακεραίων.
Και αυτό είναι μια καθολική μεταβλητή που ονομάζεται με διαστάσεις MAX, και MAX,
οι μέγιστες διαστάσεις του σκάφους.
Τώρα, η πραγματική διάσταση του διοικητικού συμβουλίου δίνεται από το χρήστη, που εκπροσωπούνται στο
ο ακέραιος d, η οποία θα μπορούσε είναι μικρότερο από το μέγιστο.
Όμως, σε C, μπορείτε να αλλάξετε το μέγεθος δεν συστοιχίες, έτσι είστε κολλημένοι με
ότι η μέγιστη διάσταση.
>> Η δουλειά σου είναι στο init είναι για να συμπληρώσετε οι τιμές του διοικητικού συμβουλίου
με τη σωστή τιμή.
Τώρα, έχουμε δει 1D συστοιχίες, αλλά πώς 2D συστοιχίες δουλειά;
Υπάρχει ένας δείκτης της σειράς, το μηδέν αναπροσαρμόζονται όπως πάντα, και στη συνέχεια, επίσης από
Η στήλη.
Και θα γεμίσει δίκτυο σας στο φθίνουσα αξίες, όπως ακριβώς αυτό.
Πλέγμα, 0, 0, 0 γραμμή, στήλη 0, είναι 8, πλέγμα 0, 1 είναι 7.
Αυτό είναι για παράδειγμα, όπου ά, λίγο ά, είναι 3.
>> Τώρα, το διοικητικό συμβούλιο στην Δεκαπέντε πρέπει επίσης να περιέχει ένα κενό πλακάκι, αν έχετε ποτέ
παίζεται με το φυσικό παιχνίδι.
Όμως, το διοικητικό συμβούλιο είναι ένας πίνακας ακέραιος, έτσι όλες οι τιμές πρέπει να είναι ακέραιοι.
Έτσι είναι στο χέρι σας να αποφασίσετε έναν ακέραιο αξία να αντιπροσωπεύει ένα κενό κεραμίδι.
Για να προετοιμαστεί σκάφους σας, μπορείτε να χρησιμοποιήσετε δομές βρόχου να περιέχει το
κατάσταση έναρξης του διοικητικού συμβουλίου, όπου σκάφους θ ι αντιπροσωπεύει το στοιχείο σε
i γραμμή και την j στήλη.
Αρχίζουν σε φθίνουσα σειρά και, θυμηθείτε, ότι αν ο αριθμός των πλακιδίων
Είναι περίεργο, τότε θα πάμε να πρέπει να ανταλλάξουν τη θέση του 2 και του 1.
Έτσι λοιπόν, έχουμε μας προετοιμαστεί σκάφους.
>> Τώρα, που έχουμε προετοιμαστεί μας του σκάφους, ήρθε η ώρα να το συντάξει.
Κλήρωση θα εκτυπώσετε την τρέχουσα κατάσταση της διοικητικό συμβούλιο, αλλά θα πρέπει να βεβαιωθείτε
για την εκτύπωση κεραμίδια με την ίδια σειρά ότι τους έχετε προετοιμαστεί.
Και θα πρέπει επίσης να μορφοποιήσετε αριθμοί σας σωστά.
Διότι μπορεί να έχουμε μονοψήφια και διψήφια, τότε θα θέλετε να
εκτυπώσετε ένα κενό διάστημα πριν κάθε μονοψήφια νούμερα.
Μπορείτε να χρησιμοποιήσετε ότι με τη χρήση η κράτηση θέσης -.
>> Αλλά να θυμάστε κενό χώρο μας.
Δεν θέλουμε να εκτυπώσετε τον πραγματικό αριθμό ότι έχουμε επιλεγεί για να εκπροσωπήσει
ότι κενό στο διοικητικό συμβούλιο, αλλά επίσης δεν θέλετε να εκτυπώσετε τίποτα.
Έτσι τι μπορείτε να κάνετε είναι να καθορίσει ένα σύμβολο ή χαρακτήρα που θα εκπροσωπεί την
κενό κεραμίδι.
Στα προηγούμενα παραδείγματα, έχω επιλέξει μια υπογραμμίζουν, και, στη συνέχεια, απλά εκτυπώνετε
ότι κάθε φορά που θα φτάσετε στο κενό χώρου σε συνάρτηση με κλήρωση σας.
>> Έτσι σχεδιάζετε θα έχουν ένθετα για βρόχους.
Κάτι σαν αυτό.
Για κάθε σειρά, και στη συνέχεια, για κάθε τιμή η σειρά, θα πάμε για να εκτυπώσετε το
αξία σε αυτό το χώρο.
Αφού έχετε εκτυπώσει όλες τις τιμές στη σειρά, τότε θα
να εκτυπώσετε μια νέα γραμμή.
Θυμηθείτε ότι η εντολή για την κλήρωση σας λειτουργία πρέπει να επαναλάβω ή να αντικατοπτρίζει τη σειρά
προετοιμαστεί σε λειτουργία σας.
>> Τώρα που έχετε προετοιμαστεί το διοικητικό συμβούλιο και ότι το έχετε που, ήρθε η ώρα να αφήσουμε
ο χρήστης να επεξεργαστείτε και να κάνουν τις κινήσεις τους.
Έτσι, με τη λειτουργία Fifteen.c, η πρόγραμμα παίρνει είσοδο από το χρήστη και
Στη συνέχεια καλεί τη συνάρτηση κίνηση, περνώντας στον αριθμό του πλακιδίου ότι η
χρήστης θέλει να κινηθεί.
Τώρα, πρέπει να είστε προσεκτικοί.
Αυτός είναι ο πραγματικός αριθμός των πλακιδίων και όχι την πραγματική θέση της.
Έτσι, θα χρειαστεί να ψάξετε για την πλακιδίων θέση να γνωρίζει πού είναι.
>> Τώρα, θα πρέπει να επιτρέπει μόνο στον χρήστη να κάνει μια κίνηση αν είναι νόμιμο.
Μια νόμιμη κίνηση είναι κάθε πλακάκι που είναι δίπλα στο κενό κεραμίδι.
Αυτό σημαίνει, πάνω και κάτω, για να τα αριστερά και προς τα δεξιά.
Έτσι, θα πρέπει να ξέρετε πού το κενό κεραμίδι είναι τόσο καλά.
Τώρα, για κάθε κίνηση που αναζητάτε το κεραμίδι χρήστες, αλλά είναι μάλλον
δεν καλύτερο να ψάξει για το τυφλό πλακιδίων κάθε φορά, γιατί το κάνετε
κάθε φορά που το χρήστης θέλει να κινηθεί.
Έτσι, αντ 'αυτού, είναι καλύτερο να θυμάστε, όπου το κενό πλακίδιο χρησιμοποιώντας κάποια
και οι μεταβλητές με όνομα.
Έτσι, τη στιγμή που επιτρέπουν στο χρήστη να κάνει τους κινήσεις, που είναι καλά για τους
τρόπος για να κερδίσει το παιχνίδι των Δεκαπέντε.
>> Για να κερδίσετε το παιχνίδι των Δεκαπέντε, τα πλακάκια πρέπει να είναι σε μια συγκεκριμένη σειρά, και
το κέρδισε η λειτουργία ελέγχει κατά πόσον το παιχνίδι κερδίζεται.
Επιστρέφει True αν το παιχνίδι έχει κερδίσει και τα κεραμίδια είναι στη σωστή σειρά,
και False διαφορετικά.
Έτσι για να κερδίσει το παιχνίδι των Δεκαπέντε, πλακάκια πρέπει να αύξουσα σειρά, με το
κενό κεραμίδι στην κάτω δεξιά γωνία.
Τόσο πώς μπορείτε να ελέγξετε αν ο χρήστης προχώρησε το διοικητικό συμβούλιο στη δεξιά
προσανατολισμού;
>> Λοιπόν, θα επαναλάβει πάνω από το διοικητικό συμβούλιο και ελέγξετε τις τιμές για να βεβαιωθείτε ότι
θα είστε στο σωστό μέρος.
Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε ένθετα για βρόχους ακριβώς όπως κάνατε
στην ισοπαλία και στο init.
Υπάρχουν δύο τρόποι για να ελέγξετε και να επικυρώνει αν ο πίνακας είναι
ορθή και μια νίκη σχηματισμό, όμως.
Αν πάτε από αριστερά προς τα δεξιά, αρχίζοντας από την κορυφή προς τα κάτω γραμμή, τότε κάθε
αριθμός πρέπει να είναι μεγαλύτερη από ό, τι η προηγούμενη.
Να είστε προσεκτικοί σχετικά με το τι έχετε αξία επιλεγεί για την κενή κεραμιδιών σας όμως.
>> Ή μπορείτε να χρησιμοποιήσετε ένα μετρητή μεταβλητή εξασφαλίζει ότι κάθε τιμή είναι στη θέση του, εάν
έχετε καταλήξει με κάποιο είδος φόρμουλα να εκπροσωπεί αυτό.
Έτσι έχει τη διασκέδαση πειραματίζονται με τα μαθηματικά.
Αφού έχετε καταλήξει με κάποιο τρόπο, την επιστροφή Είναι αλήθεια ότι μόλις ο χρήστης έχει κερδίσει το παιχνίδι.
Αλλά αν υπάρχει η τιμή είναι εσφαλμένη, η επιστροφή Λάθος, ο χρήστης πρέπει να συνεχίσει να κινείται
επειδή δεν έχουν κερδίσει το παιχνίδι.
Μόλις εφαρμογή αυτού του ελέγχου και, κατά με αρχικοποιούν, ισοπαλία, και να προχωρήσουμε,
έχετε τελειώσει το παιχνίδι των Δεκαπέντε.
Συγχαρητήρια και να διασκεδάσουν παίζοντας.
Το όνομά μου είναι Zamyla και αυτό είναι CS50.