Git Product home page Git Product logo

tetris's Introduction

Missão 1 de Linguagens de Programação

Este trabalho é uma implementação do jogo Tetris, utilizando HTML, CSS e JavaScript.

Como jogar

Instruções

Para acessar o jogo basta entrar neste link, obtido usando o GithubPages para fazer o deploy. Foram feitos testes nos navegadores Firefox, Safari, Chrome e Brave, portanto recomenda-se o uso destes para jogá-lo. Os comandos estão presentes no botão options dentro do jogo, sendo eles:

  • Para descer a peça, pressionar a tecla de seta para baixo;
  • Para mover a peça para a esquerda, pressionar a tecla de seta para esquerda;
  • Para mover a peça para a direita, pressionar a tecla de seta para direita;
  • Para rotacionar a peça, pressionar a tecla de seta para cima (a rotação é feita em sentido horário);
  • Para queda brusca, pressionar a tecla shift.

No botão options ainda é possível silenciar o jogo.

A pontuação

A pontuação consiste em completar linhas com peças. Completando mais de uma linha em uma única jogada a pontuação recebe bônus, este variando de acordo com a quantidade de linhas. Sendo:

  • 1 linha 10 pontos;
  • 2 linhas 30 pontos;
  • 3 linhas 60 pontos;
  • 4 linhas 100 pontos.

Os níveis do jogo variam de acordo com a pontuação do jogador, aumentando a velocidade com que a peça abaixa quanto maior a pontuação. Isso é feito seguindo os seguintes valores:

  • Level 0 = pontuação menor que 100;
  • Level 1 = pontuação menor que 300;
  • Level 2 = pontuação menor que 500;
  • Level 3 = pontuação menor que 800;
  • Level 4 = pontuação menor que 1100;
  • Level 5 = pontuação menor que 1400;
  • Level 6 = pontuação menor que 1700;
  • Level 7 = pontuação menor que 2000;
  • Level 8 = pontuação maior ou igual a 2000.

Conteúdo do repositório

O repositório foi divido em 5 pastas. Aqui serão explicados os arquivos feitos em JavaScript, presentes na pasta src, e as classes principais usadas para o trabalho.

Block

Arquivo contendo a classe Block e seus métodos. Cada peça é formada por uma quantidade x de blocos, dependendo do formato. Para impresão do bloco foi usada uma imagem, esta é carregada na classe BlockImages (no arquivo loadImgs).

Format

Arquivo contendo as 7 classes Format, e seus métodos, sendo cada uma delas referente a um formato diferente de peça.

Piece

Arquivo contendo a classe Piece e seus métodos. Essa classe representa cada peça usada no jogo, e cada uma contém um formato.

Game

Arquivo contendo a classe Game e seus métodos. Nesta classe são guardadas as principais informações do jogo, como pontuação, linhas e level. Além disso, é nela que fica guardada a matriz de representação de jogo, sendo essa uma matriz 18x10. Também é nessa classe que é guardado o método de sort do jogo, para isso foi usado o algoritmo de sort chamado The 7-bag.

Run

É nesse arquivo que o jogo acontece. São criadas as classes usadas, os eventos importantes e é montado todo o jogo. Também é nesse arquivo em que se localiza o loop principal do jogo.

Refs

Autores: Sophie Dilhon, Fernando Azevedo & Igor Varejão

tetris's People

Contributors

ahalic avatar f-azevedo avatar ivarejao avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

f-azevedo

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.