Πίνακας περιεχομένων:

Σύνδεσμοι από μεταβλητές σε σπάγκο με ζαχαροκάλαμο: 10 βήματα
Σύνδεσμοι από μεταβλητές σε σπάγκο με ζαχαροκάλαμο: 10 βήματα

Βίντεο: Σύνδεσμοι από μεταβλητές σε σπάγκο με ζαχαροκάλαμο: 10 βήματα

Βίντεο: Σύνδεσμοι από μεταβλητές σε σπάγκο με ζαχαροκάλαμο: 10 βήματα
Βίντεο: Как сделать и украсить плетеную подставку для пасхальных яиц DIY | Easter decorations DIY 2024, Ιούλιος
Anonim
Σύνδεσμοι από μεταβλητές σε σπάγκο με ζαχαροκάλαμο
Σύνδεσμοι από μεταβλητές σε σπάγκο με ζαχαροκάλαμο

Χαίρομαι που ξαναπήρες μαζί μου! Αυτό σημαίνει ότι το Wumpus δεν σας έχει φάει ακόμα. Καλός!

Για όσους από εσάς δεν είστε εξοικειωμένοι, αυτό είναι ένα σύνολο σεμιναρίων που κάνω για να βοηθήσω την αξιολάτρευτη ξαδέλφη μου, με το ανώτερο έργο της. Αυτά τα μαθήματα προορίζονται να είναι μια αναφορά για το τι μπορείτε να κάνετε με μερικές από τις δυνατότητες προγραμματισμού του Twine και του Sugarcube. Αν θέλετε να ακολουθήσετε, μπορείτε να βρείτε το πρώτο σεμινάριο εδώ.

Στο τελευταίο σεμινάριο, έφτιαξα ένα μικρό σύνολο δωματίων που ο παίκτης μπορεί να εξερευνήσει. Πρόσθεσα ένα αντικείμενο Wumpus και έκανα έναν γενικό κωδικό δωματίου για να αλλάξω αυτό που εμφανίστηκε σε κάθε δωμάτιο ανάλογα με το πού βρίσκεται το Wumpus.

Βήμα 1: Δημιουργήστε τη συσκευή αναπαραγωγής σας

Δημιουργήστε το πρόγραμμα αναπαραγωγής σας
Δημιουργήστε το πρόγραμμα αναπαραγωγής σας

Αυτό το βήμα είναι πολύ απλό. Ουσιαστικά χρησιμοποιώ τον ίδιο κωδικό με το $ wumpus, αλλά με μεταβλητή $ player.

Βήμα 2: Νέος κωδικός δωματίου

Νέος κωδικός δωματίου
Νέος κωδικός δωματίου

Άλλαξε τον γενικό σας κωδικό δωματίου, οπότε η τιμή του $ player είναι το τρέχον δωμάτιο. Στη συνέχεια, συγκρίνετε $ wumpus με $ player αντί για το τρέχον δωμάτιο.

Αυτή είναι μια μικρή αλλαγή και δεν είναι απολύτως απαραίτητη, αλλά μου αρέσει να διατηρώ τον κώδικα οργανωμένο.

Βήμα 3: Δημιουργία συνδέσμου από μεταβλητή

Δημιουργία συνδέσμου από μεταβλητή
Δημιουργία συνδέσμου από μεταβλητή

Τέλος, θέλω να αντικαταστήσω τον σύνδεσμο στην αίθουσα εκκίνησής μου σε έναν που αλλάζει με βάση την αξία του $ player. Αυτό μπορεί να γίνει με τη λειτουργία "" στο Sugarcube. Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό στη σελίδα τεκμηρίωσης του Sugarcube.

Η πρώτη συμβολοσειρά μετά την εντολή μας είναι η φράση που θα εμφανιστεί στο απόσπασμά μας. Το δεύτερο είναι το όνομα του αποσπάσματος στο οποίο θέλουμε να συνδεθούμε. Χρησιμοποιώ το "Hunt the Wumpus!" ως φράση μου, αλλά θα μπορούσαμε να χρησιμοποιήσουμε τη μεταβλητή μας εκεί αν θέλουμε ο παίκτης να γνωρίζει πού πηγαίνει εκ των προτέρων, όπως αυτό:

Βήμα 4: Δοκιμή

Δοκιμή
Δοκιμή
Δοκιμή
Δοκιμή

Όταν δοκιμάζετε τον κωδικό σας, θα πρέπει να διαπιστώσετε ότι ο σύνδεσμός σας έχει αντικατασταθεί με οποιαδήποτε φράση που γράψατε πριν. Κάνοντας κλικ σε οδηγεί σε ένα τυχαίο δωμάτιο στο παιχνίδι σου.

Δυστυχώς, αυτό μπορεί επίσης να σας μεταφέρει κατευθείαν στο δωμάτιο Wumpus! Αυτό δεν έχει μεγάλη σημασία αυτή τη στιγμή, αλλά σε ένα πραγματικό παιχνίδι που θα ήταν ένα άμεσο παιχνίδι. Πρέπει να το διορθώσουμε.

Βήμα 5: Προσθέστε μια λίστα δωματίων

Προσθήκη λίστας δωματίων
Προσθήκη λίστας δωματίων

Πρώτον, θα δημιουργήσουμε μια λίστα δωματίων, για να διευκολύνουμε τη διαχείριση των δωματίων. Δηλώνοντας αυτόν τον πίνακα, μπορούμε να τον χρησιμοποιήσουμε για να ορίσουμε τις τιμές $ player και $ wumpus χωρίς να επαναλάβουμε τον κώδικα. Έχει επίσης ένα άλλο πλεονέκτημα που θα εξερευνήσουμε στη συνέχεια.

Η δοκιμή με αυτόν τον κώδικα θα πρέπει να συμπεριφέρεται όπως πριν.

Βήμα 6: Εξάλειψη δωματίων

Εξάλειψη δωματίων
Εξάλειψη δωματίων

Έχω προσθέσει μια γραμμή κώδικα στον κώδικα από πριν (επισημαίνεται).

Οι πίνακες στο Sugarcube έχουν μια ενσωματωμένη λειτουργία που σας επιτρέπει να διαγράφετε στοιχεία από αυτά με το όνομά τους. Σε αυτήν την περίπτωση, μόλις αναθέσουμε $ wumpus ένα δωμάτιο, μπορούμε να διαγράψουμε αυτό το δωμάτιο από τη λίστα δωματίων $. Ωστόσο, αυτή η λειτουργία είναι επίμονη. Δεν θα λειτουργήσει αν η έξοδος της συνάρτησης δεν έχει εκχωρηθεί ή χρησιμοποιηθεί με κάποιο τρόπο. Για να το φροντίσω, έχω δημιουργήσει την προσωρινή μεταβλητή _temp.

Στο Sugarcube, οι προσωρινές μεταβλητές ξεκινούν με υπογράμμιση (_) αντί για ένα δολάριο ($). Είναι χρήσιμα επειδή διαγράφονται μόλις εκτελεστεί το απόσπασμα, οπότε δεν χρειάζεται να ανησυχείτε για επικαλυπτόμενα ονόματα μεταβλητών.

Διαγράφω επίσης το $ player room από το $ roomlist, φυσικά.

Βήμα 7: Δοκιμή

Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές

Ενώ θα μπορούσαμε να εκτελέσουμε τον κώδικα όπως είναι τώρα, αυτό δεν θα ήταν μια πολύ εμπεριστατωμένη δοκιμή. Εάν εκτελέσουμε τον κώδικα και διαπιστώσουμε ότι τα $ player και $ wumpus έχουν εκχωρηθεί σε διαφορετικά δωμάτια, δεν ξέρουμε αν αυτό οφείλεται στο ότι λειτουργεί ο κώδικας ή είναι απλώς τυχαία. Σίγουρα, θα μπορούσαμε να εκτελέσουμε τον κώδικα πολλές φορές και να υποθέσουμε ότι αν δεν τους δώσει ποτέ και τα δύο το ίδιο δωμάτιο που δεν θα το κάνει ποτέ, αλλά αυτό θα διαρκέσει για πάντα και δεν είναι ακόμα 100% διαβεβαίωση ότι δεν μπορεί να συμβεί ποτέ.

Αντ 'αυτού, χρειαζόμαστε έναν τρόπο ελέγχου.

Έχω προσθέσει τρεις γραμμές στο επάνω μέρος της εισαγωγής μας που θα μας επιτρέψουν να δούμε τις τιμές των μεταβλητών $ wumpus, $ player και $ roomlist. Λόγω του τρόπου με τον οποίο ρυθμίζουμε τον κωδικό μας, γνωρίζουμε ότι το δωμάτιο $ wumpus και $ player δωμάτιο θα πρέπει να εξαλειφθούν από τη λίστα δωματίων $.

Όταν εκτελούμε αυτόν τον κώδικα, μπορούμε να ελέγξουμε για να βεβαιωθούμε ότι ισχύει.

Βήμα 8: Παραξενιές με ζαχαροκάλαμο και αντικείμενα

Παραξενιές με ζαχαροκάλαμο και αντικείμενα
Παραξενιές με ζαχαροκάλαμο και αντικείμενα
Παραξενιές με ζαχαροκάλαμο και αντικείμενα
Παραξενιές με ζαχαροκάλαμο και αντικείμενα
Παραξενιές με ζαχαροκάλαμο και αντικείμενα
Παραξενιές με ζαχαροκάλαμο και αντικείμενα

Τα αντικείμενα του Sugarcube είναι λίγο περίεργα. Επιτρέψτε μου να το αποδείξω αυτό.

Ενώ έφτιαχνα αυτό το έργο αρχικά, ήθελα να αποθηκεύσω τη λίστα δωματίων $ σε μια μεταβλητή $ saveroom πριν ξεκινήσω τη διαγραφή δωματίων από αυτό. Σκέφτηκα ότι θα ήταν χρήσιμο αργότερα.

Όταν πήρα κάποια περίεργη συμπεριφορά από αυτόν τον κώδικα, πρόσθεσα μια άλλη γραμμή στη σελίδα εισαγωγής μου για να με αφήσει να κοιτάξω τη μεταβλητή $ saveroom μου (δεύτερη εικόνα).

Έπαθα σοκ όταν διαπίστωσα ότι τα στοιχεία που είχα διαγράψει από τη λίστα δωματίων $ είχαν επίσης διαγραφεί από την αποθηκευμένη λίστα μου! Μπορείτε να το δείτε σε δράση στην τρίτη εικόνα.

Αυτό συμβαίνει επειδή όταν αντιγράφετε έναν πίνακα όπως αυτό, δεν λέτε στην Twine να αντιγράψει τον πίνακα, λέτε στο Twine ότι αυτές οι δύο μεταβλητές είναι ο ίδιος πίνακας. Όταν κάνετε κάτι στον πίνακα χρησιμοποιώντας μία μεταβλητή, αλλάζει τον ίδιο πίνακα που κοιτάζει η άλλη μεταβλητή!

Μπορούμε να το διορθώσουμε με τη συνάρτηση clone ().

Βήμα 9: Η συνάρτηση Clone ()

Η συνάρτηση Clone ()
Η συνάρτηση Clone ()
Η συνάρτηση Clone ()
Η συνάρτηση Clone ()

Μπορείτε να διαβάσετε για τη λειτουργία κλώνος () στη σελίδα τεκμηρίωσης του Sugarcube.

Ένα "ρηχό" αντίγραφο είναι αυτό που κάναμε πριν. Αντί να δημιουργήσετε ένα πλήρες αντίγραφο ολόκληρου του πίνακα, υποθέτετε ότι η μεταβλητή σας λειτουργεί με τον ίδιο πίνακα. Αντί για ένα ρηχό αντίγραφο, ο κλώνος () κάνει ένα "βαθύ" αντίγραφο, το οποίο συμπεριφέρεται όπως θα περιμένατε. Κάθε στοιχείο του πίνακα αντιγράφεται σε έναν νέο πίνακα και είναι εντελώς ξεχωριστό από το πρωτότυπο.

Εάν δοκιμάσουμε αυτόν τον νέο κώδικα, διαπιστώνουμε ότι λειτουργεί όπως αναμενόταν.

Φυσικά, δεν έχει σημασία αν κρατάτε $ roomlist ή όχι. Για τους σκοπούς του έργου μου, δεν πρόκειται. Όλα αυτά ήταν μόνο για να επιδείξουν βαθιά έναντι ρηχών αντιγράφων.

Βήμα 10: Αυτό είναι προς το παρόν

Αυτό είναι Προς το παρόν!
Αυτό είναι Προς το παρόν!

Προσθέσαμε κώδικα που επιτρέπει στον παίκτη μας να ξεκινά σε τυχαίο δωμάτιο. Επιπλέον, έχουμε εξαλείψει ένα σφάλμα όπου ο παίκτης ξεκινούσε στο ίδιο δωμάτιο με το Wumpus.

Μάθαμε πώς να δημιουργείτε συνδέσμους από μεταβλητές και πώς αντιμετωπίζεται η αντιγραφή συστοιχιών από το Sugarcube.

Τα πράγματα αυξάνονται, αλλά μόλις αρχίζουμε!

Καλο κυνηγι!

Συνιστάται: