熊でもわかるRGSS講座 超初級編

<<前の章へ       第3章 計算してみよう       次の章へ>>





 さて、今日は、RGSSによる計算についてやってみようかのう。
 計算、苦手なんやよなあ・・・。
 心配ない。計算は、コンピュータがやってくれるんじゃからな。人間は、計算式を書くだけでいい。それが、プログラムのいいところじゃ。
 どんな複雑な計算も、間違わずにやってくれるぞ。
 うん、がんばってみるわ。
 では、昨日やった、pを使って計算結果を表示してみようかのう。
 スクリプトエディタを開いて、セクション『Main』を表示するんじゃ。
 うん、昨日とおんなじやな。
 そして、昨日書いた分を消してしまえ。
 え! 消してまうの!?
 色々書いてあるとややこしいからのう。
 せっかく、書いたのに・・・。
 ええから、消して、計算を書いてみい。昨日は足し算をやったから、今日は引き算をやってみろ。
 なら、これで行くかな・・・。

7
8
9
begin
  p 15-20

 それでもええがな。こう書いてみろ。

7
8
9
begin
  p 15 - 20


 数字の間に、半角スペース入れたんか? そうすると、何がええんや?
 単に、見易さの問題じゃ。あんまり込み合っとると見づらいからのう。
 わかった、書いたで。
 うむ、実行してみろ。
 おっしゃ、ポチっとな。



 うむ。ちゃんと、正しい結果がでておるな。
 ちなみに、足し算と引き算は、正式には、
加算減算と呼ぶからのう。一応、覚えておけ。
 ふうん。ほな、掛け算と割り算は、何て言うんや?
 乗算除算じゃ。
 なんや、わざわざ難しい言い方にしとるような気がするのは、気のせいやろか?
 まあ、分かりにくければ、掛け算と割り算でもいいんじゃが、できれば覚えておくとええのう。
 うん、まあそのうち覚えるやろ。
 では、次は、乗算やってみるかのう。

 ええと、乗算は、掛け算やな。これでどうや?

7
8
9
begin
  p 5 × 2

 いや、それでは駄目なんじゃ。乗算の場合は、5 * 2 のように書くんじゃ。
 え? なんで?
 プログラムの世界では、掛け算は * (アスタリスク)、割り算は / (スラッシュ)ということになっとるんじゃ。
 なんやまた、ややこしいな・・・。
 これはもう、そういうもんだと思って、覚えるしかないのう。
 ほんなら、めんどくさいから、掛け算と割り算、いっぺんにやるで。

7
8
9
10
begin
  p 5 * 2
  p 5 / 2

 これでやってみると・・・。



 うん、5 * 2は、10でええな。



 あれ? ちょお待って。5 / 2 は、2.5やろ? なんで2なん?
 ふむ、気づきおったか。それは、数値の型が、整数だからじゃ。
 数値の型?
 RGSSでは、数値は、整数浮動小数点数の、2種類のタイプがあるんじゃ。
 どう、違うん?
 整数は、ようするに普通の数じゃ。正確に言うと、自然数とゼロ、それから自然数にマイナスの符号をつけた数じゃな。
 整数の割り算で余りが出た場合は、余りが切り捨てられる。じゃから、2.5は、2になるんじゃ。
 ふうん・・・。ほしたら、浮動なんとかは?
 浮動小数点数は、小数点を含む数じゃな。2.5とか、0.02とか、ともかく小数点を含む数は、浮動小数点数じゃ。
 そしたら、小数点以下も表示しようと思ったら、どう書けばええんや?
 こういう感じじゃの。

7
8
9
begin
  p 5.0 / 2

 なるほど、最初から小数点有りで書いとけばええんやな。そやけど、2のほうは小数点つけんでもええの?
 どちらか片方でええんじゃ。もちろん、両方でもええがな。
 よっしゃ、やってみるで。



 うん。ちゃんと表示された。
 ちなみに、RGSSでは、桁数の制限は無い。したがって、何桁の計算でもできるぞい。
 え、ほんま? なら、1000000000000000*1000000000000000とかでもでけんの?
 やってみるがいい。
 よし、やってみよ。



 でけた・・・。
 まあ、いくらなんでも、そんな計算をすることは無いじゃろうがな。
 しかしこれで、計算は完璧やな。
 馬鹿を言うな、まだまだじゃ。
 まだ、やることあんの?
 まだ、剰余べき乗が残っておる。
 なにそれ?
 剰余とは、割り算をしたときの余りのことじゃ。剰余は、5 % 2 のように書く。こう書いた場合、5を2で割った余りが得られる。
 これでええかな・・・。

7
8
9
begin
  p 5 % 2



 なるほど、5を2で割ると、2と余り1か・・・。そやけど、こんな計算、なんに使うんやろ?
 例えば、時間の計算に使ったりするのう。
 時間の計算?
 例えばじゃ、1392秒を、分と秒に直すには、どうしたらええかのう?
 ええと、1分は60秒やから、1392/60で何分かわかるな。秒のほうは・・・そうか、ここで剰余を使うんやな。1392%60で、あまりを出せば、何秒か分かるんや。
 うむ。実際にやってみると、どうなるかのう。
 ええと、こうやな。

7
8
9
10
begin
  p 1392 / 60
  p 1392 % 60





 出たで。23分と12秒やな。
 うむ。そうじゃな。
 もうひとつのべき乗のほうは、どんなんや?
 べき乗乗は、同じ数を掛け合わせる計算じゃ。例えば、2の4乗なら、2を4回掛ける、つまり、2*2*2*2と言うことじゃ。
 なにそれ? そんなの役に立つんか?
 まあ、べき乗はあんまり使わんかも知れんな。とりあえず、べき乗は、2**4のように、**という記号を使って計算する、ということだけ言っておこうかの。
 うん。
 さて、次は、もっと長い計算式をやってみるかのう。次の問題を解く計算式を書いてみろ。

戦闘時のダメージ計算式を作れ
・ダメージは、攻撃側の攻撃力から、防御側の防御力を引いた値になる。
・攻撃力は、武器の威力に、筋力を足した値になる。
・防御力は、防具の防御力と耐久力を足した値の半分になる。


 う・・・ややこしそうやな・・・。
 全部いっぺんに考えるとややこしいからのう。まず、攻撃力だけ考えてみい。
 ええと、攻撃力は、『武器の威力 + 筋力』でええな。
 うむ。では、防御力はどうじゃ?
 ええと、足してそれを半分やから、『防具の防御力 + 耐久力 / 2 』でええかな?
 それでは、だめじゃな。
 なんでなん?
 計算には、優先順位があってな、乗算除算、つまり掛け算と割り算を先に計算し、加算減算、つまり足し算と引き算を後に計算するんじゃ。
 したがって、『
防具の防御力 + 耐久力 / 2 』だと、『耐久力 / 2』のほうを先に計算してから、防具の防御力を足すことになってしまう。
 しかし、先の問題からすると、本当は、『
防具の防御力 + 耐久力』を先に計算し、それを2で割ってやらねばならん。
 どうしたら、ええのん?
 括弧でくくってやればええんじゃ。『(防具の防御力 + 耐久力) / 2』のようにな。括弧でくくられた部分は、優先して計算されるようになっておる。
 なるほどな。
 分かったら、攻撃力から防御力を引く部分も合わせて、計算式を完成させてみい。。
 ええと、『武器の威力 + 筋力 - (防具の防御力 + 耐久力) / 2 』かな。
 うむ。では、実際に数字を入れて、計算してみるかのう。
 武器の威力 = 50
 筋力 = 80
 防具の防御力 = 60
 耐久力 = 50
 で、やってみろ。
 ええと、こうかな?

7
8
9
begin
  p 50 + 80
- (60 + 50) / 2




 75になったで? あっとるんか?
 うむ、正解じゃ。ちなみに、括弧は何重ににも重ねることができるからのう。
 ( 5 + 2 ) / ( 15 - ( ( 10 - 4 ) * 32) / 2 ) のように、いくつも重ねてもええんじゃ。この場合、より内側にある括弧の中から、先に計算されるのう。
 なるほどな・・・。
 さて、これで計算については、基本はOKじゃな。
 うーん、OKなんかなあ・・・。
 まあ。あとは実戦で覚えていくんじゃな。
 うん、やってみるわ・・・。
 では、今日はここまでじゃ。明日は、変数をやるぞ。
 変数! ついにきたか!
 なんじゃ、楽しみにしとったんか?
 いや、逆や・・・。変数は、イベントでもちょっと使うてみたけど、ようわからへんねん・・・。
 なるほどな。変数は、プログラムを学ぶ者にとって、第一の壁じゃからのう。
 なんとか、変数使わずに済まされへんやろか?
 それは無理じゃ。イベントならともかく、RGSSでは、変数は必須じゃ。変数なしでプログラムを書くなど、あり得んからのう。
 うぅ・・・。
 まあ、一度がんばってみろ。
 うん、一応がんばってみるわ・・・。



 本日のおさらい
・乗算(掛け算)の記号は、*(アスタリスク)
・除算(割り算)の記号は、/(スラッシュ)
・剰余(余り)の記号は、%
・桁数は、無制限
・数には、整数と浮動小数点数の2種類がある

 次の章は
第4章 変数ってなんなのさ

 リンク
>>>この講座のトップページ
>>>タンクタウンのトップページ