NoobCodec Posted December 28, 2015 at 02:08 AM Report Share #591083 Posted December 28, 2015 at 02:08 AM 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 More sharing options...
NoobCodec Posted December 28, 2015 at 02:41 AM Author Report Share #591084 Posted December 28, 2015 at 02:41 AM 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 More sharing options...
HappyHippyHippo Posted December 28, 2015 at 10:34 AM Report Share #591086 Posted December 28, 2015 at 10:34 AM antes disso tudo, que informação do mapa tens ? não existe p'rai algo sobre ruas e cruzamentos ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
NoobCodec Posted December 28, 2015 at 11:18 AM Author Report Share #591087 Posted December 28, 2015 at 11:18 AM 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 More sharing options...
HappyHippyHippo Posted December 28, 2015 at 11:42 AM Report Share #591088 Posted December 28, 2015 at 11:42 AM e não existe informação do tamanho máximo ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
NoobCodec Posted December 28, 2015 at 12:19 PM Author Report Share #591090 Posted December 28, 2015 at 12:19 PM e não existe informação do tamanho máximo ? Não, o objectivo principal é tratar a concorrência do problema, portanto acho que pode ser algo simples ! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 28, 2015 at 12:37 PM Report Share #591091 Posted December 28, 2015 at 12:37 PM 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 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
NoobCodec Posted December 28, 2015 at 12:46 PM Author Report Share #591092 Posted December 28, 2015 at 12:46 PM 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 More sharing options...
HappyHippyHippo Posted December 28, 2015 at 12:49 PM Report Share #591093 Posted December 28, 2015 at 12:49 PM esse código só cria um array de arrays, não cria cada nó/cruzamento/elemento dos arrays IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
NoobCodec Posted December 28, 2015 at 12:59 PM Author Report Share #591094 Posted December 28, 2015 at 12:59 PM esse código só cria um array de arrays, não cria cada nó/cruzamento/elemento dos arrays Pois, o meu problema é que não sei como criar isso ou de que forma criar. Pode dar me um exemplo ou recomendar um artigo qualquer sobre isso? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 28, 2015 at 01:55 PM Report Share #591098 Posted December 28, 2015 at 01:55 PM - para tamanho - para tamanho - inserir nó IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
NoobCodec Posted December 28, 2015 at 03:09 PM Author Report Share #591102 Posted December 28, 2015 at 03:09 PM - para tamanho - para tamanho - inserir nó ah ok, não estava a perceber. Ty Link to comment Share on other sites More sharing options...
NoobCodec Posted December 28, 2015 at 10:18 PM Author Report Share #591113 Posted December 28, 2015 at 10:18 PM 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 More sharing options...
NoobCodec Posted December 29, 2015 at 09:50 PM Author Report Share #591126 Posted December 29, 2015 at 09:50 PM - 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 More sharing options...
HappyHippyHippo Posted December 29, 2015 at 10:08 PM Report Share #591127 Posted December 29, 2015 at 10:08 PM não 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
NoobCodec Posted December 29, 2015 at 10:34 PM Author Report Share #591129 Posted December 29, 2015 at 10:34 PM não não as duas? Então onde inicializo e com o que inicializo? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 29, 2015 at 10:54 PM Report Share #591130 Posted December 29, 2015 at 10:54 PM ao declarares um array de objectos, estás automaticamente a instanciar os objectos 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
angelicous Posted December 30, 2015 at 06:14 AM Report Share #591131 Posted December 30, 2015 at 06:14 AM (edited) 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 December 30, 2015 at 06:16 AM by angelicous Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now