Ir ao conteúdo

Bolão


Ne0n

Posts recomendados

Postado

Olá pessoal beleza??, Eu estou aprendendo java e Ja que a copa está por vir me foi passado um exercício no qual eu terei que  fazer um Bolão da Copa. Nesse bolão será necessário Cadastrar o usuário, registrar aposta, mostrar ranking dos apostadores e a tabela dos jogos com seu resultados. Além disso todas as informações terão que ser guardadas ou seja da próxima vez que acessarem os dados devem ainda está la.

 

O problema é que eu não tenho uma base por onde começar. Até agora a unica coisa que pensei foi fazer uma Classe chamada Sistema no qual nessa classe será realizado todos os processos relacionados ao Bolão e uma classe chamada usuário que seria usada para registrar os usuários dentro do Sistema.

 

Além disso gostaria de sugestões para interface gráfica, já que esse exercício será rodado posteriormente com uma interface amigável. Até o momento as únicas que passou pela minha cabeça foram a do Netbeans e o Swing do Eclipse.

 

Bom por enquanto é só isso,  estou aberto a sugestões.....

Postado

Rapaiz!!!  :eek:  Você está aprendendo Java e tem que fazer um sistema de bolão???? Que nível de "aprendendo" é este, é um projeto de alguns meses onde você irá aprender todos os conceitos necessários para este desenvolvimento? 

 

 

Bem...

 

Além disso todas as informações terão que ser guardadas ou seja da próxima vez que acessarem os dados devem ainda está la

Que tipo de "guardadas"? Em memória, enquanto o sistema estiver funcionando ou em um banco para ser recuperado a qualquer momento?

Se for com banco recomendo já botar o hibernate na jogada.

 

Além disso gostaria de sugestões para interface gráfica, já que esse exercício será rodado posteriormente com uma interface amigável. Até o momento as únicas que passou pela minha cabeça foram a do Netbeans e o Swing do Eclipse.

Pequenas correções: Netbeans e Eclipse são IDEs de desenvolvimento, ferramentas que você utiliza para programar. Swing é uma API que não tem nada a ver com o Eclipse.

Você tem que definir a tecnologia de interface já, pois posteriormente irá te gerar um provável redesenvolvimento de grande parte dos seus códigos, pois desenvolvimento modular leva tempo e experiência. Uma boa aposta para aprendizado é uma interface WEB, de preferência com facilitadores como JSF, spring, CDI, ...

 

O problema é que eu não tenho uma base por onde começar. Até agora a unica coisa que pensei foi fazer uma Classe chamada Sistema no qual nessa classe será realizado todos os processos relacionados ao Bolão e uma classe chamada usuário que seria usada para registrar os usuários dentro do Sistema

Você tem que começar por aí mesmo, a partir do que você sabe e evoluindo aos poucos, pois a alternativa seria a análise do sistema (levantamento de requisitos, regras de negócio, diagrama de classes, ...).

Um chute de classes envolvidas, sem normalização, seria: Usuário, Time, Jogo, Aposta, e a sua classe Sistema (ou Bolão), sendo esta última a única que não será persistida. Cada usuário terá suas apostas que serão vinculadas aos seus respectivos jogos e cada jogo terá um resultado e dois times (relacionamentos e dependências).

Postado

olá @Cweiler Primeiramente, muito obrigado pelo Retorno...
 

Rapaiz!!!  :eek:  Você está aprendendo Java e tem que fazer um sistema de bolão???? Que nível de "aprendendo" é este, é um projeto de alguns meses onde você irá aprender todos os conceitos necessários para este desenvolvimento?



rsrsrs Pois é cara aqui o negocio é puxado mesmo, o pessoal quer que o aluno seja perfeito em programação mas ta difícil hehehe. Esse projeto é pra ser entregue em 2 semanas!!! por isso meu desespero =D. Mas lembrando que não estou começando do zero pois os assuntos de OO,herança,Polimorfismo,listas,IO etc etc ja foram dados. Com exceção apenas de interface Grafica e banco de dados.
 
 

Bem...
 
Que tipo de "guardadas"? Em memória, enquanto o sistema estiver funcionando ou em um banco para ser recuperado a qualquer momento?
Se for com banco recomendo já botar o hibernate na jogada.


Terá que ser armazenado em um banco/arquivo para que possa posteriormente ser recuperado.... Inicialmente eu pensei em banco de dados, porém não sei mexer muito com isso ainda. Então pensei em algo mais simples como arquivos, armazenando os dados em Bloco de notas por exemplo para que depois possam ser acessados.
 

Pequenas correções: Netbeans e Eclipse são IDEs de desenvolvimento, ferramentas que você utiliza para programar. Swing é uma API que não tem nada a ver com o Eclipse.
Você tem que definir a tecnologia de interface já, pois posteriormente irá te gerar um provável redesenvolvimento de grande parte dos seus códigos, pois desenvolvimento modular leva tempo e experiência. Uma boa aposta para aprendizado é uma interface WEB, de preferência com facilitadores como JSF, spring, CDI, ...


Opa obrigado pela correção.... Então, eu pensei nisso e acho que vou utilizar os Plugins que o eclipse disponibiliza para criação de interface, como não será exigido nada de extraordinário, acredito que ficaria bacana mesmo que fique simples a interface. No momento o que será mais cobrado será a funcionalidade.
 

Você tem que começar por aí mesmo, a partir do que você sabe e evoluindo aos poucos, pois a alternativa seria a análise do sistema (levantamento de requisitos, regras de negócio, diagrama de classes, ...).
Um chute de classes envolvidas, sem normalização, seria: Usuário, Time, Jogo, Aposta, e a sua classe Sistema (ou Bolão), sendo esta última a única que não será persistida. Cada usuário terá suas apostas que serão vinculadas aos seus respectivos jogos e cada jogo terá um resultado e dois times (relacionamentos e dependências).


Bom esqueci de mencionar que esse Bolão terá que te rum login, para que quando tal apostador logue lhe seja disponibilizado uma interface para registrar Apostas...

No momento como relação a funcionalidade o que eu pensei em fazer foi isso aqui:
 
 

public class Usuario {		private String login;	private String senha;	private String nome;		public Usuario(String nome, String login, String senha) {		this.nome = nome;		this.login = login;		this.senha = senha;	}	public String getSenha() {		return senha;	}	public void setSenha(String senha) {		this.senha = senha;	}	public String getLogin() {		return login;	}	public String getNome() {		return nome;	}	}


 

import java.util.ArrayList;import java.util.List;public class Sistema {	List<Usuario> usuarios;	Usuario usuario;	public Sistema() {		usuarios = new ArrayList<>();	}	public void cadastraUsuario(String nome, String login, String senha) throws Exception { // Cadastra usuario caso ele ainda não exista. Caso exista lança um Exceção.		if (hasLogin(login)) {			throw new Exception("Usuario ja existe");		}		usuarios.add(new Usuario(nome, login, senha));	}	private boolean hasLogin(String login) { // Verifica se o usuario ja existe.		for (Usuario usuario : usuarios) {			if (usuario.getLogin().equalsIgnoreCase(login)) {				return true;			}		}		return false;	}		public boolean logar(String login, String senha) { //Será utilizado para permitir que o usuario entre em sua conta, caso o Login e senha esteja correto.				for (Usuario usuario : usuarios) {			if(usuario.getLogin().equalsIgnoreCase(login) && usuario.getSenha().equalsIgnoreCase(senha)){				this.usuario = usuario; // Esse será o apontandor, que no caso Será utilizado para que as modificações(trocar senha,apostas,nome etc etc) sejam feitas no usuario logado. 				return true;			}		}		return false;			}		public void modificaSenha(String login,String novaSenha) { // Metodos de modificação de senhas, nome, apostas. Ainda será implementado.		usuario.setSenha(novaSenha);			}				}



Minha dúvida agora é com as Apostas... Como elas serão vinculadas ao Apostador, então penso eu que obrigatoriamente os jogos da Copa terão que está dentro da Classe Usuario. Para que cada aposta seja armazenada individualmente e apontada para cada Objeto(usuarios).

Daí vem a dúvida, pois se não me engando são 32 Jogos só na Primeira fase da Copa se eu for fazer "Listas" dentro da classe ficaria enorme e me daria um trabalho danado ter que setar os valores das apostas e depois recupera-los manipulando apenas Listas...

Você teria alguma sugestão diferente para as apostas??

Postado

Minha dúvida agora é com as Apostas... Como elas serão vinculadas ao Apostador, então penso eu que obrigatoriamente os jogos da Copa terão que está dentro da Classe Usuario. Para que cada aposta seja armazenada individualmente e apontada para cada Objeto(usuarios)

Isto é o que chamamos de relacionamento. As suas apostas devem apontar para o usuário e para o jogo (considerando que o resultado esteja definido dentro de Jogo). Crie uma classe aposta, e realize um apontamento para um usuário e para um jogo:

Usuario 1-------* Aposta *-------1 Jogo

(Diagrama de relacionamento: 1 aposta possui 1 usuário e 1 jogo, 1 usuário possui várias apostas, 1 jogo possui várias apostas)

Você pode fazer o relacionamento indicando um ID (por exemplo, em usuário o ID é login) ou pode fazer o relacionamento diretamente com o objeto.

class Aposta {   private [Usuario usuario|String usuarioID];   private [Jogo jogo|String jogoID];   ...}
Postado

@Cweiler Então cara eu já havia pensado exatamente dessa forma que você falou, inclusive eu fiz a relação Usuário-Aposta-Jogo.

 

Porém me surgiu um outro problema.... Esse problema é na questão de armazenamento, pois estou salvando os Objetos usando a classe como Serializable. Dessa forma eu não precisaria salvar os usuários em blocos de nota(convenhamos ficaria feio o código e é chato fazer =D).

 

Porém, eu não consigo enxergar uma forma de salvar apenas essa aposta que está vinculada a determinado jogo, junto com o Usuário na Hora do armazenamento.... To perdido pra caramba hehehe.

 

Eu estou com outro problema que é na questão da tabela.... Como eu faria para colocar os resultados de cada jogo de forma automática na tabela??. Além disso eu também estou com bastante duvida na questão de calcular os pontos para cada Usuario, pois eu teria que pegar os valores de cada jogo e implementar na pontuação de cada Usuário e da forma que eu estou pensando seria muito trabalhoso que seria pegar strings dos Placares e converter pra Inteiros.

 

Além disso os resultados dos jogos teriam que criar uma outro frame(tabela) de forma automática, com os vencedores de cada time. tipo Rodada 1, Rodada 2, Rodada 3 etc etc.

 

Me desculpe, mas infelizmente eu não tenho outro código feito agora pra você ter uma noção de como esta andando as coisas. Pois estou cheio de provas pra fazer e não deu tempo de andar com esse projeto ainda.

 

Mas agradeço desde ja pela ajuda.

Postado

Porém, eu não consigo enxergar uma forma de salvar apenas essa aposta que está vinculada a determinado jogo, junto com o Usuário na Hora do armazenamento....

Procure armazenar as instâncias de cada classe em um arquivo, e mantenha uma rotina de editar-salvar, assim que você modificar qualquer coisa, já grave os dados, lembrando que você deve modificar uma linha já existente no arquivo quando a instância já existe. Infelizmente para trabalhar com arquivos texto você terá muito mais trabalho do que trabalhando com um SGBD, mesmo que simples como o JavaDB, mas se você não conhece SQL, isto significa um aprendizado a mais que vai tomar o seu tempo.

 

Eu estou com outro problema que é na questão da tabela.... Como eu faria para colocar os resultados de cada jogo de forma automática na tabela??

Dependendo da API que você vai utilizar existem alguns facilitadores, como data models, connectors, providers. Veja este tutorial do Swing: http://docs.oracle.com/javase/tutorial/uiswing/components/table.html

 

Além disso eu também estou com bastante duvida na questão de calcular os pontos para cada Usuario, pois eu teria que pegar os valores de cada jogo e implementar na pontuação de cada Usuário e da forma que eu estou pensando seria muito trabalhoso que seria pegar strings dos Placares e converter pra Inteiros

Bem, esta parte não possui muitas possibilidades, recomendo que a pontuação seja calculada sob demanda, sem persistência deste valor. Ou seja, a classe Usuario terá um método getPontuacaoTotal e outro getPontuacaoJogo, a implementação destes métodos deverá realizar o cálculo e retornar a pontuação a cada chamada, sendo que a pontuação total deve realizar chamadas sequenciais a pontuação de cada jogo.

 

Além disso os resultados dos jogos teriam que criar uma outro frame(tabela) de forma automática, com os vencedores de cada time. tipo Rodada 1, Rodada 2, Rodada 3 etc etc

Não entendi direito, talvez você esteja se referindo a caixas de diálogo.

  • 2 semanas depois...
Postado

Bom... Eu consegui terminar o projeto e deu tudo certo. Tanto a parte funcional quanto o armazenamento. Só a interface que não ficou la muito amigável =D, mas ta de Boa.

 

Agradeço mais uma vez a sua ajuda.....

 

Abraço

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!