image image

Le site de notre projet : Snake en Java pour téléphone mobile !

Structure du jeu

Diagramme UML

Voilà le diagramme UML complet de notre jeu.

image

Classe Snake_main

Cette classe est le pilier central du jeu. Elle s'appuie sur les propriétés de la classe MIDlet qui permet de faire interagir le programme java avec les fonctionnalités du portable.

image

Classe Generateur_Snake

La zone de jeu, le snake et les pommes sont générés et dessinés avec la méthode graphique "paint". La zone de jeu n'est dessinée qu'une seule fois pour éviter une surcharge inutile du processeur. Elle n'est donc pas actualisée. La classe Canvas permet la gestion des touches directionnelles. Un processus léger en tache de fond (thread) actualise la nouvelle position du snake, et ainsi, fait paraître un mouvement. Il gère également l'évolution du score et du niveau, et la vitesse de jeu.

image

Classe Snake

Le snake est une combinaison d'un ou plusieurs bouts de snake encapsulés dans un tableau vector. Le premier représente la tête, et le dernier la queue. Lorsque qu'il se déplace, la tête s'incrémente et la queue se décrémente. S'il mange une pomme, la tête s'incrémente et la queue, quant à elle, n'est pas modifiée. Le changement de direction est représenté par l'ajout d'un nouveau bout de snake d'une taille minime dans la direction désirée.

image

Classe Bout_de_Snake

Le bout de snake est un segment du snake. Il est caractérisé par des coordonnées X,Y , par une longueur L et une direction.

image

Classe Pomme_Snake

Les pommes sont la nourriture que mange le snake pour grandir. Elles sont placées dans la zone de jeu avec des coordonnées pseudo aléatoires grâce à une méthode de classe qui renvoie la différence de temps, en millisecondes, entre le temps courant et le 1er janvier 1970 à minuit.

image

Classe Accueil_Snake

La page d'accueil est un formulaire de type Form. Cela facilite l'insertion d'items (images, textfields, gauges ...) et la mise en page. Un thread et un compteur arbitraire permettent l'effet diaporama. Le point négatif de cette méthode est que la vitesse du défilement des images dépend de la puissance du processeur et de son activité. Il est possible de rentrer le nom du joueur grâce à un "editable text field" et un tour de passe-passe qui permet de le garder en mémoire le temps de la partie.

image

Classe Niveau_Snake

Le niveau est incrémenté ou décrémenté en réponse au signal d'une touche spécifiée. Un message d'erreur signale si le niveau est trop élevé ou, au contraire, nul ou négatif.

image

Classe Snake_Exception

Exception générée lorsque le snake se mord la queue ou est hors de la zone de jeu.

image
image image image

Réalisé pour les Projets Tutorés 2005/2006 GTR