Giter VIP home page Giter VIP logo

tetwis's Introduction

Tetwis License

Tetwis

Tetwis is a badly disguised clone of Alexey Pajitnov's Tetris, and is designed and developed entirely in Java. This awesome article by Geoff Howland challenges you to start by making something simple, such as Tetris.

Instructions

Tetwis doesn't require anything beyond the standard libaries provided in the JDK, which you can always be redownload. It isn't hard to compile everything together from the terminal.

    javac *.java
    java Tetwis

Features

Tetwis attempts to adhere to the specifications defined in the official guidelines, but has ignored certain features, such as scoring complex manuevers or including additional game modes.

  • Playing with multiple players.
  • Maintaining a list of all highscores.
  • Resizing the tetratrix to any dimension.
  • Increasing the difficulty as the game continues.
  • Reconfiguring the gameplay.
    • Key bindings
    • Color schemes
    • Random seed
    • Easy spins
  • Softdropping and harddroping a tetromino.
  • Wallkicking a tetromino after rotating.
  • Previewing the next tetromino.
  • Holding another tetromino.
  • Ghosting a tetromino.

Architecture

Tetwis is comprised of tetribits, tetrominos, and tetratrix.

Tetribits

The tetribit is the atomic unit. It is nothing more than a square that is assigned a positioned and color. Everything in the game is composed of tetribits, including both the tetratrix and tetrominos.

Tetrominos

A tetromino is an orthogonal assortment of four tetribits. There are only seven different shapes of tetrominos, which can each be labelled with a letter, including I, L, J, O, T, S and Z. A tetromino can be dropped down, rotated around, as well as shifted to the left and right.

Tetratrix

The tetratrix is a multi-dimensional array of tetribits. It is sometimes known as the "well" or "field." The tetratrix is responsible for handling the collision of tetrominos and tetribits. When a tetromino has dropped to the bottom of the tetratrix, the tetribits that are in the tetromino are embedded into the tetratrix. If a row of the tetratrix is completed, it is removed, and the score is increased.

To Do

  • Instantiate the tetrominos a bit lower in the tetratrix.
  • Initiate the game as either monoplayer or multiplayer.
  • Highlight the game when a player reaches a highscore.
  • Construct an system for generating the next tetromino.
  • Recognize players who have achieved a highscore.
  • Read the keybindings from an external reconfigurable file.
  • Prompt the players to provide their name for their highscore.
  • Render graphics for the held tetromino and next tetromino.
  • Comment your code more thoroughly.
  • Stop the players from performing consecutive holds of tetrominos.
  • Replace the tetromino.tetribits.length with getTetrominoHeight().
  • Begin with a titlescreen for navigating around the configurations of the game.
  • Play a sound when a tetromino is dropped or when the tetratrix is completed.
  • Remove any and all magic numbers in generating the swing compoents.
  • Confirm the effectiveness of the increasing difficulty across the game.
  • What is the best approach towards anonymous functions as keystrokes?
  • Should ghosts be capable of referencing the data of the tetromino?
  • Are the try catches necessary when calculating the collision?
  • Should the tetribits be maintained by index or point?

License

Tetwis is covered by the MIT License.

tetwis's People

Contributors

ehgoodenough avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Forkers

sakostomarov

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.