Jump to content

Ajuda na criação de um mapa


NoobCodec

Recommended Posts

Boa noite,

Estou a realizar um trabalho para uma cadeira da faculdade que consiste em criar uma aplicação Servidor-Cliente para gerir viagens de taxi.

A parte do Servidor -Cliente já esta feita e tenho uma Thread para cada cliente.

Agora tenho de criar uma Mapa na classe Sistema, em que este vai conter as coordenadas dos Condutores/Cientes que serão dados ao fazer o login e que serão usadas para calcular qual o Condutor mais próximo do Cliente que quer usar o serviço.

A minha duvida é como faço este mapa e que informação guardo nele?

Pensei em criar uma Classe Coordenadas em que só tenho uma posição X e uma posiçao Y e depois no sistema crio algo como Coordenadas[][], mas a estas coordenadas tenho de lhe associar o Utilizador.

Alguma sugestão?

Cumps,

NoobCodec

Link to comment
Share on other sites

Ou, será mais fácil que quando o utilizador faz login e indica a sua posição é logo inserido nessa posição no mapa?

é possível criar uma matrix do tipo de uma classe desta forma : Utilizador [][] mapa = new Utilizador[tamanho][tamanho] ?

Ou tem de ser algo como : ArrayList<ArrayList<Utilizador>> mapa = new ArrayList<ArrayList<Utilizador>>();

Link to comment
Share on other sites

antes disso tudo, que informação do mapa tens ?

não existe p'rai algo sobre ruas e cruzamentos ?

Boas,

" Clientes que se pretendam deslocar podem solicitar uma Viagem, indicando ponto de partida e o destino."

"Assuma uma cidade em forma de grelha, sendo o local definido por um par de inteiros(X,Y), e com todas as ruas de dois sentidos, usando a distancia Manhattan para fazer escolha de proximidade."

Link to comment
Share on other sites

o mais simples era ter o tamanho máximo da grelha ...

como não tens, vais ter mais trabalho, e terás de usar as estruturas dinâmicas como o ArrayList

Imaginando que definia um mapa 20x20 como implementava?

E quando diz "usar as estruturas dinâmicas", ficaria algo como o que falei em cima?Do género:

ArrayList<ArrayList<Utilizador>> mapa = new ArrayList<ArrayList<Utilizador>>(); ?

Link to comment
Share on other sites

Como faço um for each para verificar se a key já existe em algo deste tipo?

private HashMap<Coordenada,ArrayList<Utilizador>> mapa;

public boolean verificaseexiste(Coordenada key){

for(tipo???? utilizador:mapa){

// o que meto em tipo?

}

}

Como faço um for each para verificar se a key já existe em algo deste tipo?

private HashMap<Coordenada,ArrayList<Utilizador>> mapa;

public boolean verificaseexiste(Coordenada key){

for(tipo???? utilizador:mapa){

// o que meto em tipo?

}

}

ok, penso que com o

if(fruits.containsKey("apple")){
  //key exists
  System.out.println(fruits.get("apple"));
 }else{
  //key not exists
 }

já deve resolver.

Link to comment
Share on other sites

- para tamanho

- para tamanho

- inserir nó

Imaginando que tenho o seguinte:

public class Local {
   int coordX;
   int coordY;
   HashMap<String,Utilizador> presentes;

   //métodos e etc;
}

public class Mapa {
   Local [][] mapa;

   public Mapa(){
    mapa = new Local[4][4]; //array 4*4 (dá o tamanho que quiseres)
   }
}

E agora na Classe Sistema vou ter um :

private Mapa mapa=new Mapa();

é no construtor da Classe Sistema que tenho de inicializar a matriz? e em cada nó inicio com um new Local();?

Link to comment
Share on other sites

Eu acho que o que ele queria perguntar era outra coisa. Sim instancias o mapa no "sistema", que calculo que seja o teu servidor, de forma a que seja uma variavel partilhável por todos. É lá que vais guardar os teus condutores e passageiros certo?

Eu acho que o teu "local" é irrelevante...

Tu se tiveres um array dentro de um array, sabes bem as coordenadas... Não sei porque é que queres um "mapa" de locais... A posição deles na matriz já são o teu x e y

Edited by angelicous
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.