The Azure Heights Forum


Post New Topic  New Poll  Post A Reply
my profile | search | faq | forum home
  next oldest topic   next newest topic
» The Azure Heights Forum   » Main Campus   » Research Lab   » Your suggestions for PKMN Calc utility program

UBBFriend: Email this page to someone!    
Author Topic: Your suggestions for PKMN Calc utility program
Lark84
My skeleton is made of creamy nougat.
Member # 1186

Member Rated:
posted 09-25-2001 12:55 PM      Profile for Lark84     Send New Private Message      Edit/Delete Post  Reply With Quote 
I've been playing around with the stat and stat exp formulas, and I've decided to create a utility program for Graphing Calculators. I'l use it myself, of course, but if the results turn out good then I'll most likely upload the thing so that everyone who wants can use it.

So, do you have any suggestions for things you would want to see included in something like this? It's meant to be a sort of skill/stat-finder in calc format. It will include all 251 pokémon.

My list for things to include looks like this:

DV finder. Punch in the species, your stats when the pokémon is fully boxed, and it gives you the DV's.

HP calculator. Self explanatory. Calculates HP, and makes egg sandwiches

Wild stat calculator. Calculate the stats of any pokémon in the wild. Allows you to use your own DV's.

Max stat calculator. Calculate the max for a pokémon at a certain level. Allows you to use your own DV's.

Stat exp calculator. Calculates the amount of stat exp necessary to grow n stat points.

So, basically, this is just all the stat and experience formulas you need, but they're autmatically; all you do is punch in some numbers.

I'm also planning to make a section which calculates DV's, and HP at once.

Maybe I'll let you choose between two ways to calculate DV's: the first one being maximum boxed, L100 pokémon (for pokémon you've already trained), the second one being rare-candied L50 pokémon (for pokémon you've just caught at a low level).

If I get the principles beind it, I might even throw in a damage calculator.

So, is there anything you'd like to add/remove/comment? Your comments are welcome.

And oh, if anyone knows how to round numbers *down* on TI calculators (rounding 4.999999 to 4 instead of 5), you're welcome to tell me.

[edit]BTW, what's the stat formulas for Gold andSilver? Are they the same as in RBY? The Stat Formula for Spc. Df, does it work the same as the others?

[ 09-25-2001: Message edited by: Lark84 ]


Registered: Nov 2000  |  IP: Logged
Jolt135
Farting Nudist
Member # 1974

Member Rated:
posted 09-25-2001 05:15 PM      Profile for Jolt135   Author's Homepage   Email Jolt135   Send New Private Message      Edit/Delete Post  Reply With Quote 
I already have a program like that on my TI-83. To round numbers down, go to the MATH menu and select "int(", then type in the variable to be rounded down.
From: Woodbridge, VA, USA | Registered: Jul 2001  |  IP: Logged
Lark84
My skeleton is made of creamy nougat.
Member # 1186

Member Rated:
posted 09-26-2001 12:32 PM      Profile for Lark84     Send New Private Message      Edit/Delete Post  Reply With Quote 
Is there? Could you please give me the URL to a page that has it, so I can take a look at it?

If someone's already made all of this, then why should I do it?


Registered: Nov 2000  |  IP: Logged
Jolt135
Farting Nudist
Member # 1974

Member Rated:
posted 09-26-2001 04:54 PM      Profile for Jolt135   Author's Homepage   Email Jolt135   Send New Private Message      Edit/Delete Post  Reply With Quote 
I'm the one that MADE the program. However, I don't feel like buying the utility to hook it up to my computer, and I don't feel like typing in the 18,000+ bytes that compose the program. Just figure out how to create your own version.
From: Woodbridge, VA, USA | Registered: Jul 2001  |  IP: Logged
MK
is somewhat large.
Member # 1445

Member Rated:
posted 09-26-2001 07:18 PM      Profile for MK     Send New Private Message      Edit/Delete Post  Reply With Quote 
My TI is a TI-85 (and I have the link cable to hook it up to my computer)

Is there a stat program out there for me somewhere that would work on my calc?

If so, thanks to anyone who can gimmie a URL


Registered: Jan 2001  |  IP: Logged
Lark84
My skeleton is made of creamy nougat.
Member # 1186

Member Rated:
posted 09-27-2001 12:29 PM      Profile for Lark84     Send New Private Message      Edit/Delete Post  Reply With Quote 
quote:
Originally posted by Jolt135:
Just figure out how to create your own version.

Well, I will!

MK, I don't know if TI 83+ programs can run on an 85. I'd check the instruction manual. I know the 83+ can run 82 programs, IIRC all you need to do is change some of the code (provided that code is used in the program).

If the 85 can run 83+ programs, I can give you my version when I'm done with it.


Registered: Nov 2000  |  IP: Logged
MK
is somewhat large.
Member # 1445

Member Rated:
posted 09-27-2001 04:59 PM      Profile for MK     Send New Private Message      Edit/Delete Post  Reply With Quote 
Thanks Lark84
Registered: Jan 2001  |  IP: Logged
Lark84
My skeleton is made of creamy nougat.
Member # 1186

Member Rated:
posted 09-28-2001 05:49 AM      Profile for Lark84     Send New Private Message      Edit/Delete Post  Reply With Quote 
Remember, I can't guarantee it will work.

It isn't that hard, really, if you want to make your own. The formulas are quite simple (except the HP one), the hard part is making lists of all the base stats, that takes a lot of time.


Registered: Nov 2000  |  IP: Logged
Jolt135
Farting Nudist
Member # 1974

Member Rated:
posted 09-28-2001 05:27 PM      Profile for Jolt135   Author's Homepage   Email Jolt135   Send New Private Message      Edit/Delete Post  Reply With Quote 
It's not really that hard. It only takes up about 45 bytes per Pokemon to make lists for base stats. However, after I added everything else in (yes, it includes a damage calculator), and made it all run smoothly with decent graphics, the total space used came to 18,127 bytes. I may be able to reduce it, but I'm not going to take chances for now.
From: Woodbridge, VA, USA | Registered: Jul 2001  |  IP: Logged
10,000Lb.Snorlax
loves long time.
Member # 13

Member Rated:
posted 09-28-2001 06:32 PM      Profile for 10,000Lb.Snorlax   Author's Homepage     Send New Private Message      Edit/Delete Post  Reply With Quote 
why not just include the final evolutions?
Who wants the stats of a metapod?

From: Denver | Registered: Feb 2000  |  IP: Logged
Lark84
My skeleton is made of creamy nougat.
Member # 1186

Member Rated:
posted 09-29-2001 04:20 AM      Profile for Lark84     Send New Private Message      Edit/Delete Post  Reply With Quote 
quote:
Originally posted by Jolt135:
However, after I added everything else in (yes, it includes a damage calculator), and made it all run smoothly with decent graphics, the total space used came to 18,127 bytes.

w00t! You have graphics? I wrote my program in that ASCII-programming language, it just displays some text on the screen etc. Adding graphics would be cool, but I don't have the programming skill to do that.

I hated making the lists. You have to *manually* enter each and every stat for every pokémon, that's (251*6)+151=1657 entries! (I have one list with the special stats for RBY only, two with the GSC Spc atk/def).

I can't find the damage formula anywhere (although I haven't really been looking for it), I also have some problem with finding a good, simple HP formula. But the stat programs are coming along nicely. I've finished almost all of them.

[edit]
The reasons for including the stats of all 251 pokémon are simple:

Some day, you might want to calculate HP or DV's for you Metapod, Weedle, etc, or calculate the max stats for your Oddish. So, to prevent any frustration then, I'm including them all now.

However, I actually missed putting in Metapod in my first lists, though...

[ 09-29-2001: Message edited by: Lark84 ]


Registered: Nov 2000  |  IP: Logged
Jolt135
Farting Nudist
Member # 1974

Member Rated:
posted 09-29-2001 08:25 AM      Profile for Jolt135   Author's Homepage   Email Jolt135   Send New Private Message      Edit/Delete Post  Reply With Quote 
There's no need to enter that many keypresses. Just compose 251 different lists containing BASE STATS, as well as a seventh element for RBY Pokemon that can either be 1 or 0 pointing to whether RBY Special carried over to Special A or Special D. It will be a bit more compressed that way. As for the graphics, they aren't much. I just drew some Pokemon borders and stored them to "Pic0" and the like. But still they look kinda cool as opposed to plain text.
From: Woodbridge, VA, USA | Registered: Jul 2001  |  IP: Logged
Lark84
My skeleton is made of creamy nougat.
Member # 1186

Member Rated:
posted 09-29-2001 12:00 PM      Profile for Lark84     Send New Private Message      Edit/Delete Post  Reply With Quote 
I did enter the base stats - I let the programs calculate the stats themselves.

I think your way saves space in the program, however.

BTW, do you know how to compile a program written this way ( rompt X, :disp "Stat:", etc) into assembler code? Reading my manual, I interpret it as possible, but when I try the instructions, I get a "syntax" error. Making them smaller is a big issue for me, the lists take up about 11K of memory


Registered: Nov 2000  |  IP: Logged
moogleman
Farting Nudist
Member # 1017

Member Rated:
posted 09-29-2001 05:31 PM      Profile for moogleman     Send New Private Message      Edit/Delete Post  Reply With Quote 
Damage Formula:
(((((((((2L/5+2)*A)*P)/D)/50)+2)*T)*M)*R)/255
Note: I used "*" for multiplying and "/" for dividing.

Now for the variables:
L = Attackers level (1-100)
A = Attacking Pokemon's attack/special attack stat.
P = Moves power (ie. hyper beam - 150)
D = Defending Pokemon's defence/special defence stat.
T = STAB (If STAB is included, T = 1.5, if there's no STAB, then T = 1)
M = Effectiveness Modifier. Can be:
0 - No effect (Thunder used on Diglet)
0.25 - *2 resistance (using mega drain on charizard)
0.5 - Not very effective (using surf on venusaur)
1 - Normal Damage (Explosion used on Snorlax)
2 - Super Effective (Mega Drain used on Blastoise)
4 - *2 weakness (Surf used on Rhydon)
R = Random number between 217 and 255
(Use these numbers to figure out min. and max. damage, with 217 being minimum and 255 being maximum.)

Um...yeah, that's pretty much it. I'm not entirely sure about factoring in Critical Hits, but I think you just have to multiply your final answer by 1.5 or something like that. If this formula doesn't make sense to you, then I'll try to put it into simpler terms (if possible).


From: Kamloops, BC, Canada | Registered: Oct 2000  |  IP: Logged
Jolt135
Farting Nudist
Member # 1974

Member Rated:
posted 09-29-2001 09:04 PM      Profile for Jolt135   Author's Homepage   Email Jolt135   Send New Private Message      Edit/Delete Post  Reply With Quote 
quote:
Originally posted by moogleman:
Damage Formula:
(((((((((2L/5+2)*A)*P)/D)/50)+2)*T)*M)*R)/255
Note: I used "*" for multiplying and "/" for dividing.

Now for the variables:
L = Attackers level (1-100)
A = Attacking Pokemon's attack/special attack stat.
P = Moves power (ie. hyper beam - 150)
D = Defending Pokemon's defence/special defence stat.
T = STAB (If STAB is included, T = 1.5, if there's no STAB, then T = 1)
M = Effectiveness Modifier. Can be:
0 - No effect (Thunder used on Diglet)
0.25 - *2 resistance (using mega drain on charizard)
0.5 - Not very effective (using surf on venusaur)
1 - Normal Damage (Explosion used on Snorlax)
2 - Super Effective (Mega Drain used on Blastoise)
4 - *2 weakness (Surf used on Rhydon)
R = Random number between 217 and 255
(Use these numbers to figure out min. and max. damage, with 217 being minimum and 255 being maximum.)

Um...yeah, that's pretty much it. I'm not entirely sure about factoring in Critical Hits, but I think you just have to multiply your final answer by 1.5 or something like that. If this formula doesn't make sense to you, then I'll try to put it into simpler terms (if possible).


Crit-hits: multiply L by 2.
Item/weather: multiply P by the appropriate number.
Reflect/Light Screen up: store "int(A/4)" to A and "int(D/2)" to D.

I didn't convert it to assembly code, but I don't feel the need to do so.


From: Woodbridge, VA, USA | Registered: Jul 2001  |  IP: Logged
moogleman
Farting Nudist
Member # 1017

Member Rated:
posted 09-29-2001 09:19 PM      Profile for moogleman     Send New Private Message      Edit/Delete Post  Reply With Quote 
quote:
Originally posted by Jolt135:

Crit-hits: multiply L by 2.
Item/weather: multiply P by the appropriate number.
Reflect/Light Screen up: store "int(A/4)" to A and "int(D/2)" to D.

I didn't convert it to assembly code, but I don't feel the need to do so.


I knew I was forgetting something.


From: Kamloops, BC, Canada | Registered: Oct 2000  |  IP: Logged
poccil
Farting Nudist
Member # 1457

posted 09-29-2001 10:34 PM      Profile for poccil   Author's Homepage   Email poccil   Send New Private Message      Edit/Delete Post  Reply With Quote 
quote:
Originally posted by Jolt135:

Crit-hits: multiply L by 2.

That's for RBY only. Critical Hit damage calculation in GS is different.

- - - - -
The Ultimate Pokemon Center | Gold/Silver Lab
"I believe that poccil is an intelligent, respected member of the online Pokemon community." -sarcastic comment by White Cat


Registered: Jan 2001  |  IP: Logged
psykloak1
Farting Nudist
Member # 2275

Member Rated:
posted 10-16-2001 10:06 AM      Profile for psykloak1   Author's Homepage   Email psykloak1   Send New Private Message      Edit/Delete Post  Reply With Quote 
quote:
And oh, if anyone knows how to round numbers *down* on TI calculators (rounding 4.999999 to 4 instead of 5), you're welcome to tell me.

thiers a thing n the MATH menu in te NUM part called IPART(
the way it works is say u do IPART(4.999999) and it'll return the 4

theirs als an FPART( in which FPART(4.999999) whould return the .999999

as for what to add on the program, a very big help section that tells newbies like me what all the words mean and diffrent formulas do. hehe.

- - - - -
-psyk
NeptuneCircle.com


From: Boston | Registered: Oct 2001  |  IP: Logged
Lark84
My skeleton is made of creamy nougat.
Member # 1186

Member Rated:
posted 10-16-2001 12:41 PM      Profile for Lark84     Send New Private Message      Edit/Delete Post  Reply With Quote 
What calc are you using? In mine, in the Math menu, I use the "Int(" to return a number rounded down (4.9 to 4).

The program is meant to be used by people who already knows stuff about pokémon. Don't worry, just read the info here and check out the links too, and you'll be fine.

My calc program is... uh... pretty complete. I have no HP calculator because I don't know how to do it. I've found several HP formulas, they're all different... >_< I have no DV calculator either, but I have the formulas for it so that shouldn't be hard. I'll share it with others when I feel it's complete. I don't want to give out an incomplete program.


Registered: Nov 2000  |  IP: Logged
psykloak1
Farting Nudist
Member # 2275

Member Rated:
posted 10-16-2001 01:04 PM      Profile for psykloak1   Author's Homepage   Email psykloak1   Send New Private Message      Edit/Delete Post  Reply With Quote 
i have a TI-83 plus (i also have a 92 that i dont use hehe)

- - - - -
-psyk
NeptuneCircle.com

From: Boston | Registered: Oct 2001  |  IP: Logged
Jolt135
Farting Nudist
Member # 1974

Member Rated:
posted 10-16-2001 05:32 PM      Profile for Jolt135   Author's Homepage   Email Jolt135   Send New Private Message      Edit/Delete Post  Reply With Quote 
Let me see if I can remember the syntax for my Hidden Power Utility...my brother just knocked the batteries out, which nuked the RAM so now I have to re-enter all the formulas again...

(Note: ~ stands for the small "L" that is found as the last option on the "List": "Ops" menu.)

:ClrHome:{0,0,0,0}->~DV
:Input "ATTACK DV?",G
:Input "DEFENSE DV?",H
:Input "SPEED DV?",I
:Input "SPECIAL DV?",J
:{G,H,I,J}->~DV
:If max(~DV)>15 or min(~DV)<0 or ~DV(1)≠int(~DV(1)) or ~DV(2)≠int(~DV(2)) or ~DV(3)≠int(~DV(3)) or ~DV(4)≠int(~DV(4)):Then :ClrHome:Output(1,1,"ONE OR MORE DV'S(no spaces)ARE INVALID.(insert 4 spaces)USE LEGAL DV'S(insert 2 spaces)ONLY." :prgmHPUTIL:End
:16fPart(~DV(1)/2)+8fPart(~DV(2)/2)+4fPart(~DV(3)/2)+2fPart(~DV(4)/2)->A
:8(~DV(1))>7)+4(~DV(2)>7)+2(~DV(3)>7)+(~DV(4)>7)->B
:16fPart(~DV(1)/4)+4fPart(~DV(2)/4)->C
:int((5B+max(~DV(4),3))/2)+31->Z
:If B=0:"FIGHTING"->Str2
:If B=1:"FLYING"->Str2
:If B=2:"POISON"->Str2
:If B=3:"GROUND"->Str2
:If B=4:"ROCK"->Str2
:If B=5:"BUG"->Str2
:If B=6:"GHOST"->Str2
:If B=7:"STEEL"->Str2
:If B=8:"FIRE"->Str2
:If B=9:"WATER"->Str2
:If B=10:"GRASS"->Str2
:If B=11:"ELECTRIC""->Str2
:If B=12:"PSYCHIC"->Str2
:If B=13:"ICE"->Str2
:If B=14:"DRAGON"->Str2
:If B=15:"DARK"->Str2
:ClrDraw:RecallPic8(Pic8 should contain the border, as well as the labeling words, in order to save space)
:Text(18,25,~DV(1)," ",~DV(2)," ",~DV(3)," ",~DV(4)
:Text(25,37,A
:Text(42,28,Str2
:Text(49,28,Z
:Pause
:Return (this is only here because I have a "master program" that uses all the different programs as subroutines. In addition, this allows you to archive everything except the master program, meaninng you have more "RAM Free.")

There it is. You can change what variables it stores to, but the syntax I use here is the most efficient way I know, so there's no need to alter the program's formulas.

Now to get back to re-entering the programs....

[EDIT: Disable smilies]

[ 10-16-2001: Message edited by: Jolt135 ]

[ 10-17-2001: Message edited by: Jolt135 ]


From: Woodbridge, VA, USA | Registered: Jul 2001  |  IP: Logged
Zerot
I pay schoolgirls to verbally abuse me.
Member # 1295

Member Rated:
posted 10-16-2001 06:14 PM      Profile for Zerot   Author's Homepage   Email Zerot   Send New Private Message      Edit/Delete Post  Reply With Quote 
I only have a TI-108
From: Lizton, Indiana | Registered: Dec 2000  |  IP: Logged
Jolt135
Farting Nudist
Member # 1974

Member Rated:
posted 10-17-2001 05:30 PM      Profile for Jolt135   Author's Homepage   Email Jolt135   Send New Private Message      Edit/Delete Post  Reply With Quote 
I just realized that you can't use Input to target a single element of a list. I've re-edited my post to reflect this.
From: Woodbridge, VA, USA | Registered: Jul 2001  |  IP: Logged
Rolken
Vulcan
Member # 7

Member Rated:
posted 10-17-2001 06:15 PM      Profile for Rolken   Author's Homepage   Email Rolken   Send New Private Message      Edit/Delete Post  Reply With Quote 
Using a list or matrix of strings for the type names would be so much cleaner.

Or can you do that on measly 83s?

- - - - -
[insert sig here]


From: Provo, UT | Registered: Feb 2000  |  IP: Logged
Lark84
My skeleton is made of creamy nougat.
Member # 1186

Member Rated:
posted 10-18-2001 02:34 PM      Profile for Lark84     Send New Private Message      Edit/Delete Post  Reply With Quote 
It can store ten strings... I dunno if you can store strings in a matrix, or if you can store more than ten stirngs in a matrix. But, agreed, it would be very good. Then I could store all the pokémon names in a matrix as well. Useless, but pretty funny, if you have enough memory space for it
Registered: Nov 2000  |  IP: Logged


All times are ET (US)  
Post New Topic  New Poll  Post A Reply Close Topic    Move Topic    Delete Topic next oldest topic   next newest topic
Printer-friendly view of this topic
Hop To:


Contact Us | Azure Heights Pokémon Laboratory

© 2000-2016, Maximum Penetration Industries.

Karpe Diem


The views and opinions expressed on this page are strictly those of the author(s). The contents and links have not been reviewed or approved by the University of Miami.