Qual seria a estrutura de dados adequada?

4 respostas
D

Olá pessoal,

Sou novo no fórum, novo em Java e relativamente novo em Programação em geral.

Bem, estou desenvolvendo um programinha que servirá como guia para jogadores de um jogo. Uma das funções seria acesso a várias informações sobre os personagens e principalmente sobre os tipos diferentes de inimigos do jogo; informações como: HP, força, ataques, magias, etc. O jogo é complexo e possui aproximadamente 500 inimigos diferentes, uns 400 ataques diferentes, sendo que cada tipo de inimigo possui uma lista de ataques (dentre estes 400) que podem aprender.

Eu gostaria de ouvir a opinião dos colegas mais experientes sobre a forma mais adequada de armazenar todas essas informações, que não são poucas. Estas informações são completamente estáticas, quero dizer, não serão modificadas pelo usuário. Inicialmente eu pensei em criar arquivos xml. Digamos, um arquivo xml com a lista dos 500 inimigos existentes no jogo e outro com a lista dos 400 ataques. Porém como associar cada inimigo com os ataques que ele pode aprender? Pensei também na alternativa de criar um arquivo xml com a lista dos inimigos e mais um arquivo xml para CADA inimigo com a lista de ataques que ele aprende. Mas assim haveria mta informação repetida (vários inimigos têm ataques em comum). Mais uma alternativa que pensei foi usar um banco de dados embutido, como SQLite. Ou quem sabe seria o caso de usar uma estrutura de dados simples como ENUMS?

O que vocês acham que seria mais adequado?

Perdoem-me se dei informação demais ou de menos. Qualquer info a mais é só perguntar.

Obrigado,
Danilo.

4 Respostas

FieroddPJ

Eu sugiro banco de dados, embora a principio não haja atualização desses dados por parte de usuários, vc possui diversos dados que relacionados.
Um banco de dados trabalha esse tipo de informação de maneira eficiente, não gosto de armazenamento via xml, acho que fica muito verboso e complexo e armazenar toda a informação em enums também acho inválido, pois todo o relacionamento entre elas ficará no código.

abs.

R

fala danilo, intererssante sua idéia. gosto de jogos, e ja fiz, memoria, poker, simulador mega sena. bingo.

www.raghyjose.net/pokercodigo.php

ou este site /memoria.php

no link programação tem mais jogos. acho que o poker da uma boa idéia do que penso.

armazenar tudo em variaveis que são fixas no caso, e faz toda a comparação sem precisar de banco nenhum. :slight_smile:

veja o poker quantas comparaçoes são feitas.
cada carta tem um número e cada jogada representa tambem um número ou combinação.
assim é fácil dizer o que vale mais ou menos. :shock:

os sorteios podem ser aleatorios, com facilidade, no Math.random,
e com o imageicon ja da de fazer grandes coisas, para exibir cartas, mas existe o java 2d. :roll:

é só baixar as imagens do jogo POKER ONE e conferir o código. escreva. :wink:

continuo buscando protocolo tcp ip, para usar estes jogos na internet. :? :?:

KaosBr

Boa tarde,

Assim como, FieroddPJ , usaria um banco de dados. Basicamente, pelos mesmos motivos, além do bom gerenciamento interno SGDB.

[]s

D

FieroddPJ, raghy, KaosBr,

Muito obrigado pelas respostas. Esta na verdade é minha segunda tentativa de fazer este programa. A primeira eu tava fazendo em C++/Win32 e usando SQLite, mas eu tive um problema no meu HD e perdi o código todo. Daih, como eu agora tou usando um Mac, resolvi fazer em Java, pra o programa poder rodar nos dois, Win e Mac.

Meu problema com banco de dados é que eu não tenho mta ideia de como projetar e planejar um. Mas vou pesquisar um pouco e este semestre vou ter a matéria Bancos de Dados na faculdade. Então acho que vou conseguir. Alguém conhece algum bom tutorial sobre essa parte de como projetar bem um banco de dados relacional? Eu já conheço bem SQL, então seria mais sobre o projeto mesmo.

Obrigado a todos,
Danilo.

Criado 1 de agosto de 2010
Ultima resposta 1 de ago. de 2010
Respostas 4
Participantes 4