クラス FieldMap

java.lang.Object
net.trpfrog.medipro_game.fieldmap.FieldMap
直系の既知のサブクラス:
SpaceMap2D

public class FieldMap
extends java.lang.Object
宇宙の地図(平面)を管理するクラス。
作成者:
つまみ
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ 説明
    FieldMap​(int numberOfHorizontalChunks, int numberOfVerticalChunks)
    指定したサイズの平面マップを作成します。
    FieldMap​(int numberOfHorizontalChunks, int numberOfVerticalChunks, int chunkSquareLength)
    指定したサイズの平面マップを作成します。
  • メソッドの概要

    修飾子とタイプ メソッド 説明
    void addSymbol​(int x, int y, Symbol symbol)
    マップのx, y座標を指定してシンボルを追加します。
    boolean contains​(Symbol symbol)  
    boolean equals​(java.lang.Object o)  
    int getChunkSquareLength()
    チャンクの一辺の長さを取得します。
    int getHeight()
    マップの縦の長さを返します。
    int getNumberOfHorizontalChunks()
    横方向のチャンクの数を返します。
    int getNumberOfVerticalChunks()
    縦方向のチャンクの数を返します。
    int getWidth()
    マップの横の長さを返します。
    int hashCode()  
    boolean isWithin​(int x, int y)
    座標がマップの範囲内であるかを確認します。
    java.util.stream.Stream<Symbol> rangeSymbolStream​(java.awt.Rectangle range)
    指定した範囲に含まれるSymbolのStreamを返します。
    void removeSymbol​(int x, int y, Symbol symbol)
    マップのx, y座標とシンボルを指定してそのシンボルを削除します。

    クラスから継承されたメソッド java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • FieldMap

      public FieldMap​(int numberOfHorizontalChunks, int numberOfVerticalChunks, int chunkSquareLength)
      指定したサイズの平面マップを作成します。 マップは一辺 chunkSquareLength の正方形のチャンクで区切られ、 そのチャンクが縦横がいくつ並ぶかでサイズが決定されます。
      パラメータ:
      numberOfHorizontalChunks - 横方向のチャンクの数
      numberOfVerticalChunks - 縦方向のチャンクの数
      chunkSquareLength - 正方形のチャンクの一辺の長さ
    • FieldMap

      public FieldMap​(int numberOfHorizontalChunks, int numberOfVerticalChunks)
      指定したサイズの平面マップを作成します。 マップは一辺 chunkSquareLength (デフォルト: 16) の正方形のチャンクで区切られ、 そのチャンクが縦横がいくつ並ぶかでサイズが決定されます。
      パラメータ:
      numberOfHorizontalChunks - 横方向のチャンクの数
      numberOfVerticalChunks - 縦方向のチャンクの数
  • メソッドの詳細

    • addSymbol

      public void addSymbol​(int x, int y, Symbol symbol)
      マップのx, y座標を指定してシンボルを追加します。
      パラメータ:
      x - x座標
      y - y座標
      symbol - 追加するシンボル
    • removeSymbol

      public void removeSymbol​(int x, int y, Symbol symbol)
      マップのx, y座標とシンボルを指定してそのシンボルを削除します。
      パラメータ:
      x - x座標
      y - y座標
      symbol - 削除するシンボル
    • isWithin

      public boolean isWithin​(int x, int y)
      座標がマップの範囲内であるかを確認します。
      パラメータ:
      x - x座標
      y - y座標
      戻り値:
      座標がマップの範囲内であるかどうか
    • getChunkSquareLength

      public int getChunkSquareLength()
      チャンクの一辺の長さを取得します。
      戻り値:
      チャンクの一辺の長さ
    • getNumberOfHorizontalChunks

      public int getNumberOfHorizontalChunks()
      横方向のチャンクの数を返します。
      戻り値:
      横方向のチャンクの数
    • getNumberOfVerticalChunks

      public int getNumberOfVerticalChunks()
      縦方向のチャンクの数を返します。
      戻り値:
      縦方向のチャンクの数
    • getWidth

      public int getWidth()
      マップの横の長さを返します。
      戻り値:
      マップの横の長さ
    • getHeight

      public int getHeight()
      マップの縦の長さを返します。
      戻り値:
      マップの縦の長さ
    • rangeSymbolStream

      public java.util.stream.Stream<Symbol> rangeSymbolStream​(java.awt.Rectangle range)
      指定した範囲に含まれるSymbolのStreamを返します。
      もし未踏のチャンクが含まれていればそれを同時に生成します。
      計算量はフィールド全体の大きさを (H, W) として O(log(H) + log(W) + range.h * range.w) です。
      パラメータ:
      range - Symbolが含まれている範囲
      戻り値:
      範囲内に存在するSymbolのStream
    • contains

      public boolean contains​(Symbol symbol)
    • equals

      public boolean equals​(java.lang.Object o)
      オーバーライド:
      equals クラス内 java.lang.Object
    • hashCode

      public int hashCode()
      オーバーライド:
      hashCode クラス内 java.lang.Object