黒うさぎの機械言語教室1【チェーンソー】

記事
エンタメ・趣味
チェーンソーマンだと思った?
残念、ゲームボーイの魔界塔士サガでした。
ラスボスをチェーンソーで一撃なのは、プログラムミスだ。

ちょっとだけ書くと、サガの攻撃時には、こんなプログラムが組まれている、と勝手に思っている。

●日本語
もし 味方キャラクターが武器「チェーンソー」で攻撃したら
 [敵は即死する]
それ以外の武器をつかったら
 [敵にダメージを与える(HPからダメージを引く)]

■プログラム
If character.weaponType == チェーンソー then
 enemy.hp = 0
Else
 enemy.hp = enemy.hp - ダメージ

で、このプログラムがそのまま実行されると、
ラスボスでも関係なくHPがゼロになる。

本来だったら、こうしないといけない。

●日本語
もし 味方キャラクターが武器「チェーンソー」で攻撃したら
 かつ 
   ラスボスじゃなかったら
 [敵は即死する]
それ以外の武器をつかったら
 [敵にダメージを与える(HPからダメージを引く)]

■プログラム
If character.weaponType == チェーンソー And enemy.Type != ラスボス
 enemy.hp = 0
Else
 enemy.hp = enemy.hp - ダメージ

そう、もし、の時の条件が足りていないのだ。
ラスボスだけ除外するべき所を、プログラムの記述が足りてなくて
同じように動いてしまう。

ここでみんなが大嫌いな数学の集合が出てくる。
かつ、または、というやつだ。

かつ:条件を同時に満たすか
または:それぞれの条件を別々に満たすか

なので、プログラムを書くときは、いきなりプログラムを記述するのではなく
あらゆる状況を、言葉、として書き出して、条件を整理する必要がある。
こうすると、どんな条件の時に、何をすべきか、が見えてきたりする。

そう、数学の集合はこういう所で使われているのだ。
実際に数学や物理は使っている所を教えるのが一番手っ取りはやい。
実例でやった方がとてもおもしろおかしく覚えられる。
僕はそう思っている。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら