ProgateでRuby編を終えた後に、「ドラクエ風プログラムを作ってみよう!」でアウトプットの練習をしてみた。

こんにちは!
ぷーさんと申します。

私はアラサーからプログラマーへの転職を目指すべく、「人生逆転サロン」というコミュニティーに入り、Rubyを勉強しています。
Progateを終えた後に、アウトプットをしながら知識の整理ができる教材を探していたところ、運営者の「かみさとよしと」さんがRuby学習者向け
「ドラクエ風ゲームプログラムをつくってみよう!」という教材を作られたので、早速やってみた感想をシェアしようと思います。

ちなみにこの教材の対象者は                   「Rubyの基礎知識がある方」となっていますが、

私は「ProgateのRuby編を1週終了したレベル」で挑戦をしてみました。

◾︎率直な感想

初心者には背伸びが必要!・・だったけど、すっっっごく楽しかったです!
単純に、自分で書いたコードがちゃんと動くのは面白いし、実際に勇者とモンスターがちゃんと戦ってくれた時はかなり興奮しました(笑)
当たり前かもしれませんが、裏で動いているコードって本当によくできているんですね。   

◾︎このプログラムがオススメな人

・ProgateのRuby編が終わり、次に何をしたらいいか迷っている人 
・Rubyの基礎文法力をあげたい人
・現場で求められる読みやすいコードの書き方を学びたい人
・リファクタリングの具体的な方法を学びたい人

自分の様なprogateを終えたばかりの人には少し大変ですが、やりきれば間違いなく知識もスキルも段違いに伸びます。そして、考えてコードを書く力が鍛えられます。また後半は、読みやすい(可読性が高い)コードの定義や思考過程が詳しく解説されているので、基礎が身についている方はさらに学べる事が多いのではないかと思います。

・所要時間
1日2時間程度の時間を割いて、約2週間程かかりました。
調べ物や理解するのにも時間がかかるので、私のような「ど」のつく初心者でなければ、もっと早くできると思います。

特に3章以降は一気に考える事が多くなりすぎて、唸りながらやっていました(笑) ただ、そんな私の様なレベルでも、繰り返し説明を読み、意味を考えながらコードを打っていくことで理解できる様に設計されていましたし、
ただコードを打つだけではなく、自分の頭で考えて実現したい機能を組めるような伝え方をしてくれています。

◾︎ドラクエプログラムの概略

「ドラクエ風ゲームプログラムをつくってみよう!」
は全4章で構成されています。

1章:勇者クラスの定義
2章:モンスタークラスの定義
3章:攻撃処理の実装
4章:クラスの継承とファイルの分割(リファクタリング)

◾︎前半の概略                            1章・2章は、勇者やモンスターの名前、攻撃力、防御力、体力、といったパラメーター設定を「クラス」、「メソッド」、「引数」、「ハッシュ」といった基礎文法で実装していきます。
なので、この部分に関しては、ProgeteのRuby編を1周した程度のレベルでも程よい復習になって楽しく進みます。

ちなみに、1章・2章で個人的になるほど!!と感じたの
「attr_acccessorメソッド」の使い方です。
Progateでは最初から「attr_acccessorメソッド」を使用していますが、
ここでは使い分けが理解できるように、「セッター」と「ゲッター」から分けてコードを書き、後から「attr_acccessorメソッド」を使ってまとめています。個人的にはそのおかげで、メソッドの機能や便利さがよく理解できました。

◾︎後半の概略
3章で途端にレベルが上がります。私にとってはここからが大変でした!
3章からは「攻撃」、「ダメージ計算」、「ダメージを残りHPに反映」といった処理をrubyの基礎文法を使って実装していきます。ここは「引数」をしっかり理解する事でついていけました!!

しかし、私にとっての鬼門は次の2つ!
・一定の確率で「必殺攻撃」か「通常攻撃」に攻撃パターンを分岐させる
・「HPが一定の値以下になったら、変身して攻撃力が◯◯倍になる」 

この機能の実装には
「if文を使った条件分岐」、「真偽値の理解」、「定数の使い方」の理解が必要でした。正直まだ真偽値に関しての理解があやふやですが、実装したい機能に対しての使い方は理解する事ができました。
また後半では可読性(コードの読みやさ)を上げるために実行する処理別にコードを整理する方法を解説してくれています。「読みやすいコードの形」
がどんな思考過程で作られていくのか、コードを誤読されないようにする工夫が分かりやすく説明
されています。

4章ではこれまで書いてきたコードを「クラスの継承」「ファイル分割」「リファクタリング」する方法を詳しく実施していきます。
ここは正直まだ整理しきれていませんが、完成したものを見渡すと機能別にスッキリまとまっている事は自分でも理解できました。
今後は「Rubyふりがなプログラミング」や「チェリー本」なども参考にしながら、継続してこの章の理解を深めたいと思います。

◾︎最後に

3章に突入し始めた当初は、エラーが解決しない、メソッド同士のつながりや意味を読み解くのにやたらと時間がかかる、正直これはまだ早すぎた。。と感じていましたが、今となってはよかったと思います。
いずれはぶつかる壁が一気に来ただけのことで、むしろ完成させる目標物が楽しいものであったからこそ1つずつ理解しながら進める事ができました。
悩んだ分だけ、ちゃんと成長できる教材だと思います。
ここまで読んでくださった方は、是非挑戦してみてください!
最後まで読んでいただき、ありがとうございました!

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