見出し画像

【Ruby学習】ドラクエ風ゲームプログラム作製教材やってみた

0. はじめに

この記事は人生逆転サロンのオーナー神里さんが作製したドラクエ風ゲームプログラム作製教材(以下、ドラクエ風教材と呼ぶ)についてのレビューです。ざっくり言うとドラクエ風教材ではRubyのオブジェクト指向やロジック部分について初心者向けの課題と解説が用意されています
記事の構成は以下のようになっています

1. 概要
2. 学べること
3. 実感とまとめ

(ドラクエ風教材の詳細や購入ページはこちらです
https://www.techpit.jp/p/ruby-dragon-quest)

1. 概要

価格​:1280円(techpitから購入できます)
想定学習時間:16時間
内容:Rubyでドラクエのバトル部分のコマンドラインアプリケーションを作ります。コマンドラインアプリケーションとはこのようにコマンドラインでやり取りするアプリのことです
これは僕が実際に作ったものです。行動パターンやアイテムは自分で勝手に増やしましたが、このようなゲームを作りながらRubyの基礎を学べます

スクリーンショット 2020-02-26 12.13.34

アイテムを使った例(2枚分)↓

スクリーンショット 2020-02-26 12.23.59

スクリーンショット 2020-02-26 12.25.08

このように結構ゲーム性を持たせることができます。作っていてとても楽しいですよ!

2. 学べること

客観的に書くとキリがないので僕の主観でありがたかったところをピックアップして書きます。なので教材の内容はこれだけではありませんよ

・クラスの定義、パラメーターの設定と取得【重要度:特大】

初心者には分かりづらいアクセサメソッド(attr_accessor)の中身がよく分かります。また、initializeメソッドの実践的な書き方が紹介されています。超基本な部分なので盤石にしたい内容です

・フラグというパラメーターの扱い【重要度:中】

勇者とモンスターのバトルの処理を書くなかで、フラグというパラメーターが登場します。これはインスタンス(今回で言えば勇者やモンスター)の何らかの状態を表すために使います。例えば勇者の生死を表すフラグは勇者が生きていればtrue、死んでいればfalseというように使います
応用範囲の広い手法だと思うので学んでおくべき内容です

・メソッドの切り分け【重要度:大】

実現したい一連の処理を一つのメソッドに詰め込むと長くなって、どの部分が何をしているのか分かりづらくなります。これを解消するために一つの大きなメソッドを複数の機能別のメソッドに分けます。コードが分かりやすくなる、エラー原因を見つけやすくなるなどの大きなメリットがあります

・ファイル分割【重要度:大】

メソッドの切り分けと同じように、プログラムを部分部分の目的ごとに別ファイルに分割してプログラムを分かりやすく加工しやすくします。その際に別々になったファイル同士を連携させる方法(require)を用います。プログラムが劇的に分かりやすくなるので不可欠な工程です

・メッセージ出力部の切り分け(モジュールの活用)【重要度:中】

メソッドもファイルも切り分けるとプログラムはかなり分かりやすくなります。しかしさらに分かりやすくするためにするのが、メッセージ出力部の切り分けです。ダメージ計算などを処理する部分とメッセージ出力部を分けてしまうんですね。その際に用いたのがモジュールです。僕はモジュールの立ち位置が分からなかったので実際に使ってみて感覚を掴むことが出来ました

3. 実感とまとめ

冒頭でも言いましたが、実際に遊べるゲームを作りながらRubyの基礎を学べるので楽しく意欲的に学習できました。楽しくなって教材が終わった後もバトル機能を拡張してしまったくらいですからね
教材の構成が、初めは基本的な知識で動くコードを書いて、その後コードを短くするために応用的なテクニックを入れるというスタイルなので、初心者で理解が浅くても置いていかれない設計がなされていると感じました
僕が特に勉強になったのは目的別にプログラムの部分を切り分けることでした。自分ではまだレベルが低く綺麗に切り分けられませんが、どのようにするとコードが分かりやすくなるか非常に勉強になりました
初心者はプログラムが動けばOKと考えがちですが、後々自分で加工するときや人に渡すときにコードが整理されているのとそうでないのとでは扱いやすさが全く違います。何言ってるのかぱっと見でわからないコードってすごく嫌ですよね(笑)僕は自分のコードでもよくそうなります。また、簡潔に整理されたコードを書けること自体が一定のプログラミングスキルの証明になるので(スキルがないとコードの整理できないです!)、コードの体裁は重要と言えます。しかし意外とその辺をケアする教材って少ないように思います
なので、Rubyの基本に加えて簡潔なコードを書く方法も教えてくれるドラクエ風教材はその意味でも価値が高いと思いますよ

Ruby on Railsをやっているプログラミング初心者でRubyの基礎運用能力に不安がある人は多いと思います。僕もその一人です。Ruby on Railsって便利すぎてRubyの知識とかあまりなくても使えてしまいますからね。初めから便利なメソッドが使えるようになっていたりしますし。どこまでがRailsでどこからRubyなのか境界が曖昧になりがちです。ここら辺のモヤモヤを解消したい人はドラクエ風教材をやってみるといいですよー

以上が実感とまとめ、そしてレビューでした
教材の詳細や購入はこちらのリンクからどうぞ!↓
https://www.techpit.jp/p/ruby-dragon-quest

この記事が気に入ったらサポートをしてみませんか?