ポケモンの固体値を判別するアプリ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
山口

ポケモンの固体値を判別するアプリ

#1

投稿記事 by 山口 » 15年前

下記で質問させて頂いたものです。
http://www.play21.jp/board/formz.cgi?ac ... &rln=62212
過去ログに入ってしまっていると思い絞めてしまいました。入っておりませんでしたね・・・。
折角ご連絡を頂いたのにご回答が遅くなってしまい申し訳ございませんでした。

ポケモンの固体値を求める自分用アプリを作っております。
それ専用の関数を作ってみたのですが上手い値が帰ってきてくれません。
性格の倍率が上手くいかないのでとりあえずHPのみの関数を作っております。
// tribe=>種族値, status=>能力値, fight=>努力値, lv=>レベル, parsonal=>個体値
bool AnsValueHP( int tribe, int status, int fight, int lv, int parsonal ){
    int val = int((((tribe*2 + parsonal + int(fight/4)))*lv)/100) + lv + 10; 
    if( status == val ) return true;
    else return false;
}
実際ツタージャというポケモンは下記のステータスなのでLV1の時にHPが11か12になります。
式)能力値=(種族値×2+個体値+努力値÷4)×レベル÷100+レベル+10
※(種族値×2+個体値+努力値÷4)×レベル÷100の部分が0か1にしかならないため
HPの種族値  45
個体値    0~31の32段階
努力値    0として計算
ただし現在の関数では10の時しかtrueと帰ってこないみたいです。


>>int型で性格を入れることはできなかったと思います。
すみません(汗)
別の場所で性格をシエルさんの仰る通り列挙型で宣言しております。
記載してないで申し訳ないです。

>>ぽこさん
HPの場合は上の例の通りになります。

>>ookamiさん
URLをみてみると小数点以下が発生するたびに切り捨てられるようなので毎回キャストしております。

>>toyoさん
おお・・・
修正したところそれらしい値が帰ってくるようになりました。
ただし誤差が出てしまったり正確な値が出ないことがあります。
ありがとうございます。

折角、ご回答を頂けたのにお礼が遅くなってしまい申し訳ございませんでした。

toyo

Re:ポケモンの固体値を判別するアプリ

#2

投稿記事 by toyo » 15年前

その関数でしたら
AnsValueHP( 45, 11, 0, 1, 0~9 );
AnsValueHP( 45, 12, 0, 1, 10~31 );
でtrueになります

山口

Re:ポケモンの固体値を判別するアプリ

#3

投稿記事 by 山口 » 15年前

お忙しい中、ご回答ありがとう御座います。

AnsValueHP( 45, 12, 0, 1, 10~31 ); のはずなのですが
実際trueの時にiを表示してみると10の時にしか反応していないみたいなんです・・・。
ソースが間違えているのでしょうか?

toyo

Re:ポケモンの固体値を判別するアプリ

#4

投稿記事 by toyo » 15年前

提示された関数には問題ないと思います

ideyan

Re:ポケモンの固体値を判別するアプリ

#5

投稿記事 by ideyan » 15年前

私も確認してみましたがちゃんとAnsValueHP( 45, 12, 0, 1, 10~31 )で
trueを返してますよ。
確認してるソースのほうが間違っているのではないでしょうか?

#後 parsonal → personal の間違いかと思います。

山口

Re:ポケモンの固体値を判別するアプリ

#6

投稿記事 by 山口 » 15年前

英単語の間違えすみません・・・恥ずかしい・・・
すみません><
リビルドしてみたら普通に動きました・・・。
質問してごめんなさい。

閉鎖

“C言語何でも質問掲示板” へ戻る