Snake

4 respostas
L

Olá pessoal, é a primeira vez que participo deste fórum. Tenho que desenvolver um jogo parecido com o Snake dos celulares, não é para celular, é apenas uma simulação em JFrame. Bem, o problema maior é na orientação a objetos. Estou pensando em criar apenas 3 classes para o problema: AnelCobra, Cobra e Principal. A classe AnelCobra é a classe pai da hierarquia entre ela e a classe Cobra, nela contém basicamente duas coordenadas x e y. A classe Cobra é na verdade um array de anéisCobra, de tal forma que quando eu instanciar inicialmente uma Cobra, eu já terei um array de anéis. Na classe Principal eu tenho um array bidimensional onde irei simular, através de caracteres, o movimento do bicho. Volto a frisar que busco ajuda no que se refere à estrutura de manipulação dos dados, a interface fica para depois.
Gostaria muito de contar com idéia de caras legais e inteligentes.[/b]

4 Respostas

pcalcado

Sua modelagem está bem interessante…

Eu faria:
Cobra: array de anéis
Anel: Corrdenadas X,Y
Area: plano onde a cobra anda, de dimensões limitadas

E uma classe JogoCobra que isntanciaria.

Se preocupe em limitar definir comportamento nos seus objetos. Por exemplo evite fazer muitas verificações na sua classe principal, um anel vai para o X e Y que você mandar, mas uma cobra deve saber que não pode sobrepôr seus anéis…

[]s

Heber

Talvez seja até uma viagem mas fica legal.

Porque você não faz com que AnelCobra seja uma interface onde terá os métodos setSize(), setPosition(Point), paint(Graphics) etc.
Dessa forma você pode implementá-la de qualquer forma, como por desenhar uma figura em cada anel. Você implementaria uma classe que no paint(Graphics) desenharia uma figura e este metodo pode ser invocado pelo prório container onde será desenhado, seria só dar o repaint() - claro que método paint(Graphics) do seu container terá que ser reescrito.

É só uma idéia.

Outra Classe muito importante é uma classe de Negócio(Regras), pois é ela que vai dizer o que fazer se houver alguma colisão nas extremidades da tela do jogo ou em algum outro obstáculo, quantas vidas ele ainda tem, quantos pontos foram marcados, mais futuramente ela pode controlar mais de uma Cobra se for um jogo multiplayer (Sockets, RMI, Local …). Já fiz dois jogos simples Ponto-A-Ponto e MoveBlocks e se não fosse essa classe de regras seria mais compĺicado, nela eu controlo eventos do jogo para facilitar até minha própria interface …

Minha página

pcalcado

“Heber”:

Outra Classe muito importante é uma classe de Negócio(Regras),

Uhm, Heber, meio ruim isso.

As regras de negócio em um sistema OO são espalhadas pelos comportamentos dos objetos deste, não são isoladas em um item apenas.

[]s

Heber

O que eu quis dizer com classe de negócio (Regras) é uma camada de Controle, em termos de MVC, com essa camada fica mais facil comunicar sua interface gráfica com os dados que são gerados durante o jogo.

Criado 4 de novembro de 2004
Ultima resposta 5 de nov. de 2004
Respostas 4
Participantes 3