どのように私は、MySQLのワークベンチで10×10のマップ/ゲームフィールドを保存することができますか?

Verifycations:

私はJavaでゲーム倉庫番を作成しています。

マップ/競技場は、10×10の配列です。5つの別のオブジェクトの1つを含むことができ、アレイ内の一つのフィールド

  1. ターゲットフィールド
  2. プレーヤー
  3. 空のフィールド(これはプレイヤーがオーバー歩くことができるだけで空白のフィールドです)

今私はそう確かにこれをアプローチする方法はないよMySQLデータベースにそのマップを保存したいです。私は、テーブルがどのように見えるか分かりません。プレイヤーは即座に再生したり、フィールドを変更することができますので、後で私に地図を引っ張ることができるはずです。

私は、100文字の文字列を使用する方法について考えて、私はそれの意味と場所を知っているように、各オブジェクトは、特定の文字を持っています。

ジェイソン:

うんそう一つのアプローチは、列/行に基づくユニークキーを持つテーブルを持っているであろう。次に、リンク対象フィールドに、胸、プレーヤ、壁、空のフィールドすなわちその列/行に対するキーを格納することができます。

編集:この回答にあなたの質問に答えるために、あなたはグリッドのスポットを表し、xとyを持っている場所のクラスを作成することができます。そして、それを一意にするために等号/のhashCodeをオーバーライドします。そして、あなたはその場所に立地し、相対的なゲームオブジェクトを格納するために地図を使用することができます!

    public class Location {

        private final int x;

        private final int y;

        private final int hashCode;

        public Location(int x, int y) {
            this.x = x;
            this.y = y;
            this.hashCode = Objects.hash(x, y);
        }

        @Override
        public int hashCode() {
            return hashCode;
        }

        @Override
        public boolean equals(Object other) {
            if (other == this) {
                return true;
            }
            if (other instanceof Location) {
                Location otherLocation = (Location) other;

                return otherLocation.x == x && otherLocation.y == y;
            }
            return false;
        }
    }

    interface GameObject {

    }

    class TargetField implements GameObject {

    }

    class MyGame {

        private final Map<Location, GameObject> map;

        MyGame(Map<Location, GameObject> map) {
            this.map = map;
        }

        public void set(Location location, GameObject object) {
            map.put(location, object);
        }
    }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=349637&siteId=1