Legendary Pokémon

Full Version: Pokemon Calculator σε Excel
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Καλησπέρα στη κοινότητα.


Μετά από ενασχόληση 3 μηνών περίπου έφτιαξα ένα εργαλείο με διάφορα calculators για τα Pokemon.

Σίγουρα θέλει πολύ δουλειά ακόμα και βελτιώσεις αλλά είναι μια καλή προσπάθεια πιστεύω.

Μια σύντομη περιγραφή για το τι περιέχει (υπάρχει και μέσα στο Excel και στα Αγγλικά επίσης):



SonicPKMN Wrote:1) Φύλλο Calculators


- Experience Gain Calculator

Μπορείτε να υπολογήσετε πόσους Πόντους Εμπειρίας κέρδισε το Pokemon σας αφότου νίκησε το αντίπαλο Pokemon.
Κάτω από αυτό μπορείτε να δείτε ένα πίνακα με τις μεταβλητές που χρησιμοποιούνται.


- Experience Calculator

Συμπληρώνοντας το Επίπεδο του Pokemon και την Ομάδα Εμπειρίας του στα πορτοκαλί κελιά μπορείτε να υπολογίσετε πόσους Πόντους Εμπειρίας έχει το Pokemon στο επίπεδο που δώσατε.
Το όνομα του Pokemon είναι προαιρετικό.
* Αυτές οι πληροφορίες χρησιμοποιούνται από το Experience Training Table. *


- Hidden Power Calculator

Αυτά τα κελιά θα συμπληρόνονται μονο αν τα κελιά για τα IV στο Individual Value Calculator περιέχουν δεδομένα.
Στα δεξιά, μπορείται να δείτε τον τύπο της Hidden Power του Pokemon ανάλογα με τον αριθμό που βλεπετε στο Calculator.


- Nature Table

Μπορείτε να δείτε τους συντελεστές για κάθε Φύση. Αυτός ο πίνακας είναι μόνο για αναφορά.


- Individual Value Calculator

Συμπληρώστε το Επίπεδο και τη Φύση (το ονομα του Pokemon είναι προαιρετικl) και η σειρά με τους συντελεστές Φύσης θα συμπληρωθεί αυτόματα.
Θα πρέπει να συμπληρώσετε τα Βασικά στατιστικά του Pokemon σας (Μπορείτε να τα βρείτε στο φύλλο με το Pokedex), στα Στατιστικά του και τα EVs του.

Στη συνέχεια θα εμφανιστούν τα IVs και τα Στατιστικά του Pokemon στο Επίπεδο 100.


- Experience Training Table

Αυτός ο πίνακας δίνει κάποια σημεία που θα μπορέσετε να προπονήσετε το Pokemon σας na φτάσει στο Επίπεδο 100.

* Αλλάζοντας το Επίπεδο του Pokemon στο Experience Calculator, αλλάζει τις μάχες που πρέπει να δώσει το Pokemon για να φτάσει στο Επίπεδο 100. *


- Catch Rate Calculator

Συμπληρώστε τα αντίστοιχα πεδία με τις σωστές τιμές για να υπολογίσετε το ρυθμό πιασίματος ενός συγκεκριμένου Pokemon βασισμένο στις συνθήκες που θέλετε.


- Damage Calculator (BETA Version)

Με αυτό το εργαλείο μπορείτε να υπολογίσετε πόση ζημιά κάνει το Pokemon σας σε άλλα. Μόλις εισάγετε τα επιθυμητά στοιχεία, θα δείτε μία ελάχιστη - μέγιστη ζημιά.
* Οι τροποποιητές στατιστικών και τα Αντικείμενα δεν υποστηρίζονται προς το παρών. *
* Μέρικοι συνδυασμοί μπορεί να μην δουλέψουν καθόλου. *
* Πρέπει να περιμένετε διαφοροποιήσεις στους υπολογισμούς σε σχέση με το πραγματικό παιχνίδι. *


- Overall Harm Calculator

Με αυτό το εργαλείο μπορείτε να κατανείμετε τα EVs για να μεγιστοποίησετε τις άμυνες του Pokemon σας, είτε για το φυσικό έιτε για το ειδικό μέρος. Συμπληρώστες τα κελιά με τα επιθυμητά EVs, IVs για να υπολογίσετε τη Γενική Ζημιά (Overall Harm) ενός συγκεκριμένου Pokemon. Όσο χαμηλότερο το νούμερο, τόσο καλύτερο το αποτέλεσμα. Η στήλη Biased Overall Harm υπολογίζει συγκεκριμένα για το ειδικό ή το φυσικό μέρος.



2) Φύλλο Type Chart


Εδώ μπορείτε να βρείτε τις αδυναμίες κάθε τύπου.


3) Φύλλο Experience Table

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


4) Φύλλο EV Training Table

Μπορείτε να βρείτε ποιο Pokemon από κάθε γενιά δίνει συγκεκριμένα EVs και που μπορείτε να τα βρείτε.


5) Φύλλο Pokedex

Κάθε πληροφορία που χρειάζεστε από τα Βασικά στατιστικά μέχρι τα EVs που κερδίζονται από κάθε Pokemon μπορούν να βρεθούν εδώ.



Updates του αρχείου θα γίνονται στην παρακάτω σελίδα:

http://sonicpkmn.byethost17.com/pokemon_stuff.html


Ελπίζω να λέει τίποτα και να βοηθήσει σε κάποιο βαθμό (μιας και υπάρχουν καλύτερα εργαλεία). Είναι περισσότερο και για offline χρήση.

Οποιεσδήποτε προτάσεις, παρατηρήσεις, ή βοήθεια πάνω στο "πρόγραμμα" ευπρόσδεκτες! Big Grin (για να μάθουμε και κάτι παραπάνω φτιάχτηκε αυτό άλλωστε)


Υ.Γ.: Το αρχείο περιέχει κάποιες συναρτήσεις σε Visual Basic. Την πρώτη φορά που θα το ανοίξετε λογικά θα σας έχει διάφορα errors σε πολλά πεδία. Ενεργοποιήστε τις μακροεντολές και θα παίζει μια χαρά.
Ενδιαφέρον· θα επανέλθω με σχόλια μόλις βρω χρόνο να τα καταγράψω.
Σκεφτόμουν κάτι αντίστοιχο αλλά όχι σε Excel, μπράβο για την προσπάθεια. Smile

Θα προσπαθήσω να βρω λίγο χρόνο (και διάθεση...) να ρίξω μια ματιά. Smile
Ευχαριστώ!

Προσπάθησα να φανταστώ τι είναι χρήσιμο να βλέπεις όταν κάνεις προπόνηση των Pokemon σου και τα μάζεψα όλα μαζί σε ένα Excel. Θα μπουν και άλλα, χρήσιμα ή μη, εργαλεία αργότερα...

Προσπάθησα να τα υλοποιήσω στο βαθμό που μπορούσα.

Όλα είναι θέμα γνώσεων μιας και αν μάθεις Visual Basic τα υπόλοιπα μέσα στο Excel θα βγουν πιο άνετα αλλά δυστυχώς δεν υπάρχει χρόνος για την ώρα...

Όσο μπορώ θα το παρακολουθώ για bugs κλπ. αλλά περισσότερα από το καλοκαίρι
Μπράβο γι' αυτό που έφτιαξες (παρόλο που δεν το έχω χρησιμοποιήσει) είναι καλό ναι έχουμε τέτοια πράγμα και offline στον Η/Υ μας, τώρα μας μένει μόνο να έχουμε κάποιον να το φτιάξει για smartphone/tablet Toungue
1)Μπορεί κάποιος με λίγα λόγια τι μπορώ να κάνω με αυτό το πρόγραμμα/αρχείο Excel?Δεν το κατάλαβα πολύ καλά.
2)Βάλε οδηγό και στο Αγγλικό μέρος του φόρουμ,ώστε να το μάθουν και αυτοί που δεν διαβάζουν το Ελληνικό λόγω γλώσσας.
3)Μπράβο πάντως για τον χρόνο που αφιέρωσες.Θα βοηθήσει αρκετούς αυτό.
4)Grim,πολλά ζητάς!Toungue
Είναι λίγο περίεργο σίγουρα σε κάποια πράγματα. Όλοι οι υπολογισμοί γίνονται στην καρτέλα "Calculators".

Γενικά...

Στο Experience Gain Calculator, βάζεις τις παραμέτρους που χρειάζονται για να δεις πόσα experience ponts θα πάρει το Pokemon σου όταν νικήσει ένα αντίπαλο Pokemon.

Στο Experience Calculator, βάζεις το Level και το Experience Group ενός Pokemon και βλέπεις πόσους experience ponts έχει στο συγκεκριμένο Level.

Στο Experience Training Table βλέπεις πόσες μάχες πρέπει να δώσει το Pokemon σου για να γίνει Level 100. Εξαρτάται από το Level και το Experience Group που έβαλες στο Experience Calculator. Θα το αλλάξω όμως γιατί δεν είναι σωστό.

Το Hidden Power Calculator σου υπολογίζει τον τύπο και τη δύναμη της Hidden Power του Pokemon που θες. Παίρνει δεδομένα από το IV Calculator. Πρέπει να ξέρεις τα IV του Pokemon για να μάθεις τη Hidden Power (type και power).

Το Individual Value Calculator το λέει και το όνομα του πιστεύω. Τα Base stats,Stats και EVs μπαίνουν χειροκίνητα. Τα Nature modifiers μπαίνουν αυτόματα. Αρκεί να γράψεις το ανάλογο Nature. (Τα Base Stats για κάθε Pokemon τα βλέπεις στην καρτέλα Pokedex, θα γίνουν και αυτά αυτόματα αλλά αργότερα.)


Είπα να τα αναλύσω ξανά ένα-ένα για να είναι πιο ξεκάθαρα.

Ελπίζω να βοήθησε.

Θα το ποστάρω και εκεί τότε.
v.12 Changelog

[Bugfix] Ένα σημαντικό bug στο Experience Training Table διορθώθηκε. Επίσης, έγιναν μερικές αλλαγές.
[New Feature] Προσθήκη περισσότερων σημείων για να προπονήσετε τα Pokemon σας. Εκτός από το πρωτάθλημα, για τα Generation III [R/S/E] - V παιχνίδια, περισσότερα μέρη θα προστεθούν σύντομα.
[New Feature] Προσθήκη λιστών με προκαθορισμένες τιμές σε κάποια calculators.
[New Feature] Προσθήκη της στήλης Biased Overall Harm στο Overal Harm Calculator. Επίσης, οι υπολογισμοί γίνονται από συναρτήσεις.
[Polishing] Πλήρης αλλαγή στο Experience Gain Calculator. Ποιο λεπτομερές καθώς και διαφορετικά κελιά εισόδου για τη Generation V.
[Polishing] Πλήρης αλλαγή στο Catch Rate Calculator. Ποιο λεπτομερές καθώς και διαφορετικά κελιά εισόδου για τη Generation V. Η Generation I και II δεν υποστηρίζονται.


Έχει πέσει πολύ διάβασμα τελευταία και τώρα βρήκα λίγο χρόνο να τελειώσω και να ανεβάσω νέα έκδοση. Είναι αρκετά βελτιωμένη σε σχέση με τη προηγούμενη.
(06-12-2013 12:45 AM)SonicPKMN Wrote: [ -> ][New Feature] Προσθήκη της στήλης Biased Overall Harm στο Overal Harm Calculator. Επίσης, οι υπολογισμοί γίνονται από συναρτήσεις.

Wtf, πριν 2-3 μέρες καθόμουν και το έφτιαχνα μόνος μου στο excel αυτό γιατί είχα χάσει το παλιό applet, δεν περίμενα να το δω να φτιάχνεται κι από άλλο σε διάστημα 3 ημερών, great minds think alike. Big Grin
Έχεις καταφέρει να ελαχιστοποιήσεις το overall harm αλλάζοντας τα EVs μέσω του Solver; Εκεί είχα σκαλώσει εγώ, παρότι είχα βάλει σωστά τους τύπους και τους περιορισμούς και που τα μόνα κελιά που επηρέαζαν το harm ήταν αυτά με τα EVs, το Solver δε μου έβρισκε τη λύση.

Good job πάντως!

Πρότασή μου, βάλε την κάθε λειτουργία, calculator, κλπ σε διαφορετικό sheet. Δεν ξέρω για τους υπόλοιπους αλλά εμένα λόγω δουλειάς μου φαίνεται πιο «ωραίο» και πιο εύχρηστο από το να scrollάρεις πέρα-δώθε όποτε θες να ελέγξεις ή να αλλάξεις κάτι.
Με το Solver τι εννοείς ακριβώς; Δεν είχα προλάβει το applet που λες, απλά πήγα κατευθείαν με τους τύπους. Αν καταλαβαίνω καλά, εννοείς αυτόματα να βρίσκει το ελάχιστο overall harm βρίσκοντας τον κατάλληλο συνδυασμό EVs;

Εγώ ουσιαστικά έχω παίξει με συγκεκριμένους τύπους και όταν θέλω να βρω την ελάχιστη τιμή στο overall harm απλά παίζω με τα EVs (τα IVs τα θεωρώ 31).

Αν θέλεις στείλε, μου τι έχεις κάνει να πάρω μια ιδέα Smile

EDIT: Το applet που λες πρέπει να είναι αυτό: DefenseEffortValues. Στην περιγραφή λέει ότι τσεκάρει αυτόματα όλους τους πιθανούς συνδυασμούς EVs και έτσι βρίσκει την ελάχιστη τιμή. Αυτό δεν το έχω καταφέρει αν και προσπάθησα.. Σίγουρα θα το κοιτάξω.


Τέλος για τα calculators, σίγουρα έχει παραγεμίσει το πρώτο sheet που τα έχει όλα μέσα. Θα τα μετακινήσω σιγά σιγά κάποια που παραείναι μεγάλα. Ευχαριστώ! Big Grin
Το applet είναι αυτό, ναι.
Θεωρητικά το Solver του Excel θα έπρεπε να κάνει ακριβώς την ίδια δουλειά, να ελέγχει τα πιθανά σενάρια αλλάζοντας τα κελιά με τα EVs σύμφωνα με τους περιορισμούς και να κρατάει τη λύση που ελαχιστοποιεί το harm αλλά για κάποιο λόγο δεν το κάνει.

Ορίστε το .xls, φυσικά δεν είναι σε παρουσιάσιμη μορφή, για 'μένα το έφτιαχνα άλλωστε, και ορίστε κι αυτά που δίνω ως input στο Solver.
Δεν το έχω χρησιμοποιήσει οπότε δεν ξέρω περισσότερα. Εγώ θα το έκανα με συνάρτηση, με for() loops για να τρέξω όλους τους συνδυασμούς. Θα το κοιτάξω πάντως και ελπίζω να βγάλω άκρη.

EDIT: Έφτιαξα τον παρακάτω κώδικα για το Overall Harm και φαίνεται να δουλεύει όταν τα EV αυξάνουν κατά 4 (οπότε max=252). Όταν αυξάνω κατά 1 δεν βγαίνει ακριβώς.

Δοκίμασα σε Aggron και Rhyperior και τα αποτελέσματα ήταν ίδια με το applet.

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

Code:
Function OverallHarm(HP_IV As Long, Def_IV As Long, SpDef_IV As Long, HP_Base As Long, Def_Base As Long, SpDef_Base As Long, Level As Long, Nature As String) As Double
    
    Dim HP As Double
    Dim Def As Double
    Dim SpDef As Double
    Dim HP_EV As Long
    Dim Def_EV As Long
    Dim SpDef_EV As Long
    Dim HP_EV_min As Long
    Dim Def_EV_min As Long
    Dim SpDef_EV_min As Long
    Dim OverallHarm_min As Double
    Dim OverallHarm_test As Double
        
    OverallHarm_min = 300
    OverallHarm_test = 0
    HP_EV = 0
    Def_EV = 0
    SpDef_EV = 0
    HP_EV_min = 0
    Def_EV_min = 0
    SpDef_EV_min = 0
    
    For HP_EV = 0 To 252 Step 4
        For Def_EV = 0 To 252 Step 4
            For SpDef_EV = 0 To 252 Step 4
                
                HP = (((HP_IV + (2 * HP_Base) + (HP_EV / 4) + 100) * Level) / 100) + 10
                Def = ((((Def_IV + (2 * Def_Base) + (Def_EV / 4)) * Level) / 100) + 5) * NatureDef(Nature)
                SpDef = ((((SpDef_IV + (2 * SpDef_Base) + (SpDef_EV / 4)) * Level) / 100) + 5) * NatureSpDef(Nature)
    
                OverallHarm_test = ((20000 * (Def + SpDef) + 4 * Def * SpDef) / (HP * Def * SpDef))
                
                If OverallHarm_test < OverallHarm_min And (HP_EV + Def_EV + SpDef_EV) <= 510 Then
                    
                    OverallHarm_min = ((20000 * (Def + SpDef) + 4 * Def * SpDef) / (HP * Def * SpDef))
                    HP_EV_min = HP_EV
                    Def_EV_min = Def_EV
                    SpDef_EV_min = SpDef_EV
                
                End If
            
            Next SpDef_EV
        Next Def_EV
    Next HP_EV
    
    OverallHarm = OverallHarm_min

End Function


EDIT 2: Τελικά κατάφερα να επιστρέφω και τα EVs όχι μέσα από τον ίδιο κώδικα όμως... (πρέπει να μάθω μακροεντολές.. Big Grin)

Τέλος πάντων.. Έκανα κάποιες δοκιμές και πρέπει να είναι σωστές οι συναρτήσεις. Οι παρακάτω φωτογραφίες είναι από μια δοκιμή με ένα Calm Bronzong

[Image: 1COJUFX.png]

[Image: v7e8tw.png]


Στο δικό μου calc βγάζει διαφορετικό συνδυασμό EVs που σημαίνει ότι υπάρχουν και άλλοι που βγάζουν την ίδια ελάχιστη τιμή στο Overall Harm. Θα το κοιτάξω και αυτό, αν και πιστεύω ότι μετά εξαρτάται από τον καθένα τι ρόλο θέλει να παίζει το Pokemon του. Απλά δίνει ένα γενικό "μπούσουλα".
Χωρίς να έχω διαβάσει τον κώδικα με λεπτομέρεια (will do, ίσως βάλω κάτι τέτοιο στην επόμενη έκδοση του IV Calc) έχει υπόψιν πως το "step 4" που γράφεις υποθέτει πως βρίσκεσαι στο επίπεδο 100.
Αυτό δεν το είχα σκεφτεί... Toungue

Πιστεύω οι περισσότεροι με Level 100 θα παίξουν. Αν γίνει επιλογή για Level 50 θέλει step 8. Οπότε πρέπει να μπει και κάποια επιλογή εκεί, 50 ή 100 lvl, ενδιάμεσα μπλέκει.

Χωρίς μακροεντολές πάντως θα είναι δύσκολο γιατί μόνο με συναρτήσεις "βαραίνει" τσάμπα. Θα προσπαθήσω να ασχοληθώ, μήπως βάλω κάποιο κουμπί που να κάνει όλη τη δουλειά ας πούμε.
Επίσης τα IVs μάλλον τα θες "as Integer", είναι υπερβολή να τα ορίσεις σαν Long και ίσως επιβαρύνει αρνητικά την εκτέλεση

Quote:http://msdn.microsoft.com/en-us/library/...e.10).aspx

Traditionally, VBA programmers have used integers to hold small numbers, because they required less memory. In recent versions, however, VBA converts all integer values to type Long, even if they are declared as type Integer. Therefore, there is no longer a performance advantage to using Integer variables; in fact, Long variables might be slightly faster because VBA does not have to convert them.
Pages: 1 2
Reference URL's