Γεννήτρια τυχαίων αριθμών Javascript σε μια περιοχή. Τυχαίοι αριθμοί

2 Ιουνίου 2013 στις 10:56 μ.μ Ελέγχεται τυχαίασε JavaScript
  • JavaScript

Ένας «αλγόριθμος» για την τυχαία επιλογή τιμών από έναν πίνακα χωρίς επανάληψη τους. Πιο συγκεκριμένα, στο πλαίσιο της εκπαίδευσης μου στο JS, το χρησιμοποίησα για να δημιουργήσω μια κλασική ομάδα χαρακτήρων RPG (βάρβαρος, μάγος, κλέφτης, ιππότης, ιερέας), χωρίς να επαναλαμβάνω τάξεις και ονόματα.

Η αρχή είναι εξαιρετικά απλή, αλλά μπορεί να είναι χρήσιμη για αρχάριους JS όπως εγώ. Η σύνδεση με το RPG είναι καθαρά συμβολική - τώρα προσπαθώ ενεργά να αλλάξω το προφίλ μου από μάρκετινγκ σε πληροφορική (συνειδητοποίησα ότι η ψυχή μου λέει ψέματα) και να εξασκηθώ φόρμα παιχνιδιούπολύ πιο ενδιαφέρον.

1. Δημιουργήστε ένα πρότυπο Πριν δημιουργήσετε μια ομάδα χαρακτήρων, πρέπει να ορίσετε ένα πρότυπο για τη δημιουργία τους. Στην πραγματικότητα, εδώ είναι:

Λειτουργία GamePlayer(n, r, l, p) ( this.nick = n; this.role = r; this.level = l; this.portrait = p; )
Στην πραγματικότητα, αυτή η συνάρτηση θα δημιουργήσει χαρακτήρες από τις μεταβλητές μέσω των οποίων θα καλείται. Για παράδειγμα:

Var player1 = νέος GamePlayer ("Power Ranger", "barbarian", "64", "img/barbarian.jpg")
Τώρα η μεταβλητή player1 αποθηκεύει έναν βάρβαρο Power Ranger επιπέδου 64 με ένα συγκεκριμένο πορτρέτο. μπορούμε να εμφανίσουμε οποιαδήποτε παράμετρό της στο σώμα της σελίδας χρησιμοποιώντας player1.nick , player1.level κ.λπ.

Οι τιμές (n, r, l, p) από το GamePlayer είναι υπεύθυνες για τη λήψη και τη σειρά με την οποία λαμβάνονται τα δεδομένα στη συνάρτηση. Αν στο παράδειγμα ανταλλάξουμε τα n και r, τότε ο ισχυρός ranger Barbarian θα παραμείνει στον player1, κάτι που δεν ανταποκρίνεται απόλυτα στην εργασία.

2. Ορισμός πινάκων Για να μην δημιουργήσουμε μόνοι μας χαρακτήρες, αλλά να τους δημιουργήσουμε σχεδόν τυχαία (όπως υποσχέθηκε στον τίτλο), χρειαζόμαστε πίνακες από τους οποίους θα πάρουμε τις παραμέτρους των ίδιων χαρακτήρων. Όπως ήδη περιγράφηκε παραπάνω, έχουμε μόνο 4 παραμέτρους: όνομα χαρακτήρα, κλάση, επίπεδο και πορτραίτο.

Πίνακας για το όνομα:

Var playerNames = ["Rabbit Helpless", "Warm Dreaded Foal", "Desire Kit", "Angel Dusty", "Sweety Frozen", "Silver Heavy Wombat", "Lost Puma", "Vital Panda", "Rolling Sun" , "Steel Runny", "Young Fox", "Needless Ruthless Volunteer", "Chipmunk Cult", "Indigo Puppy"];
Θα ήταν δυνατό να προχωρήσουμε παραπέρα και να δημιουργήσουμε ονόματα από 2-3 στοιχεία, αλλά ο αλγόριθμος για μια τέτοια βελτίωση δεν περιέχει τίποτα νέο (την ίδια τυχαιότητα) και στη συνέχεια απλώς θα περιέπλεκε εκπαιδευτική διαδικασία.

Πίνακας για την τάξη:

Var playerRoles = ["βάρβαρος", "μάγος", "απατεώνας", "ιππότης", "ιερέας"];
Όλα είναι εξίσου προφανή. Αρκετές συμβολοσειρές, από τις οποίες στη συνέχεια θα επιλέξουμε τιμές για εμφάνιση στη σελίδα.

Πίνακας για επίπεδο:

ΣΕ συγκεκριμένο παράδειγμα, ήθελα όλα τα μέλη του κόμματος να είναι μεταξύ των επιπέδων 60 και 70. Όμως, επειδή οι συνθήκες μπορεί να αλλάξουν, ήταν απαραίτητο να δημιουργηθεί ένας πίνακας από το επίπεδο 0 έως το 80, από τον οποίο στη συνέχεια επιλέξτε τις απαιτούμενες τιμές. Δημιουργήθηκε σε βρόχο:

Var playerLevels = ; για (i = 0;i