コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
うょリウム(元 SPDX) ◆UTOEg1c1vr.B
2020/5/23 23:22
あっ、そうか!
変数に%をつけるだけでFLOORの効果があるのか!

A=MAX(FLOOR(B/C),1) が
A%=B/C+1 で良いことが分かった。

(%付き変数を見ると混乱するのを
克服したいうょリウムの気付き)

しかし%がついてるのとついてないのが別扱いになるのは気をつけなくては

コメント

アバター
高原のな 2020/5/24 8:42 ◆bY8RViwvoODw
(逆に混乱を広げそうなので、混乱しそうになったら気にしないでください)
普段の生活だと、整数も小数も分数も すべて実数として区別なく扱う(とわたしは思っている)のですが、コンピュータ的に扱いやすくする都合で、普段は区別しない「整数」と「実数」を区別する という発想はいかがでしょうか。

整数と実数を区別するために、整数だけを扱う変数に付けるキーワードが「%」
こいつが付いた変数には整数しか入れられない:FLOOR(小数部分を丸める)みたいな効果が得られる
という流れになるのです。
アバター
Na 2020/5/24 10:31 ◆QoELVrBXBQCI
+1したら結果が1ずれてしまうような気が...

DIV(整数除算)もありますよ
A=B DIV C は FLOOR(FLOOR(B)/FLOOR(C)) と同じです

あ、マイナスの時FLOORとは結果が違う
アバター
高原のな 2020/5/24 11:54 ◆bY8RViwvoODw
(整数丸めって場合によって挙動がよく変わるので、未検証だったりうろ覚えの状態では「みたいな」としか言えないので、気が向いたら調べます)

小数部切り上げのときは素直に切り上げのCEIL関数を使うのが便利ですね。四捨五入の時はROUNDを使うのがベタですが、0.5を足してFLOORで処理するという手も
アバター
こういち 2020/5/24 15:30 ◆ou0jbJnEJ0Kb
FLOORはデカい数を扱えるけど、%はデカい数(10桁ぐらい)を扱えないので注意。まぁそんな機会はまずないけど。
アバター
うょリウム(元 SPDX) 2020/5/24 18:08 ◆UTOEg1c1vr.B
細かい調整を
してるわけじゃないのですが
数値が1ずれるとダメージが2か3かで
ずいぶん変わる時があるので
CEILでも使おうかな、と思いまし。
アバター
あまさとしおん 2020/5/24 18:49 ◆mzDKTVUAtwqE
ダメージの計算で途中経過を整数化すると滑らかにランダムにならないので、全部の計算が終わってから丸める方が、ギリギリ耐えるか倒れるかの駆け引きが一層楽しめます。

ただし途中経過を整数型変数にしても、計算順序に注意すれば滑らかさを維持できます
(具体的には、乗算を先にやって除算を最後に追いやる)
ただし、数字が大きくなりすぎて上限(約21億)をはみ出ると結果がおかしくなるので、素直に途中経過は実数型変数にした方が考えることが楽です。
アバター
うょリウム(元 SPDX) 2020/5/24 19:53 ◆UTOEg1c1vr.B
なるほど、除算を最後にですか。
ちなみに今作ってる計算式は

ダメージ
=(敵の攻撃/自分の防御)×倍率
です。
正面衝突で双方の倍率は8
ジャンプなどで上を取るほど
与ダメージ↑
披ダメージ↓

踏みつける形になると
与ダメージ倍率16
披ダメージなし
になるシステムです。

※全キャラクターHP100固定。
アバター
ツララ 2020/5/25 10:22 ◆ArUdBYOYME1V
単にFLOOR()関数を使わないだけなら
A%=B/C:A%=A%*(A%>0)+(A%<1)
ってことですよね。

ダメージの式は
(敵の攻撃/(自分の防御+1))×倍率
として、分母が0にならないようにした方がうっかりバグ無くせそう。
アバター
うょリウム(元 SPDX) 2020/5/25 15:19 ◆UTOEg1c1vr.B
ツララさんのやり方だと
FLOOR不使用かつ
MAX、MIN不使用という趣旨ですね。
攻撃力の相場はほとんどのキャラが
30〜100ぐらいで
防御は最低のキャラでも20はあるので
うっかり1にしちゃったら
エラーしなくても大変。。

というか防御をうっかり-1に(以下略

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -