Tetris MVC in Java

Tetris MVC in Java


Java

Tetris MVC in Java Ce projet a été réalisé dans le cadre du cours de Programmation orientée objet en 3e année FISA à Polytech Lyon, sous la supervision de M. Frederic Armetta. L’objectif était de recréer le jeu classique Tetris en utilisant l’architecture Model-View-Controller (MVC). Notre jeu Tetris est composé de trois parties principales : le modèle, la vue et le contrôleur. Le modèle gère la logique du jeu, comme le déplacement des pièces, la détection des collisions et la mise à jour du score. La vue affiche le jeu à l’écran, tandis que le contrôleur gère les entrées utilisateur et met à jour le modèle en conséquence.

Fonctionnalités :

  • Le jeu possède une interface simple qui affiche la grille, la prochaine pièce, le meilleur score, le score actuel et le niveau.
  • Difficulté progressive : les pièces tombent de plus en plus vite à mesure que le niveau augmente.
  • Fonction pause permettant d’arrêter puis de reprendre la partie.
  • Fonction ghost piece qui montre où la pièce courante va atterrir.
  • Fonction hold piece qui permet de conserver une pièce pour plus tard.
  • Effets sonores pour les déplacements, les lignes complétées, les changements de niveau et le game over.

English version

Tetris MVC in Java This project was carried out as part of the Object-Oriented Programming course in the 3rd year of FISA at Polytech Lyon, under the supervision of Mr. Frederic Armetta. The objective of this project was to recreate the classic game Tetris using the Model-View-Controller (MVC) design pattern. Our tetris game is composed of three main parts: the model, the view, and the controller. The model is responsible for the game logic, such as moving the pieces, checking for collisions, and updating the score. The view is responsible for rendering the game on the screen, while the controller handles user input and updates the model accordingly.

Features:

  • The game has a simple GUI that displays the game board, the next piece, the best score, the current score, and the level.
  • progressively more difficult as the level increases, with the pieces falling faster and faster.
  • pause feature that allows the player to stop the game and resume it later.
  • ghost piece feature that shows where the current piece will land.
  • hold piece feature that allows the player to save a piece for later use.
  • sound effects for moving pieces, clearing lines, going up a level, and game over.
© 2026 Mathieu Ponton | Co-Founder & ingénieur logiciel @ Apogée Consult | Lyon, France