プログラミング「的思考」を学ぶために、クマの「グマミン」が様々なゲームに挑戦する「プログマミング」企画。
第1回はこちらをご覧ください。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/Snapshot-2020-07-04-20.40.11-320x180.png)
今回からいよいよチュートリアル中級編へ突入。
新たなコマンドが増えてくる予感、、、!
1つずつ、丁寧に進めていきたいと思います。
![グマミン](https://ashitaenta.jp/wp-content/uploads/2020/07/download20200706070906-300x300.png)
もしAまたはBなら
![](https://ashitaenta.jp/wp-content/uploads/2020/07/bfd8eb25290ae2568b14fe5141ba6384-300x182.jpg)
バトルアリーナは特に何の特徴もない1対1の様子。
近づいてくる敵に対して、ひたすら攻撃をしていくのですが、、、
ロボットの上に「?」マークが、、、。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/28f746003f3c4b48fbdddcaf8959c69f-300x185.jpg)
どうやら「中距離の敵機を攻撃する」という命令しか与えられてなく、近距離の敵にはどう対処したらよいかわからないという状況のようです。
実際のプログラムはこういう感じ。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/e6af3be350607b262ec0e4837861f052-300x267.png)
たしかに、これでは「中距離の敵」にしか攻撃できませんね、、。
しかし、このように短距離もつないであげることで、
![](https://ashitaenta.jp/wp-content/uploads/2020/07/0a3836585e8b86b719cad4513d824106-300x260.png)
「短距離、または中距離の敵に攻撃をする」という、2通りのパターンでロボットを動かすことができます。
実際に超至近距離でも相手に攻撃し、撃破することができました。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/6506d16fe3b3a86b773c16f277575e13-300x200.jpg)
![グマミン](https://ashitaenta.jp/wp-content/uploads/2020/07/download20200706070906-300x300.png)
もしAかつBなら、、、
続いてはこちら。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/83ffef9a76c98670d991f439f8bbad18-300x160.png)
ここで初めて「制限時間」の概念が登場。そんなのあったのね、、、。
残り25秒という少ない時間で2機を相手にしなければいけません。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/b618ad4ef39dbb8d3e21bfb669c2fd80-300x197.jpg)
しかもこの構図、、以前の記事にも登場したような、、、
![](https://ashitaenta.jp/wp-content/uploads/2020/07/0077fc16a8c185f7041118c4fac5ff76-320x180.png)
自機のシールドが0%になったら、一旦後退して回復を待つというプログラムとなっています。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/dd673908df0c2f2334a1fa7575d9e890-300x201.jpg)
つまりこの戦い方だと、安全ですが時間がかかるのです。
ではどうすればよいのか、、、?
そう、回復をしなければいいのです。
ここで「AかつB」の考え方が登場します。
新たに、「もし敵機が2以上」というノードが追加されました。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/d9d44254196f3555da62ee964b9935c7-300x245.png)
これを「最も近い敵機から離脱する」というノードと縦に結ぶことで、「AかつB」のプログラムが完成。
![](https://ashitaenta.jp/wp-content/uploads/2020/07/767adc308ae8528ce3d23327b66578a5-300x251.png)
つまり、
「もし自機のシールドが0%」かつ「敵機の数が2以上の時」に「敵機から離脱する」という考えとなります。
これを今回のケースに当てはめて解釈すると、
「もし自機のシールドが0%」でも、「敵機の数が2未満なら」「離脱せずに攻撃する」とも考えることができます。
用は、「いちいち後退しなくても勝てるから、そのまま戦ってくれ」と命令することになりますね。
このプラグラムを使うと、、、
![](https://ashitaenta.jp/wp-content/uploads/2020/07/29711b9bf34643db7071d1440c859383-300x172.jpg)
こちらも体力ギリギリでしたが、制限時間内に敵を倒すことができました。
この「もしAまたはBなら」と「もしAかつBなら」の2つは、今後も頻繁に登場しそうなので、しっかり覚えておきたいと思います。
今回はあっさり目でしたが、飛ばしすぎに注意して少しずつ理解を深めていきたいと思います。
ではまた!
![グマミン](https://ashitaenta.jp/wp-content/uploads/2020/07/download20200706070906-300x300.png)
![](http://image.moshimo.com/af-img/0866/000000036368.jpg)