Contact Chase

Project Details

  • School: University of Montana, Missoula
  • Course: Fundamentals of CS II (CS 132)
  • Term: Spring 2007
  • Type: Video Game
  • Teammates: None

Project Tags

The following tags have been assigned:


Media Gallery

A blank game board with gridlines turned on.Gameplay with a falling block.Gameplay with a falling block.
Game over popup.Game over.Game menu with options.

Tetris


This was a game I developed as my final project for the introductory computer science course, Fundamentals of Computer Science II (CS 132), at the University of Montana. While I technically had a partner for this project, this pairing was assigned by the course's overly generous instructor a mere 3 days before the final presentations - at which point my project had long since been finalized - so that this student could receive at least some credit for a final project after neglecting to work on any project of their own throughout the entire semester. Absolutely all design and development work on this project was done individually prior to this pairing and, therefore, this project is being classified as an individual project with no teammate attributions given.

Tetris is a popular tile-matching puzzle video game. For this project I chose to create a fully functional Tetris clone using Java. A video of the complete project with notes on some of the features built into the game can be seen on this page. The game is played using a keyboard to control Tetriminos game pieces shaped like tetrominoes, geometric shapes composed of four square blocks each. A random sequence of Tetriminos fall down the playing field. The objective of the game is to manipulate these Tetriminos, by moving each one sideways and rotating it by 90 degree units, with the aim of creating a horizontal line of blocks without gaps. When such a line is created, it disappears, and any block above the deleted line will fall. The game ends when the stack of Tetriminos reaches the top of the playing field and no new Tetriminos are able to enter.

Additional game features included in my implementation include built-in scorekeeping, configurable gridlines, game music options, the ability to manually adjust the game speed, and keyboard and menu options for pausing and unpausing the game.