ぷよぷよプログラミングに挑戦してみた
昔と比べプログラムはメジャーな存在となっています。
小学校でプログラムについての授業が始まり、プログラムを学習するサービスなんかも人気です。
過去にプログラム未経験者にプログラムを教えるため、ものすごく簡単なゲームを作って説明したことがあります。
ゲームプログラムはプログラムの面白さを伝えるのによい題材です。
その中で以前「ぷよぷよプログラミング」の記事を見つけていたのですがそのままになっていました。最近機会があり興味が出てきたので全部写経する上級モードに挑戦してみました。今回は挑戦してみた感想を書いてみます。
ソースコードを入力してゲームを動くようにしていく
公式サイトからMonaca Educationへ移動してアカウント登録します。
ログインしてページ下部にある「ぷよぷよプログラミングに挑戦」から上級コースを選びプロジェクトをインポートします。
インポートできたら「ぷよぷよプログラミング上級」をクリックして「設定」から「プロジェクトのエクスポート」の「エクスポート」をクリックして作業データ一式をDLします。
作業データはnode環境で構築されているので、自分のPCにnode環境を作り作業環境が構築できれば準備OK。
入力するソースコードは公式サイトの「用意するもの」あたりに「ダウンロード「ぷよぷよ プログラミング」ソースコード一式」ボタンがあるのでクリックしてPDFファイルをDLします。
入力したけれど...
写経自体は入力に時間がかかるだけでそう難しいものではありません。が、
入力が完了していざゲームを起動するとうまく動きません。
点数が加算されなかったり、ぷよが落ちなかったり、回転しなかったり、連鎖しなかったりと問題が噴出。エディタやデベロッパーツールに表示されるエラーを参考におかしい部分を特定してデバッグしていきました。
一つ一つ場所を特定してエラーを潰していったのですが、それでも取り切れないバグがいくつか残り、最終的に正解のソースコードを1行ずつコピペして違いを見比べる形で完成させました。
エラーのほとんどは変数の記述が間違っている、記述位置が違うとか数値が間違っている、演算子が違うなどケアレスミスに近いところが原因でした。
挑戦してよかったなと思った点
まず、プログラムファイルもそれぞれクラス別に分けられていて、どこに何が書かれているか特定しやすくなっています。ソースコードもclass構文を使って書かれているのでclassがよく分からない人への参考になると思います。
それからソースコードが親切で入力しているときにどんな処理をしているかわかりやすかったです。コードの中身もif文やfor文を始めとした制御構造に変数、配列などプログラムで必要な機能や仕組みがたっぷり使われているのでプログラムを勉強するにはすごくいい内容です。
自分たちで何かゲームを作ってみようと思ったとき、変数名やメソッド名などの名称の付け方も参考になると思います。
ここは直して欲しかったなという点
JavaScriptはセミコロンがなくても動作しますが、式にセミコロンがあったりなかったりと書いてる人により癖があり、コーディングガイドラインが一部違うところがありました。
このあたりは仕事で気になる部分なので統一して欲しかったなと思います。
まとめ
久しぶりにプログラムを写経しましたがソースコードが公開されていることでプログラムを勉強するきっかけに繋がったり、どう書いたらいいんだろうという悩みも参考にできるので解決しやすいですね。
また、ゲームのように見た目で分かるものは興味を持つ人が多く、入力した結果も分かりやすいため勉強するモチベーションも持続しやすいです。
今回のプログラムだと上級は難しいですが基礎から中級までならプログラム未経験者でも敷居が低いと思います。
プログラムを勉強するにはすごくよくできた教材になっていると思います。
WebサイトでもCSSアニメーションやcanvasを使ったプログラムが使われることが多くなってきているので、子供だけではなくプログラムを始めてみたい社会人にも勧められそうです。