JTetris 1.0

Projet réalisé par Kevin Viet et Guillaume Basilico



Introduction

Ce projet consiste à faire un Tétris en Java, en utilisant la librairie graphique Swing. Pour modéliser la plateau du jeu, nous avons utiliser un tableau d'entiers à deux dimensions. Les pièces, quant à elles, sont également modélisées grâce à une matrice à deux dimensions.

Comment jouer ?

Le principe de ce jeu est archi-connu. Il suffit d'appuyer sur les touches directionnelles : droite, gauche pour faire translater la pièce courante, flèche haut pour la faire pivoter et bas pour la faire descendre plus vite.
De plus, en allant dans les menus, on peut mettre le jeu en pause et le reprendre (pas de raccourci clavier associé, peut-être dans une version ultérieure...). Il y a également des options dans le menu des options, mais nous vous invitons à aller voir de plus près pour plus de détails.

Configuration recommandée

- Il est recommandé d'avoir au moins la configuration minimum que recommande Sun, c'est à dire : un 486/DX et au moins 48MO de RAM. En fait, ce jeu est fluide à partir d'un P200.
- Enfin, une résolution d'au moins 800x600 est recommandée.

Outils utilisés

- Emacs sous Unix.
- UltraEdit sous Win32.
- La version de la jdk était la 1.2 sous Unix, et la 1.2.2 sous Win32.

Techniques utilisées

Nous avons massivement utilisés la technique des Observer/Observable pour la mise à jour de l'affichage. Nous avons également utilisés le double buffering pour l'affichage, la sérialisation pour la sauvegarde des highscores. Enfin, nous avons également utilisés des threads pour le moteur du jeu.

Améliorations envisagées

- Faire un éditeur de pièces (facilement envisageable puisqu'on utilise une méthode générique pour fair pivoter et translater la pièce)
- Faire un mode réseau avec au moins 2 joueurs (à voir avec Gilles dans le cours réseaux)
- Optimiser le moteur d'affichage (cf. remarque à la fin de la page)

Sources et Javadoc

Les sources
La Javadoc
Les sources et la Javadoc

Remarque

Nous nous étions lancés dans une procédure d'affichage plus rapide (le jeu tournait parfaitement sur un IPX), malheureusement au prix de quelques bugs d'affichage. Néanmoins, vous pouver télécharger la classe MonCanvas.java et écraser l'autre version. A vous de voir !