What is going on with this article? その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。 ・技は1体のドラゴンにつき3つ持つ。 また、このメソッドに入った時点で、攻撃側が選択した技が引数として渡っている(offenceAction)。, 1:メッセージ表示 積みゲー、積ん読がどんどん増加しているのがここ数年の悩み。 プログラミング、ライティング、マーケティングなど、あらゆる手段を駆使して、 開発環境. * @param offenceDragon:攻撃側のドラゴン * @param dragonId 選択・生成フェーズでの */, /** シンプルドラゴンクラスを継承し、バトル中に参照するHPと技を持たせる。, ・ChoiceDragon という流れです。 ・技は自分→相手の順番で出す。 ButtleDragon(SimpleDragonに、使用する技のidとバトル用のHP(攻撃を受けると減少する)を追加したクラス)から生成される */, /** * @param dragonName 敵が現れる→ジャンケンする→勝ち:ダメージ大与える、あいこ:ダメージ小与える、負け:ダメージ食らう→倒す https://note.com/ganga_1/n/na2959e604fed * ※ここでDBを使用すると良いと思います。 ・ドラゴンは名前・HP・技が違う3体を用意 * @return 3:生成したドラゴンと技を結びつける Javaの勉強をしていたらRPGゲームの記事を見つけたので、自分流にアレンジして作ってみたいと思います。, 敵が現れる→ジャンケンする→勝ち:ダメージ大与える、あいこ:ダメージ小与える、負け:ダメージ食らう→倒す */, /** * @param defenceDragon ・技を出し相手のHPを減らした段階で相手のHPが0かどうかの判定を行い、0なら攻撃した側の勝ちとなる。, ├── DragonMain.java * 基本的な技の流れ 自分の中でよかったなと思う知識やコードをまとめていきたいと思います。
参考文献. 更新日 : 2019年4月18日, たとえば、int型の数値を格納するためのリスト、playerは次のように表記します。, データ型にintではなくIntegerという見慣れないものが入っていることに引っかかるかたもいるかも知れません。ココらへんは話すと長くなるので、概要だけお伝えします。, リストを含むコレクションはインスタンスのみを格納でき、プリミティブ型(int,char,booleanなど)を格納することができません。そのため、プリミティブ型をインスタンスに変換するラッパークラス、というものに置き換えます。, ラッパークラスについて詳しく知りたい方はこちらをご覧ください。 * @param hitPoint What is going on with this article? */, /** そのため、自分が攻撃する時と相手が攻撃する時には第2・第3引数に渡すドラゴンを交換するだけで、「攻撃側が防御側にダメージを与えた」という処理が攻撃側=自分でも、攻撃側=敵でも成立する。 │ └── SimpleDragon.java 開発環境. 「選択」段階では、SimpleDragon.javaを 自己紹介. └── choice * 技リストを表示する Help us understand the problem. 参考文献. JavaでRPGゲームを作ってみる. │ ├── ButtleMain.java 自分の攻撃はButtleContents.useActionメソッドに入力値を渡して、敵の攻撃はRandomEnemyChoice.randomChoiceメソッド内のButtleContents.useActionメソッドにランダム値を渡して処理を行う。, インスタンス化されたドラゴンが保持している値を更新(getter)・参照(setter)しながら処理を進める。, このメソッドは引数として「offenceAction・offenceDragon・defenceDragon」の3つを取る。今回のゲームでは、自分のドラゴンが技を使用して攻撃する時には、相手のドラゴンが防御側のドラゴンになる(攻撃側が敵の場合ももちろん、防御側は自分のドラゴンとなる)。 Javaを使った、じゃんけんゲームの作り方を、ひとつひとつ、詳しく解説していきます。サンプルコードと画像付きなので、とても分かりやすい解説となっております。 * 戦闘中のMPは[buttleActionPoint]を使用して増減させる Actionとしてid・技名・威力・MPを生成し、idとActionを紐付けた「技リスト一覧」マップを生成 */, /** * @param oppoDragon 「Javaの基礎(というか、オブジェクト指向)がわかれば対戦ゲームが作れる!」と気づいたので作成しました。 また、小数点を扱う際はdouble型を使います。, Math.random()の値に3をかけ、int型変換することにより、0〜2の整数が生成できました。ちなみにこの変換をキャストというとのことです。, http://pbsb.hatenablog.com/entry/2018/10/09/151551 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. └── ChoiceDragon.java, beanフォルダ内のクラスを使用してドラゴンをインスタンス化(生成)する。 ├── DragonMain.java ├── bean │ ├── ButtleDragon.java │ ├── Action.java │ └── SimpleDragon.java └── util ├── buttle │ ├── ButtleContents.java │ ├── ButtleMain.java │ └── RandomEnemyChoice.java └── choice └── ChoiceDragon.java beanフォルダ内のクラスを使用して … Javaの勉強をしていたらRPGゲームの記事を見つけたので、自分流にアレンジして作ってみたいと思います。 構想. 2:技リスト一覧の生成 Help us understand the problem. * ※この部分をDBから取得すると良いかもしれません https://qiita.com/dk_masu/items/d7bb7a81cbc6e16fbb49. * @throws Exception choiceDragonListで生成したドラゴンをリストに格納して全て表示する, ChoiceDragon.makeDragonメソッド内で行う。 * バトル中に使用するドラゴンクラス */, /** */, you can read useful information later efficiently. 3:MPの減少 ハッピーなフルリモートワーカーを目指し中。, 最近興味がある分野は深層強化学習。 * ディーラーの手札が18以上21以下になったとき次の段階に移行する。, 基本仕様をざっと確認してみると、おおよそ一般的なブラックジャックといってよさそうです。, ですが普通のブラックジャックと違い、Aは1ポイントとしてしか計算しません。これはコードの簡略化のための措置です。最初からAを1と11どちらで扱ってもいいようにすると、コードの組み方が難しくなります。なのでまずはAを1とだけ扱って、その後、余力があれば1と11に切り替えられる仕組みを作るようにしています。, 最初から難しいことをいきなり実装せず、簡単なものを作ってから機能追加していく方法は、挫折しないための重要なポイントです。, では、この流れをコメントにしたjavaファイルを作ってみましょう。クラス名はBlackjackClass、パッケージはnet.sejukuとしました。, コメントの流れを追っていくことで、おおよそどんな処理が必要なのか想像できたのではないでしょうか?流れを文章化してみると以下のようになります。, ざっくりとプログラムを開発するための骨格が見えてきましたね。ここからは実際にコメント部分のコードを実装していきます。, 自分で手を動かして考えてみたい方は、ぜひこの段階でプログラムを組んでみてください。わからない部分があったら次の章で確認するのがオススメです。, では、Javaの簡単ブラックジャックの実装を見ていきましょう。章全体が長くなっているので、前半後半で分割しました。, 前半では山札の生成や手札のセッティング、手札を表示する方法とこれらを支えるメソッドの設計を見ていきます。, 入門書終了段階ではリストについて学習していないかもしれません。ですが、リストを使うことでこのプログラムはとても見通しがよくなるので、今回は採用しています。, リストはJavaのコレクションフレームワークという仕組みに含まれているもので、ざっくりいうと配列のスゴイ版です。どこらへんがスゴイのかというと, ここでは簡単な使い方を紹介します。詳しく知りたい方はこちらの記事をご覧ください。