Πίνακας περιεχομένων:
- Βήμα 1: Επισκόπηση
- Βήμα 2: Υλικά
- Βήμα 3: Κάνοντας το παιχνίδι
- Βήμα 4: Μελλοντικές τροποποιήσεις
- Βήμα 5: Συμπέρασμα
Βίντεο: Minesweeper: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Για το τελικό έργο CPE 133, ο Chase και εγώ αποφασίσαμε να δημιουργήσουμε ένα παιχνίδι «Minesweeper» που χρησιμοποίησε κουμπί και εναλλαγή εισόδου από έναν πίνακα Basys-3 καθώς και κώδικα VHDL. Ένα καλύτερο όνομα για το παιχνίδι θα μπορούσε κάλλιστα να είναι «Ρωσική ρουλέτα», ωστόσο θέλαμε να πάμε με ένα πιο φιλικό προς την οικογένεια όνομα. Το παιχνίδι περιλαμβάνει τον χρήστη να πατήσει το μεσαίο κουμπί στον πίνακα Basys για να εκχωρήσει τυχαία έναν από τους 16 διακόπτες να είναι «ενεργός» με μια βόμβα. Στη συνέχεια, δύο παίκτες αναβοσβήνουν τους διακόπτες, έναν κάθε φορά, έως ότου ένας από τους παίκτες γυρίσει τον διακόπτη με τη «βόμβα». Όταν συμβεί αυτό, η οθόνη επτά τμημάτων ειδοποιεί τους παίκτες ότι αυτός ο παίκτης μόλις έχασε το παιχνίδι.
Βήμα 1: Επισκόπηση
Το έργο χρησιμοποίησε πολλές από τις ενότητες VHDL που χρησιμοποιήσαμε κατά τη διάρκεια αυτού του τριμήνου. Ένας μετρητής τεσσάρων bit χρησιμοποιήθηκε σε συνδυασμό με την άκρη του ρολογιού προκειμένου να προσομοιωθεί ένας τυχαίος αριθμός τεσσάρων bit για να ενεργοποιηθεί ένας από τους διακόπτες. Χρησιμοποιήθηκε επίσης ένα διάγραμμα κατάστασης για την έξοδο διαφορετικών λέξεων στην οθόνη των επτά τμημάτων, που κυμαίνονται από το "PLAY" όταν οι παίκτες βρίσκονται στο μέσο του παιχνιδιού τους, έως το "LOSE" όταν ένας από τους παίκτες έχει γυρίσει τον ενεργό διακόπτη.
Βήμα 2: Υλικά
- Basys3 Development Board από την Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Αυτό το αρχείο μας δόθηκε στο Polylearn και γράφτηκε από τον Bryan Mealy)
- Ένας μετρητής 4 bit κατασκευασμένος από σαγιονάρες Τ
- Ένας FSM
Βήμα 3: Κάνοντας το παιχνίδι
Το πρώτο βήμα προς την κατασκευή αυτού του παιχνιδιού ήταν να σχεδιάσουμε ένα διάγραμμα κυκλώματος με όλα τα στοιχεία που θα χρησιμοποιήσουμε. Οι είσοδοι για αυτό το σύστημα ήταν το κουμπί 1, οι 16 διακόπτες και το ρολόι. Οι έξοδοι ήταν η επίδειξη επτά τμημάτων και οι άνοδοι. Αφού σχεδιάσαμε το διάγραμμα κυκλώματος, γράψαμε μεμονωμένα αρχεία προέλευσης για κάθε στοιχείο στο Vivado και τα συνδυάσαμε χρησιμοποιώντας χάρτες θύρας κάτω από το κύριο αρχείο προέλευσης.
Όλη η βάση του παιχνιδιού περιστρέφεται γύρω από την τυχαία εκχώρηση ενός από τους 16 διακόπτες για να είναι ενεργός με μια βόμβα και για τους παίκτες να μην γνωρίζουν ποιος διακόπτης είναι ενεργός μέχρι να ενεργοποιηθεί αυτός ο ενεργός διακόπτης. Εξετάσαμε τυχαίες και ψευδοτυχαίες γεννήτριες αριθμών στο διαδίκτυο, αλλά τελικά αποφασίσαμε ότι η χρήση ενός μετρητή 4-bit και η ανάθεση του αντίστοιχου διακόπτη ως ενεργού είναι αρκετά τυχαία για αυτό που ψάχναμε. Counterμασταν σε θέση να επαναπροσδιορίσουμε τον μετρητή μας 4-Bit που δημιουργήσαμε σε προηγούμενο έργο για να μπορέσουμε να δουλέψουμε για αυτήν την εργασία. Χρησιμοποιήσαμε τον μετρητή για να δημιουργήσουμε έναν τυχαίο αριθμό μεταξύ 0-15. Στη συνέχεια, στο κύριο στοιχείο 1, εκχωρήσαμε το δεκαδικό ισοδύναμο του τυχαίου αριθμού στον αντίστοιχο διακόπτη του στον πίνακα. Όπως φαίνεται στο σχήμα, τόσο η έξοδος X («ενεργή βόμβα») από το στοιχείο main1 όσο και οι διακόπτες που ενεργοποιούν οι παίκτες πηγαίνουν στο FSM1. Το μηχάνημα κατάστασης εξάγει μια τιμή Z ενός μπιτ, η οποία στη συνέχεια διαβάζεται από το BC_DEC1. Η Μηχανή Πεπερασμένης Κατάστασης που χρησιμοποιήσαμε έχει δύο διαφορετικές καταστάσεις: στην κατάσταση Α, οι έξι έξοδοι οθόνης «PLAY» και το μηχάνημα παραμένει σε αυτήν την κατάσταση έως ότου αναγνωρίσει ότι ο ενεργοποιημένος διακόπτης είναι αναποδογυρισμένος. Μόλις συμβεί αυτό, ο FSM πηγαίνει στην κατάσταση Β όπου εξάγει το "LOSE" στην οθόνη των επτά τμημάτων και παραμένει σε αυτήν την κατάσταση μέχρι να γυρίσουν και οι 16 διακόπτες στο "0". Όταν πληρούται αυτή η προϋπόθεση, ο FSM πηγαίνει για άλλη μια φορά στην κατάσταση Α και περιμένει τους παίκτες να ξεκινήσουν ένα άλλο παιχνίδι. Ένα διάγραμμα Moore για να κατανοήσετε αυτό το FSM φαίνεται παραπάνω.
Βήμα 4: Μελλοντικές τροποποιήσεις
Μερικές τροποποιήσεις που σκεφτήκαμε να κάνουμε στο παιχνίδι μας περιλαμβάνουν την προσθήκη περισσότερων βόμβων στο γήπεδο (πιθανώς αύξηση από μία σε τρεις), την προσθήκη μετρητή βαθμολογίας και πολλούς γύρους. Αποφασίσαμε τελικά ενάντια σε αυτές τις βελτιώσεις, καθώς διαπιστώσαμε ότι το παιχνίδι ενός μεγαλύτερου, εκτεταμένου παιχνιδιού ήταν συνήθως πιο τεταμένο και στο τέλος πιο διασκεδαστικό από ένα παιχνίδι που συνήθως τελείωσε μετά από τρεις ή τέσσερις ανατροπές.
Βήμα 5: Συμπέρασμα
Weμασταν πολύ ευχαριστημένοι με το τελικό αποτέλεσμα αυτού του έργου. όχι μόνο επειδή η τελική έκδοση του παιχνιδιού ήταν διασκεδαστική, αλλά και επειδή η δημιουργία και ο προγραμματισμός του έργου απαιτούσε να χρησιμοποιήσουμε τα περισσότερα, αν όχι όλα όσα μάθαμε αυτό το τρίμηνο. Χρησιμοποιήσαμε Flip Flops, μετρητές, FSM, το ρολόι, είσοδο χρήστη από τον πίνακα και έξοδο στην οθόνη των επτά τμημάτων.
Μάθαμε επίσης πώς μερικά σφάλματα σύνταξης θα μπορούσαν να σπάσουν τελείως το πρόγραμμα (ακόμη και αν θεωρηθούν καλά σε άλλες γλώσσες προγραμματισμού όπως η Python ή η Java) και αυτό μόνο μετά από πολλαπλές προσομοιώσεις και πολλαπλές επαναλήψεις του κώδικα που φορτώθηκαν και δοκιμάστηκαν στο board, θα μπορέσετε επιτέλους να διορθώσετε όλα τα σφάλματα από τον κώδικά σας.
Συνιστάται:
Πώς: Εγκατάσταση Raspberry PI 4 Headless (VNC) Με Rpi-imager και εικόνες: 7 βήματα (με εικόνες)
Howto: Εγκατάσταση Raspberry PI 4 Headless (VNC) Με Rpi-imager και Εικόνες: Σκοπεύω να χρησιμοποιήσω αυτό το Rapsberry PI σε ένα σωρό διασκεδαστικά έργα στο ιστολόγιό μου. Μη διστάσετε να το ελέγξετε. Iθελα να επιστρέψω στη χρήση του Raspberry PI, αλλά δεν είχα πληκτρολόγιο ή ποντίκι στη νέα μου τοποθεσία. Είχε περάσει λίγος καιρός από τότε που έστησα ένα Raspberry
Minesweeper-Raspberry-Pi-Edition: 7 βήματα (με εικόνες)
Minesweeper-Raspberry-Pi-Edition: Το τελευταίο μου έργο για τη σειρά CSC 130 στο Louisiana Tech University είναι το Minesweeper Raspberry Pi Edition. Σε αυτό το έργο, προσπάθησα να αναδημιουργήσω το κλασικό παιχνίδι ναρκαλιευτής χρησιμοποιώντας τη βιβλιοθήκη Tkinter του προγραμματισμού Python
Πώς να αποσυναρμολογήσετε έναν υπολογιστή με εύκολα βήματα και εικόνες: 13 βήματα (με εικόνες)
Πώς να αποσυναρμολογήσετε έναν υπολογιστή με εύκολα βήματα και εικόνες: Αυτή είναι μια οδηγία σχετικά με τον τρόπο αποσυναρμολόγησης ενός υπολογιστή. Τα περισσότερα από τα βασικά στοιχεία είναι αρθρωτά και αφαιρούνται εύκολα. Ωστόσο, είναι σημαντικό να είστε οργανωμένοι σε αυτό. Αυτό θα σας βοηθήσει να αποφύγετε την απώλεια εξαρτημάτων και επίσης να κάνετε την επανασυναρμολόγηση να
Αποδώστε τρισδιάστατες εικόνες των PCB σας χρησιμοποιώντας Eagle3D και POV-Ray: 5 βήματα (με εικόνες)
Αποδώστε τρισδιάστατες εικόνες των PCB σας χρησιμοποιώντας Eagle3D και POV-Ray: Χρησιμοποιώντας Eagle3D και POV-Ray, μπορείτε να δημιουργήσετε ρεαλιστικές τρισδιάστατες αποδόσεις των PCB σας. Το Eagle3D είναι ένα σενάριο για EAGLE Layout Editor. Αυτό θα δημιουργήσει ένα αρχείο ανίχνευσης ακτίνων, το οποίο θα σταλεί στο POV-Ray, το οποίο με τη σειρά του θα βγει τελικά από το τελικό im
Κάμερα για εικόνες λήξης χρόνου που έγιναν εύκολα .: 22 βήματα (με εικόνες)
Camera for Time Lapse Pictures Made Easy: Έλεγχα ένα από τα άλλα Instructables σχετικά με την παραγωγή ταινιών time lapse. Καλύπτει αρκετά καλά το κομμάτι της ταινίας. Μίλησε για το δωρεάν λογισμικό που μπορείτε να κατεβάσετε για να κάνετε ταινίες. Είπα στον εαυτό μου, νομίζω ότι θα δω αν μπορώ