のっぽさんの勉強メモ

主に中学の学習内容を扱っています。不定期更新ですー。

10/11 数学:プログラム/ロボに指示(しじ)を出すゲーム! ~条件(じょうけん)と予約(よやく)のゲーム~

 数学の話ー。
 コンピューターとかのの「プログラム」について簡単に。
 まあ数学というよりは「情報科」のような気もしますが。
 「条件(じょうけん)」*1については過去記事を参照。


 最近のRPG*2などでは、コンピュータが操るキャラも複雑な動きをしますが。
 基本のところはシンプルなプログラムからできています。

 というわけで、ちょっと想像を。
 「戦闘を補助してくれるロボ」を通して、
 プログラムというものを考えてみたいと思います。

 まあイメージしてください。
 あなたがRPG的なゲームをしていて、何か戦闘しなきゃならないとします。
 そんな横には「ロボット」を1体おけるとします。
 複雑な命令には答えてくれませんが、
 事前にプログラムしておくと、その動きをしてくれます。
 テレビとかで言う「予約(よやく)」をしておくみたいなものです。

 あなたはどのように指示を出すでしょうか?



 とりあえず横で攻撃してほしいならこんな感じでしょうか。

◆プログラム1
 ①敵に攻撃する
 ②プログラムを最初から繰り返す

 とりあえずはこれでいいでしょう。
 ①の攻撃が終わって、②で最初に戻って、また①の攻撃をしてくれます。
 これでひたすら攻撃してくれるわけですね。

 ちなみに「②の『最初から繰り返す』って必要なの?」と思われる方もいませんが、
 これがないとロボが一回攻撃して終わりになってしまいます。
 つまりあなたが戦闘してる横で一回攻撃して、
 「攻撃しました!次の指示は何ですか?」って感じでずっと待っているわけです。
 ……可愛い気もしますが、いちいち命令を出すのは面倒ですよね。
 なので②で戻してプログラムをずっと実行することで、同じ作業を繰り返すようにするわけです。
 最初に戻るって大事ですね。


 しかしプログラム1には大きな弱点もあります。
 これで放っておくと、ロボが敵に攻撃されてやられてしまうかもしれません。
 だから適当なところでHP回復ができると便利ですね。
 1つの方法は「攻撃と回復を交互に繰り返す」ことです。
 【 】を使って、「条件(じょうけん)」をつけて命令を出してみましょう。

◆プログラム2
 ①【前のターン攻撃をしていたら】ロボのHPを回復して③に飛ぶ
 ②敵に攻撃する
 ③プログラムを最初から繰り返す

 
 「条件付きの回復」が先にきているところがポイントですね。
 前のターン攻撃してなければ②の攻撃がそのまま行われ、
 前のターン攻撃していれば、①の回復が行われて③に飛んで、繰り返しです。


 しかし、これもまだちょっと無駄が多いですね。
 というのも、ロボが攻撃を食らわなければ、そんなに回復しなくてもいいわけです。
 なので、「ぎりぎりのところになったら回復する」位にしたいと思います。

◆プログラム3
 ①【HP<10になった時】自分(ロボ)のHP回復して③に飛ぶ
 ②敵に攻撃する
 ③プログラムを最初から繰り返す

 こうすればHPがある程度少なくなっても、回復しながら戦うことができます。
 敵の攻撃力が15とかあったらやばいですが、低めならこれで乗り切れます。
 2ターンに1回回復しなくてもいいので、より攻撃のチャンスを増やせますし。


 ……とまあ、そんな感じでプログラムは「無駄を切り詰める」楽しみがあったりします。
 掃除とか節約が好きな人は向いてるかもしれません。


 学校で習う時は、ちょっとややこしくてイヤになるかもですが、
 ゲームが好きな方は今回みたいな「ロボ」でも考えてもらうといいかもしれません。
 「こいつにどんなことをさせたいだろうか?」「どんな命令が効率いいだろうか?」と考えて、
 上手い命令の出し方ができると、結構気持ちがいいかもしれませんね。


 まあそんな感じで~。




追記
 今回は簡単な例でしたが、ノベルゲームでもやっていることは基本的には同じです。
 ただ、色んなプログラムが重なり合ってかなり複雑になってはいますが。

◆プログラム
 ①画像を表示
 ②音声再生
 ③選択肢*3を表示《A または B》
 ④【選択肢Aを選択】ルートA用のプログラムを実行
 ⑤【選択肢Bを選択】ルートB用のプログラムを実行
 ………

みたいな感じですね。


追記2
 プログラミングをゲーム形式で学べる物は結構多いようです。
 個々のものは確認していないので、ウィルス*4対策をしたり危険性を確認したうえで調べることが前提ですが、
 そうしたものを利用してみるのもいいかもしれませんね。
 筆者の遊んだ中ではフリーゲームランナーズ・エクリプス』がプログラミングを使ったゲームです。
 ただ、ちょっと難しいですが。



◆用語集
・プログラム(program):計画(けいかく)や手順(てじゅん)のこと。
 近年ではコンピューター用語として使われることが多いが、
 運動会のしおりとかに「プログラム」というのが載っているように、もともとは計画という意味。
 要はコンピューターのプログラムは「めっちゃ複雑になった計画」みたいな。
 関連用語:「順番(じゅんばん)」*5「システム」*6、「ロード」*7、「フラグ」*8、「関数(かんすう)」*9、「変数(へんすう)」*10、「AI(エーアイ)」*11、「bot(ボット)」*12


・ロボット(robot):機械*13。しばしば人間に似たものを言う。
 wikipediaを見ていると「ロボット」の誕生は「ゴーレム」と関わりがあるようだ。
 有名なところでは『ドラえもん』の「ドラえもん」が猫型ロボット。あと『鉄腕アトム』の「アトム」とか。
  現実では「ペッパー」「robi」などが有名か。
 SF*14作品とかではよく人間に反乱を起こしたり、自分がロボであることに悩んだりしている。
 ゲームでは人間に似たロボットがいっぱい登場する一方、あえて「外から感情が読みにくいロボット」も登場する。
 でもそれでもなんか可愛かったりする。
 そこら辺の趣味は人それぞれ(もちろん全部嫌いでもいい)。
 でも「命令を聞いてくれる従順な存在」は可愛く見える、という部分もあるだろう。
 これはある程度ペットにも同様のことが言えると思われる。もちろんその趣味も人それぞれ。


・条件(じょうけん):あることが起きるためのルールとか状態。
 英語では「condition(コンディション)」。
 数学では「必要条件(ひつようじょうけん)」「前提条件(ぜんていじょうけん)」などが出てくる。
 ややこしいけど、ここら辺は「理科」はもちろん「国語」や「哲学」*15「倫理」*16にも関わってくるところで、
 やってみると文系と理系センスが合わせて鍛えられるところでもある。多分。
 わかり始めるとちょっと楽しいかも。
 逆に言うと理解するためには国語のセンスがある程度必要。
 なので「数学なら全部楽勝ですから!」て人もここは理解できない可能性があるが、特に自信を失う必要はない。


・予約(よやく):前もって約束を入れておくこと。
 英語では「reservation(レザヴェイション)」。
 これができるとオトナという感じがする。
 ので「ほうれんそう(報告・連絡・相談)」と合わせて覚えておくと役に立つかも。
 ただし予約入れまくってドタキャンは相手も困るので避けた方がいいかと。
 関連用語:「予習(よしゅう)」*17

benkyoumemo.hatenablog.com

benkyoumemo.hatenablog.com

benkyoumemo.hatenablog.com

benkyoumemo.hatenablog.com

*1:「条件(じょうけん)」については 6/7 数+国:論理的な問題とバレットエディット ~with ゴッドイーター~ - のっぽさんの勉強メモ を参照。

*2:「RPG」については 3/14 こころの話:人生(じんせい)/君と道を行くRPG - のっぽさんの勉強メモ を参照。

*3:「選択肢(せんたくし)」については 4/10 こころの話:タノシマ・ナケレバ? ~新しい呪い~ - のっぽさんの勉強メモ を参照。

*4:「ウィルス」については 7/2 英語:ゾンビ物で出てきそうな英単語! - のっぽさんの勉強メモ を参照。

*5:「順番(じゅんばん)」については 7/1 国語:言葉の順番(じゅんばん)についての話 - のっぽさんの勉強メモ を参照。

*6:「システム」については 2/19 社+こころ:自信のなさを力に変える!? ~システムの話~ - のっぽさんの勉強メモ を参照。

*7:「ロード」については 7/27 英語:色んな「ロード」の話! ~road,load,lord,~ - のっぽさんの勉強メモ を参照。

*8:「フラグ」については 8/23 英語:ここでもそこでも「旗(はた)」が立つ!? ~「フラグ」、「スタンダード」、「バナー」の話~ - のっぽさんの勉強メモ を参照。

*9:「関数(かんすう)」については 1/28 数+英:X軸・Y軸(じく)/奴らの名はアクシス! - のっぽさんの勉強メモ を参照。

*10:「変数(へんすう)」については 9/8 数学:変数(へんすう)/変幻自在のカメレオンX ~そしてその限界~ - のっぽさんの勉強メモ を参照。

*11:「AI(エーアイ)」については 11/3 英語:色んな「art」/芸術、ゲーム、人工知能!? - のっぽさんの勉強メモ を参照。

*12:bot(ボット)」については 8/5 国+英:色んな「ット」で終わる言葉 ~キット、フィット、ラット~ - のっぽさんの勉強メモ を参照。

*13:「機械(きかい)」については 12/28 英語:謎の英語マシーンゲーム(食べ物) - のっぽさんの勉強メモ を参照。

*14:「SF(エスエフ)」については 12/3 世界史:塩とコショウ、保存と時間 - のっぽさんの勉強メモ を参照。

*15:「哲学(てつがく)」については 1/5 数学:なぜ「1+1=2」ができるのか(雑考) - のっぽさんの勉強メモ を参照。

*16:「倫理(りんり)」については 9/21 ゲーム+理+社:「寿命(じゅみょう)」と「倫理(りんり)」の話 ~犠牲の魔術~ - のっぽさんの勉強メモ を参照。

*17:「予習(よしゅう)」については 4/20 学習:教科書(きょうかしょ)を使ったゲーム(メモ) - のっぽさんの勉強メモ を参照。