ArrayList学習 簡単RPGゲーム風で( java学習 )

みなさん、こんちは!!副業でウェブデザインナーをしながらエンジニアを目指している51です。

今日は、JavaのArrayListについてアウトプットをしていきます。

ArrayListとは?

ArryListとは、リストインタフェースを実装したコレクションクラスです。

ArrayListは、配列を扱うような感覚で扱えます。

ArrayList配列別物

注意点としては、配列とは若干の違いがあります。

  • 配列 = 要素数が決まっている。
  • ArrayList = 要素数が決まっていない。
  • ArrayListは、プリティブ型(int, booleanなど)を入れられない。

以下のListメソッドを使用します

メソッド説明
addリストに値を追加
addAllリストにリストを追加
setリストの値を変更
getリストの値を取得
sizeリストの要素数を取得
indexOfリストから値の要素番号を取得
subListリストから範囲を指定してシャローコピー
containsリストに値が含まれているか確認する
removeリストから指定した要素の値を削除する
distinctリストから重複する値を削除
cloneリストをコピー
clearリストを空にする

いっぱいありますね・・・。

使用するクラス

javaではコレクションを使用するにあったてクラスをインポートする必要があります。

以下が主にArrayListで使用するクラスとなります。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.steam.Collectors;

ArrayListの基本的な書き方

package パッケージ名
public class クラス名 {
   
   ArrayList<データ型名> 変数名 = new AllayList<データ型名>();
         
          変数名.add(追加する要素);
          変数名.add(追加する要素);
          変数名.add(追加する要素);

      }
   }

なお、参照名のデータ型名の閉じ側の<>は省略可能。

例

ArrayList<データ型名> 変数名 = new ArrayList<データ型名>();

ArrayList<string> 変数名 = new ArrayList<>(); //のように
         

記述例

package sample;

import java.util.ArrayList; //コレクションクラスをインポート

public class Sample {
   public static void main(String[] args) {
          
         //リストを作成
        ArrayList<String> hello = new ArrayList<>();

        //値を追加
       hello.add("こんにちは");
       hello.add("おはよう");
       hello.add("こんばんは");

     System.out.println(hello);

      }
    } 

出力結果

[こんにちは, おはよう, こんばんは]

これで、ArrayListの基本はできました。

けでも、よ・・・・・・・。

やっぱり初学者は、どう使うの?ってなりますよね?

では、前回と同じように51式アウトプット(日常をプログラミング化)をやっていきます。

今回は、日常というより簡単なゲームで作っていきます。

ロジックは、こうです。

  • 今回の構成は、モンスターの出現、勇者の攻撃、モンスターの反応で構成
  • 勇者の攻撃値によって、悶絶、挑発、反撃のパターンを作成。
  • 魔物の攻撃がクリティカルだった場合、勇者が倒れるパターンも作成。

以上のメソッドを共有しないといけないので以下のように構成

  • 出現した魔物、出力した攻撃値、を全メソッドで固定しないといけないのでフィールド化
  • 勇者の攻撃値によって分岐をif文で作成

出力される結果は

  1. 魔物が出現
  2. 勇者の攻撃
  3. ランダムで攻撃値が決定
  4. 攻撃値によって分岐が発生
package monster;

import java.util.ArrayList; //コレクションクラスをインポート

public class Monster {

   //今回はランダムメソッドを使いまわすために、フィールドクラスを用意します

   //モンスターの名前のリスト
    private static ArrayList<String> monsterName = new ArrayList<>();

   //モンスターをランダムで出現させる
    private static int monsterIndex;

    //出現したモンスターを固定する変数
    private static String monsterA;

 public static void main(String[] args) {

       //メソッドを宣言
       monsterName();
       showRandomMonster();
       player();
   
    }

  private static void monsterName() {
     
       //モンスターのリスト用意
       monsterName.add("スライム");
       monsterName.add("アンクルホーン");
       monsterName.add("ケンタウロス");
       monsterName.add("彷徨うよろい");
       monsterName.add("マミー");
      }
 
  private static void showRandomMonster() {  //モンスターがランダムに出現するメソッド

    monsterIndex = (int)(Math.random() * monsterName.size()); //中の要素でランダムに出力

    monsterA = monsterName.get(monsterIndex); //出現したモンスターを変数化

    System.out.println(monsterA + "が現れた");
     }
     
  private static void player() {    //勇者の攻撃メソッド

    System.out.println("勇者の攻撃");

   //勇者の攻撃値を作成
    int attack = (int)(Math.random() * 100 + 20); //最低攻撃力を20以上に設定し、ランダムな数値で攻撃値を出力

    //魔物の反撃値を作成
    int attack2 = (int)(Math.random() * 80 + 10); 

    System.out.println(attack + "のダメージ"); //勇者の攻撃値を出力

    //ここからパターンを作る
    
    if( attack > 100) { //勇者の攻撃が100以上なら

          System.out.println("会心の一撃!");
			System.out.println(monsterA + "は悶絶した!");

       } else if ( attack < 50 ) { //勇者の攻撃が50以下なら

            System.out.println("うまく当たらなかった");
			System.out.println(monsterA + "はニヤリと笑った");

       } else {  //通常値ならモンスターが反撃

          System.out.println(monsterA + "の反撃");
			System.out.println( "勇者は" + attack2 + "のダメージを受けた");

     if( attack2 > 80) {  //更に魔物の攻撃が80以上だった場合を追加
            System.out.println("勇者は膝をついた");
            }


        }

     }


       
  

パターン

スライムが現れた
勇者の攻撃
74のダメージ
スライムの反撃
勇者は69のダメージを受けた

パターン

ケンタウロスが現れた
勇者の攻撃
21のダメージ
うまく当たらなかった
ケンタウロスはニヤリと笑った

パターン3

スライムが現れた
勇者の攻撃
57のダメージ
スライムの反撃
勇者は81のダメージを受けた
勇者は膝をついた

パターン4

彷徨うよろいが現れた
勇者の攻撃
117のダメージ
会心の一撃!
彷徨うよろいは悶絶した!

それぞれ、狙い通りのパターンが出力されました。成功です!!

ここまで読んでくれてありがとうございます。

面白かったら、Xのフォローをして下さいね!!

それでは、また。。。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次