Jump to content

Recommended Posts

Posted

O verdadeiro problema é fazer o main, porque não sei o que tenho de lá colocar. E o frontend, a interactividade, acho que vou ter alguns problemas a fazê-lo..

Ainda sou novato nestas matérias..

Posted (edited)

onde queres colocar o main? Já desenvolveste o frontend?

A mim parece-me que vais precisar de mais algumas classes na tua 'Resolução' para conseguires desenvolver todo o projeto.

Em que pontos específicos precisas de ajuda?

Edited by charlie_v
Posted

tenta resolver de outra forma.

- primeiro cria todo o sistema de gestão de dados, isto é, classes que guardam e manipulam os elementos do projecto (jogadores, equipas, sistema de persistência, etc).

- segundo, cria uma aplicação em consola que irá testar dos os pontos relevantes dessas classes. sem menus ou outro tipo de interacção. é tudo hard-coded onde somente irá criar/alterar/remove dados ou associações entre objecto e apresentar listagem para determinar se está tudo correcto.

- terceiro, vê alguns video no youtube sobre utilização do SWING ou JavaFX (acho que vem substituir tudo o que existe actualizamente) para teres uma noção do que é e como se faz, faz pequenos testes de criação de janelas e outros elementos visuais que achas que irás necessitar mas sem usar as classes que criaste anteriormente. este código é para praticar e "deitar para o lixo".

- quarto, desenha no papel as janelas que necessitas

- quinto e último, cria as janelas que desenhaste juntando o código criado inicialmente.

IRC : sim, é algo que ainda existe >> #p@p
Posted

Que classes acham mais que preciso?

Na criação do main ( não sei o que tenho de lá colocar ) e nas classes, podem surgir algumas dúvidas que vou tentar tirar à medida que for fazendo..

Quanto a resolver de outra forma, não percebi bem como fazer isso (sou mesmo leigo nesta matéria :\ )

-O sistema de gestão de dados de que falas não são as classes que criei?

-Para criar uma aplicação em consola para testar como faço? :\ (Estive a pesquisar, e a única coisa que consegui além do código básico que tenho tentado até agora, foi fazer uma calculadora..)

-Aconselhas algum tutorial de JavaFX? E devo ir por aí?

Posted (edited)

Há várias maneiras de abordar o problema.

Vais precisar de classes para gerir os vários grupos e os respectivos jogos, classes onde possas guardar e manipular os elementos de que necessitas, por exemplo, lista de jogos, lista de seleções, lista de grupos, lista de jogadores, etc.

Estas permitem-te aceder/manipular/guardar/remover objetos que vais criando ou precisarás de criar quando quiseres testar o funcionamento da tua aplicação como referiu o ' HappyHippyHippo' e, para quando a colocares a funcionar totalmente.

Quanto ao JAVAFX existem imensos tutoriais no Youtube como:

https://www.youtube.com/embed/jUEOWVjnIR8?feature=oembed

Para testares a tua aplicação na consola tens de idealizar uma situação ou seja, por exemplo o funcionamento de um jogo.

A título de exemplo, podes no teu main() criar correctamente 2 equipas e em seguida um jogo que envolva essas 2 equipas. Em seguida fazes vários testes aos métodos que definiste para ambas as classes : Seleção e Jogo. Desta forma consegues testar se os métodos estão bem escritos e, ao mesmo tempo, se o resultado retornado é o que necessitas/esperavas.

É um exemplo simplista porque a tua aplicação vai precisar de um pouco mais de complexidade contudo, com pequenos testes consegues ir corrigindo e melhorando o teu código.

Edited by charlie_v
Posted

Não posso por exemplo criar uma classe com o nome Listas e nela criar vários Arrays (para lista de jogos, lista seleções, lista jogadores... etc)?

Era possível manipular esses Arrays certo?

Já vi alguns tutoriais de Swing e AWT, mas não estou a ver como posso relacionar o código (das classes) com as Janelas :\

Posted (edited)

Não posso por exemplo criar uma classe com o nome Listas e nela criar vários Arrays (para lista de jogos, lista seleções, lista jogadores... etc)?

Era possível manipular esses Arrays certo?

Já vi alguns tutoriais de Swing e AWT, mas não estou a ver como posso relacionar o código (das classes) com as Janelas :\

sim podes criar somente uma classe Listas e nela construir todos os Set's, Map's e ArrayList's que quiseres (: sim é possível manipulá-los.

Vais ter de definir métodos para aceder e modificar cada uma das listas obviamente, é até possível que consigas utilizar um mesmo método para mais do que uma das listas, mas deves evitar isso.

Cada classe tem os seus Campos e Métodos que definem e permitem manipular os Objetos dessa Classe.

Não deves misturar Seleções com Jogadores ou com Jogos na mesma classe.

Vou ver se te consigo dar um exemplo concreto (ainda que esta não seja a forma recomendável de fazer isto):


import java.util.List;
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;

public class Listas {

  public static ArrayList<Jogadores> listaJogadores = new ArrayList<>();
  public static Set<Selecao> listaSelecoes = new HashSet<>(tamanhoPretendido);

  //Exemplos de métodos

  public static void addObjetoJogador(Jogadores jogador) {
  listaJogadores.add(jogador);
  }

  public static void addObjetosSelecao(HashSet selecoes) {
 listaSelecoes.addAll(selecoes);
  }

  public static Selecao procuraSelecao(String nomeSelecao) {
  //objeto do tipo Selecao
  Selecao resultado = null;  
  //ciclo foreach														  
  for(Selecao s : listaSelecoes) {													
	  if (s.getNomeSelecao().equals(nomeSelecao)) {																																									
		 resultado = s;																		
	  }
  }
  return resultado;
}

  public static void listarTodosJogadores() {
  for(Jogadores j : listaJogadores) {
	   System.out.println(j.toString());	//Método toString() deve estar escrito na classe Jogadores
   }
  }


}

Edited by charlie_v
Posted

Não sei como implementar os HashSets, vou pesquisar e em breve trago as minhas dúvidas.

Obrigado desde já 🙂

São semelhantes ao ArrayList na medida em que implementam os mesmos métodos ( add(), addAll(), remove(), iterator(), get(), equals(), etc) mas o Set não preserva a ordem pela qual os elementos lhe são adicionados (salvo no SortedSed) mas acima de tudo, o Set não permite elementos duplicados. Além disso, o ArrayList não precisa de ter um tamanho pré-definido quando é criado mas o tamanho do HashSet deve ser definido à partida.

Posted

Então qual a vantagem de aplicar um HashSet em vez de um ArrayList? Posso obter melhores resultados, ou mais facilmente?

O trabalho até agora ficou assim:

http://www.speedyshare.com/ZcPqX/FIFA-WC-14.rar

Como posso testar para ver se está tudo bem? (Já criei 8 Seleções e dois Grupos no main)

A vantagem é que se forem introduzidos 2 elementos iguais eles não ficam duplicados, ou seja se tentasses introduzir 2 jogos ou 2 jogadores com os mesmo atributos o 2º introduzido substituiria o 1º.

Uma vez que já criaste um grupo e lhe atribuiste seleções cria um método que te gere os jogos do grupo, métodos que organizem as equipas segundo o critério de pontos e diferença de golos dentro do grupo e em seguida fazes o update desses jogos (podes ser tu próprio a atribuir resultados e golos como quiseres uma vez que é um teste).

No final, verificas as estatísticas das equipas (se os resultados dos jogos estão corretos, se os pontos das equipas e as respetivas vitórias/empates/derrotas também) e verificas se os métodos que tratam os jogadores (golos, amarelos, presenças, etc) estão corretos e se realmente fazem o update às estatísticas de cada jogador.

Posted

Uma vez que já criaste um grupo e lhe atribuiste seleções cria um método que te gere os jogos do grupo, métodos que organizem as equipas segundo o critério de pontos e diferença de golos dentro do grupo e em seguida fazes o update desses jogos (podes ser tu próprio a atribuir resultados e golos como quiseres uma vez que é um teste).

Não sei como gerar um método que faça essas coisas, eu pareço um burro a olhar para um palácio x)

Posted

O projecto já evoluiu um bocado mais e na consola, ao testar já aparece a seguinte informação:

run:

----------------| |----------------

| Dados do Jogo 1 |

----------------| |----------------

Resultado: 2-1

Data: 10-06-2014

Hora: 18:50

Estádio: Maracaná

Equipas: Brasil vs Croácia

Equipa de Arbitragem: Chin, Zau, XINZAU

Autores dos Golos: Neimar, Hulk, Rakitic

_______________________________________________

----------------|----------------|----------------

| | Dados do Grupo A | |

----------------|----------------|----------------

Selecções: Pontos:

BRA - Brasil 6

HRV - Croácia 3

MEX - México 4

CMR - Camarões 0

_______________________________________________

-----------------------------------------------

Nome: Ronaldo

Número da camisola: 10

Altura: 1.78

Peso: 78.0

Internacionalizações: 2

Golos: 13

Amarelos: 0

Vermelhos: 1

_______________________________________________

-----------------------------------------------

Nome: Messi

Número da camisola: 10

Altura: 1.76

Peso: 68.0

Internacionalizações: 1

Golos: 15

Amarelos: 2

Vermelhos: 5

_______________________________________________

Ao todo, a seleção integra 5 membro(s).

Ao todo, a seleção integra 5 membro(s).

BUILD SUCCESSFUL (total time: 0 seconds)

Na última parte, quando conta o número de membros por seleção, está a dar o mesmo número para todas as seleções. (o número de membros (jogadores, staff) que adiciono a cada seleção no main. Ele soma tudo)

Alguma ideia? :\

Posted

O projecto já evoluiu um bocado mais e na consola, ao testar já aparece a seguinte informação:

run:

----------------| |----------------

| Dados do Jogo 1 |

----------------| |----------------

Resultado: 2-1

Data: 10-06-2014

Hora: 18:50

Estádio: Maracaná

Equipas: Brasil vs Croácia

Equipa de Arbitragem: Chin, Zau, XINZAU

Autores dos Golos: Neimar, Hulk, Rakitic

_______________________________________________

----------------|----------------|----------------

| | Dados do Grupo A | |

----------------|----------------|----------------

Selecções: Pontos:

BRA - Brasil 6

HRV - Croácia 3

MEX - México 4

CMR - Camarões 0

_______________________________________________

-----------------------------------------------

Nome: Ronaldo

Número da camisola: 10

Altura: 1.78

Peso: 78.0

Internacionalizações: 2

Golos: 13

Amarelos: 0

Vermelhos: 1

_______________________________________________

-----------------------------------------------

Nome: Messi

Número da camisola: 10

Altura: 1.76

Peso: 68.0

Internacionalizações: 1

Golos: 15

Amarelos: 2

Vermelhos: 5

_______________________________________________

Ao todo, a seleção integra 5 membro(s).

Ao todo, a seleção integra 5 membro(s).

BUILD SUCCESSFUL (total time: 0 seconds)

Na última parte, quando conta o número de membros por seleção, está a dar o mesmo número para todas as seleções. (o número de membros (jogadores, staff) que adiciono a cada seleção no main. Ele soma tudo)

Alguma ideia? :\

boas ! tens cntg o ficheiro??

tenta fazer um array, posso te tentar ajudar, mas tenta enviar o ficheiro pra ver como esta isso !

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.