Giter Club home page Giter Club logo

apcs2-final-project's Introduction

APCS2-Final-Project

Customizable Tetris (w/ Very Basic AI)

An attempted recreation of Tetris and a computer AI in Java. Visuals are rendered in Processing, while the ControlP5 library is used for several GUI components.

Features:

  • Works like Tetris. Store a block and place it down later.
  • Resize the grid by changing the number of rows or columns.
  • Level progresses as more lines are cleared, which increases the speed of tile drops.
  • Levels up as you clear 4 lines for each level; higher score for higher level.
  • Restarts automatically when you lose.
  • Keeps track of the highest score.
  • Has a player mode, but also a computer AI mode.
  • AI utilizies basic heuristics, gathering height, hole, 'bumpiness', and line clear data

How to play:

  1. Select difficulty, and speed levels in the sliders on the left side of the screen
  2. Change board size (# of rows, # of columns) to your likings. Larger boards may be easier to play on!
  3. Press START to allow for tiles to start falling
  4. Press shift to save tiles
  5. Press space to drop tiles quickly

Features in development:

  • Grid analyzer to find the relative placement of tiles as to determine those to provide the player
  • Randomly generated Tetris shapes for greater variety and difficulty
  • Computer to play the game

Unresolved bugs:

  • Game crashes if you try to move a tile too fast before it spawns.
  • Computer doesn't rotate tiles
  • Scoring for computer doesn't update
  • I-block may not trigger a game over
  • Changing rows and columns in mid game may cause a crash when spawning blocks

Compilation:

Requires Java 8

Linux:
Use ./run.sh

Windows (No compilation, only run):
Use run.bat
or
java -jar Demo.jar

Contributors:

Jeffrey Luo
Alan Zhou
APCS-2 Mr. Konstantinovich (Pd. 10)

apcs2-final-project's People

Contributors

alanzhou-stuy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.