2018/11/13(火) [n年前の日記]
#3 [prog] 「Hello world」の次の課題の候補が欲しい気もする
思考メモ。
プログラミングの世界には、「Hello world」というお題があって。
「コンソール上(あるいはウインドウ内)に、『Hello World』と表示してみよう!」というお題なのだけど。自分が知らない言語やライブラリを使う際には、まずは「Hello world」をやってみる、というのがよくある流れ、だったりするわけで。
非プログラマーさんからは、「えっ? たったそれだけの課題なの?」と思われるかもしれないけれど。コレ、意外と大事な課題で。
「Hello world」をするためには、開発環境の構築・導入が必要で。コンパイルをする言語なら、コンパイラだの何だのをインストールしなきゃいけない。つまり、「Hello world」と表示できた段階で、「これで開発環境の構築は終わったよ」「さあ、後は各自、目的のプログラムを書くだけだよ」という状態になる。「Hello world」すらできないようでは、その先のプログラミングもへったくれもないのです。
しかし…。「Hello world」が終わった段階で、「さあ、環境構築はできたぞ。…さて、ここから一体何を書こうかなあ。どうしよう」と悩んじゃうときも…あるよなと。
「そんな馬鹿な。何かを作りたくて環境構築したんでしょ? その何かを書き始めればいいじゃん」と思われるかもしれないけれど。意外とそういう流れじゃない時もあって…。「お? なんだかコレ面白そうだな。少し触ってみるか」なんて動機で、自分にとっては未知の言語・ライブラリを試してみる、てな時もあるわけですよ。
そういうときに、ちょっと困っちゃう。次の段階に進みたいけど、適切なお題が思いつかないのだよなあ。みたいな。
そういったことを考えると、 _「るびま(Rubyist Magazine)」 で紹介されてた、Ruby/SDLのサンプルゲームの仕様 ―― 上から落ちてくる何かをひたすら拾うというゲーム内容は、ゲームプログラミングのお題としては結構イイ感じかもしれない、と。
_Ruby/SDLで始めるゲームプログラミング【前編】
_Ruby/SDL で始めるゲームプログラミング【後編】
このサンプル相当を作れば…。
他にも、ヨサゲなお題はないものだろうか…。
自分の場合はゲームプログラミングについて考えちゃうけど、例えばWebサービス作成版の、「Hello world」の次のお題、とかあっても良さそうだよな…。
電子工作なら、Lチカ(LEDをチカチカさせるアレ)の次のお題、とか。
もっとも、見るからに面白そうと感じられたり、あるいは発展させるとこうなりそう的な想像ができるお題じゃないと、モチベーションが出てこないか…。
プログラミングの世界には、「Hello world」というお題があって。
「コンソール上(あるいはウインドウ内)に、『Hello World』と表示してみよう!」というお題なのだけど。自分が知らない言語やライブラリを使う際には、まずは「Hello world」をやってみる、というのがよくある流れ、だったりするわけで。
非プログラマーさんからは、「えっ? たったそれだけの課題なの?」と思われるかもしれないけれど。コレ、意外と大事な課題で。
「Hello world」をするためには、開発環境の構築・導入が必要で。コンパイルをする言語なら、コンパイラだの何だのをインストールしなきゃいけない。つまり、「Hello world」と表示できた段階で、「これで開発環境の構築は終わったよ」「さあ、後は各自、目的のプログラムを書くだけだよ」という状態になる。「Hello world」すらできないようでは、その先のプログラミングもへったくれもないのです。
しかし…。「Hello world」が終わった段階で、「さあ、環境構築はできたぞ。…さて、ここから一体何を書こうかなあ。どうしよう」と悩んじゃうときも…あるよなと。
「そんな馬鹿な。何かを作りたくて環境構築したんでしょ? その何かを書き始めればいいじゃん」と思われるかもしれないけれど。意外とそういう流れじゃない時もあって…。「お? なんだかコレ面白そうだな。少し触ってみるか」なんて動機で、自分にとっては未知の言語・ライブラリを試してみる、てな時もあるわけですよ。
そういうときに、ちょっと困っちゃう。次の段階に進みたいけど、適切なお題が思いつかないのだよなあ。みたいな。
そういったことを考えると、 _「るびま(Rubyist Magazine)」 で紹介されてた、Ruby/SDLのサンプルゲームの仕様 ―― 上から落ちてくる何かをひたすら拾うというゲーム内容は、ゲームプログラミングのお題としては結構イイ感じかもしれない、と。
_Ruby/SDLで始めるゲームプログラミング【前編】
_Ruby/SDL で始めるゲームプログラミング【後編】
このサンプル相当を作れば…。
- ウインドウの表示。
- 画像の表示(描画)。
- キー入力でプレイヤーキャラを動かす。
- 複数のオブジェクトの発生・移動・描画。
- オブジェクトとプレイヤーキャラのアタリ判定。
- 音楽(BGM)の再生。
- 効果音(SFX)の再生。
他にも、ヨサゲなお題はないものだろうか…。
自分の場合はゲームプログラミングについて考えちゃうけど、例えばWebサービス作成版の、「Hello world」の次のお題、とかあっても良さそうだよな…。
電子工作なら、Lチカ(LEDをチカチカさせるアレ)の次のお題、とか。
もっとも、見るからに面白そうと感じられたり、あるいは発展させるとこうなりそう的な想像ができるお題じゃないと、モチベーションが出てこないか…。
◎ 昔見かけたお題。 :
某社の新人研修時に出されたお題も、基本を学ぶ分にはなんだか良さそうだな、と思い出したりして。
この課題をやると、何が身につくのだろう…。
もっとも、今時はそのあたりフレームワーク云々で用意されてそうな気もする。今時の環境に合ったお題となると、どういった内容になるのだろう。
- 横スクロールシューティングゲームを作れ。
- 自機はカーソルキーで上下左右に動く。
- 自機は弾を撃てる。
- 雑魚敵は画面内に複数出てくる。
- 雑魚敵は自機の弾で消せる。
- 雑魚敵を4種類実装しろ。
- 雑魚敵Aは、画面右から出現。sinカーブで飛んでくる。
- 雑魚敵Bは、画面右から出現。自機を追いかける。
- 雑魚敵Cは、画面左から出現。放物線を描いて画面左に帰っていく。
- 雑魚敵Dは、(仕様失念)
この課題をやると、何が身につくのだろう…。
- 画面内に複数のオブジェクトを出して動かす仕組み、の基本を学べる。
- 速度と加速度の使い方を学ぶ。
- 角度から速度を求めて使うやり方を知る。(三角関数の復習。)
もっとも、今時はそのあたりフレームワーク云々で用意されてそうな気もする。今時の環境に合ったお題となると、どういった内容になるのだろう。
*1: まあ、研修を受けていたほとんどの人は数日で課題をクリアして、残り時間は各々が好き勝手な仕様を追加して遊んでたけど…。
[ ツッコむ ]
以上です。