熊でもわかる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章 変数ってなんなのさ リンク >>>この講座のトップページ >>>タンクタウンのトップページ |