¿Cómo puedo almacenar 10x10 mapa / campo de juego en el banco de trabajo de MySQL?

Verifycations:

Estoy creando el juego Sokoban en Java.

El campo del mapa / de juego es una matriz de 10x10. Un campo en la matriz puede contener uno de los 5 objetos diferentes

  1. campo de destino
  2. Cofre
  3. Jugador
  4. pared
  5. El campo vacío (esto es sólo un campo en blanco donde un jugador puede caminar por encima)

Ahora quiero almacenar ese mapa en la base de datos MySQL no estoy tan seguro de cómo abordar esto. No sé lo que la tabla se vería así. Más tarde, yo debería ser capaz de sacar el mapa de modo que un jugador puede jugar al instante o modificar el campo.

Pensé en usar una cadena de 100 caracteres y cada objeto tiene un char específica así que sé el significado y el lugar de la misma.

Jason:

Sí así que un enfoque sería tener una tabla que tiene una clave única sobre la base de la columna / fila. A continuación, puede almacenar la clave (s) con relación a la columna / fila que enlazan con el campo de destino, el pecho, el jugador, el muro, campo vacío.

Editar: Para responder a su pregunta en esta respuesta, puede crear una clase que tiene la ubicación y x e y que represente un punto en la cuadrícula. A continuación, sobrescribir equals / hashCode para que sea único. A continuación, se puede utilizar un mapa para almacenar la ubicación y el GameObject relativa en ese lugar!

    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);
        }
    }

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=349640&siteId=1
Recomendado
Clasificación