GUI版ダンジョン探索プログラム改 - 萌えJava超入門
テキストファイルを読み込む

GUI版ダンジョン
探索プログラム改

ダンジョン探索プログラムのマップをファイルから読み込みます。

目次

1. ダンジョン探索プログラム改

それでは早速「GUI版ダンジョン探索プログラム」のマップをファイルから読み込むバージョンを作成してみましょう。

マップをテキストファイルから読み込む新しいソースコードは、
DangeonWalker2.zip にまとめたので、こちらをダウンロードしてください。
ダウンロード→ DangeonWalker2.zip

DangeonWalker2.zipを展開すると、以下の様なファイルの構成になっています。

ファイル構成
  DangeonWalker2
    ├ floors  追加├ floor01.txt  追加└ floor02.txt  追加
    │
    └ src
        └ awt
            └ ExchangeImageAWT.java
          img
            ├  Argb.java
            └  PixImage.java
          map
            ├  Cell.java
            ├  Drive.java  変更あり(ファイル読み込み)ReadFile_04.java  追加(package map;)
            └  Sample24_02.java
          point
            ├  Compass.java
            ├  Point_dou.java
            ├  Point_int.java
            └  Rect_int.java
          screen
            ├  Point_3D.java
            ├  ScreenImage.java
            ├  ScreenImage01.java
            └  WallVertex.java
          swing
            ├  DialogBlackYN.java
            ├  FullScreenFrame.java
            ├  FullScreenKeyFrame.java
            ├  FullScreenKeyPimgFrame.java
            └  ImagePanel.java


生成された「DangeonWalker2」フォルダを、wsディレクトリに移動してください。
(「DangeonWalker2」フォルダが2重になっていたら内側のフォルダだけでOKです。)
続いて、コマンドラインから、以下のように実行します。
DangeonWalkerと同様にウインドウが開いて動作すれば読込成功です。

コマンドライン
>cd ws/DangeonWalker2
>mkdir bin
>javac -encoding UTF-8 -d bin -sourcepath src src/map/Drive.java
>java -cp bin map.Drive


DangeonWalker2




2. 変更点

DangeonWalker2 は、DangeonWalkerから以下の点を変更しています。
  1. 読み込むテキストファイルは、DangeonWalker2フォルダの直下に floorsディレクトリを作成して保存しました。
    ソースコードではないので srcディレクトリには入れていません。
  2. ReadFile_04.java は、mapディレクトリに配置しました。
    これに伴い、「package map;」の一行を追加しています。
  3. 以前はマップを Drive.java に直接リテラルで書き込んでいましたが、
    これを ReadFile_04.java で読み込むように修正しています。
    これに伴い、Drive.java に、「import java.io.File;」の一行を追加しています。

Drive.java
//Drive.java
package map;

import java.io.File; //変更箇所
import swing.FullScreenKeyPimgFrame;

public class Drive {

  public static FullScreenKeyPimgFrame frame;
  public static Sample24_02 mapper;

  public static void main(String[] args) {

      //変更箇所
      String[] mapPaths = {
          "floors/floor01.txt",
          "floors/floor02.txt"
      };
      int[][][] map3D = new int[mapPaths.length][][];

      for(int i=0; i<mapPaths.length; i++){
          map3D[i]
          = ReadFile_04.toIntArray2D(new File(mapPaths[i]), "UTF-8", ",", 16);
      }

      mapper = new Sample24_02(map3D, 0, 1, 0);

      String[] msgs = {
            null,
            "ゴールはこの裏です。",
            "準備中。",//2
            "よくぞお越しくださいました。",//3
            "またのお越しをお待ちしております。",//4
            "非常階段",//5
            "大安吉日にございます。",//6
            "どうぞお気遣いなく。",//7
            "警備は万全にございます。",//8
            "眠ってはなりませぬ。",//9
            "階段",//a
            "EXIT",//b
            "おめでとうございます。",//c
            null,
            null,
            null
      };
      mapper.setMsgArray(msgs);

      frame = new FullScreenKeyPimgFrame("DangeonWalker");
      frame.iniEvent();
      frame.setVisible(true);
  }
}

萌えJava超入門
上手く動いたっスか?


萌えJava超入門
最後はムリに付き合わせた
みたいになってすまん。
萌えJava超入門
ごめんね。
許してあげて。


おわり




© 2019 awasekagami