ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython (すがや みつる 著)を、プログラミングの勉強を始めたいという高校生(男子)に勧めたところ、さっそく読んでいるとのことだったので、オンラインで感想を聞いて、いくつかアドバイスをしました。
どこまで読みましたか?
>第7章(テキストベースのゲーム)の終わりまで。
なにかわからなかったこと、聞きたいことありますか?
>”You Win” とか “hantei” とか “while” とか、いろんな記述が出てきたけど、何がどう違うのか?
“You Win” みたいなのは、命令そのものではなく、例えば print という命令に与える値。
hantei みたいなのは、変数につけられた名前。プログラムを作る人が自由につけることができる。でも、変数に自由に使えない名前もある。
while みたいなのが、変数に自由に使えない名前。予約語といって、これはPythonの文法で決められている。この本の51ページには予約語の一覧も、Python で予約語の一覧を出す方法も書かれている。(入門書でこれに触れている本は貴重!)
ところで予約語に似ているけどちょっと違うのが、たとえば乱数で使う random というキーワード。使うときには random.randint() のように出てくる。
これは Python の予約語ではなくて、このプログラムの一番最初で import random という命令を使って、これから使うよという手続きをした場合だけ使える。
Python に入っている(追加のインストールは必要ない)けれど、Python の文法ではない(予約語ではない)というもの(標準ライブラリ)は、random の他にもたくさんある。
ところで、次に作ってみたいものを何か思いついた?
>画像を出したり動かしたり。。
それは第8章(Tkinterを使ったGUIゲーム)を読んでからのほうがいいですね。テキスト表示でできそうなことで何かやってみたいことは?
>(作りたいものを答えてもらった)
なるほど。たしかに作れそう。でも、そのためには、もうちょっと Python の機能を知ったほうがよさそうです。例えばトランプゲームを作りたいときに、この本の知識だけだと、カードの枚数=52種類の変数が必要になっちゃうし、その扱いも大変です。
Python Boot Camp テキスト 4. Python のデータ型(コレクション編) の内容を理解するといいと思います。無料で読めるのでぜひ。
この Python Boot Camp テキストでは、最初のほうで FizzBuzz の実習も出てきます。「こんにちは Python」も最初の題材は FizzBuzz でしたね。。それから、Python のインストールの方法もこの本と同じですね。
Python Boot Camp は私も運営に関わったことがあり、このテキストは、日本の Python コミュニティの技術者たちが内容をチェックしながら公開しています。私は「こんにちは Python」に Python コミュニティへのリスペクトを感じました。
他に質問はありますか?
>作ったゲームを配信したり配布したりできますか?
いろんなやり方があります。場合によっては他のプログラミング言語で作り直さないといけない場合があります。でもプログラミング入門ではなくなるので、次の段階で。
>本格的にゲーム開発をしたかったら、この本を読んだら次に何を読めばいいですか?
作りたいものが決まって、それがこんな風に作れる、とわかってきたら、その方法に近い本を探して学ぶ、という手があります。 Python で開発されて有償・無償で配布されているゲームもあるし、Python で本格的なゲーム開発という解説書もあります。
そういえば去年 PyCon mini Hiroshima 2019 の基調講演で、「プログラミング言語の勉強にゲーム開発は適している」という ransui さんのトークがありました。録画が YouTube にあります。ちょっと難しいかも、だけど、歴史や技術の奥深い話に興味があれば見てみてください。
もうひとつは、さっきの「コレクション」のように、プログラミング言語としての Python のいろいろな機能をもっと深く知る勉強も考えられます。そちらも、やりたいことを広げてくれる。
でも、「作りたいもの」を決めて、必要なことに絞って勉強するほうがモチベーションが維持しやすそうですね。
では今回はこのくらいで。実は nishimotz もこの ransui さんのお話を思い出して、ゲームを作ろうとしています。
年齢を超えて Python でゲーム開発の勉強をする会を、これから定期的に Zoom でやれたらと思っています。
次回、仲間が増えているかも知れないよ。よろしくね。。
補足:次回以降は connpass の shuaruta グループでイベント告知をしたいと考えています。よろしければチェックしてみてください。