読者です 読者をやめる 読者になる 読者になる

のっぽさんの勉強メモ

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

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

数学 ゲーム

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


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

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

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

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



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

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

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

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


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

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

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


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

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

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


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


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


 まあそんな感じで~。




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

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

みたいな感じですね。


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



◆用語集
・プログラム(program):計画(けいかく)や手順(てじゅん)のこと。
 近年ではコンピューター用語として使われることが多いが、
 運動会のしおりとかに「プログラム」というのが載っているように、もともとは計画という意味。
 要はコンピューターのプログラムは「めっちゃ複雑になった計画」みたいな。
 関連用語:「順番(じゅんばん)」*3「システム」*4


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


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


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

benkyoumemo.hatenablog.com

benkyoumemo.hatenablog.com

benkyoumemo.hatenablog.com

benkyoumemo.hatenablog.com