tetris klaar
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
'use strict';
|
||||
|
||||
/* Centrale configuratie voor het spel */
|
||||
const CONSTANTS = {
|
||||
COLS: 10, // breedte van het bord
|
||||
ROWS: 20, // hoogte van het bord
|
||||
CELL: 30, // pixelgrootte van een cel op het bord
|
||||
PREVIEW_CELL: 18, // pixelgrootte van een cel in de previews
|
||||
PREVIEW_COUNT: 3, // aantal zichtbare volgende blokken
|
||||
COLORS: {
|
||||
I: '#00e5f0',
|
||||
O: '#f7d000',
|
||||
T: '#b14ce0',
|
||||
S: '#35d23d',
|
||||
Z: '#f03c3c',
|
||||
J: '#3c6cf0',
|
||||
L: '#f09a20'
|
||||
},
|
||||
SCORE: {
|
||||
SINGLE: 100, // 1 rij
|
||||
DOUBLE: 300, // 2 rijen
|
||||
TRIPLE: 500, // 3 rijen
|
||||
TETRIS: 800, // 4 rijen
|
||||
SOFT_DROP: 1, // punt per cel bij zachte drop
|
||||
HARD_DROP: 2, // punten per cel bij harde drop
|
||||
LINES_PER_LEVEL: 10 // aantal rijen nodig voor een nieuw level
|
||||
},
|
||||
GRAVITY: [800, 720, 630, 550, 470, 380, 300, 220, 160, 100,
|
||||
80, 70, 60, 50, 40, 30, 20, 15, 10, 10], // ms per zetje per level
|
||||
HIGHSCORE_KEY: 'neo-tetris.highscores',
|
||||
PLAYER_NAME_KEY: 'neo-tetris.playername',
|
||||
MAX_HIGHSCORES: 10
|
||||
};
|
||||
|
||||
/* Punten per aantal tegelijk gewiste rijen (index = aantal rijen) */
|
||||
const SCORE_POINTS = [0, 100, 300, 500, 800];
|
||||
|
||||
/* Definitie van de 7 tetromino's als matrices (1 = gevuld blokje) */
|
||||
const SHAPES = {
|
||||
I: [
|
||||
[0, 0, 0, 0],
|
||||
[1, 1, 1, 1],
|
||||
[0, 0, 0, 0],
|
||||
[0, 0, 0, 0]
|
||||
],
|
||||
O: [
|
||||
[1, 1],
|
||||
[1, 1]
|
||||
],
|
||||
T: [
|
||||
[0, 1, 0],
|
||||
[1, 1, 1],
|
||||
[0, 0, 0]
|
||||
],
|
||||
S: [
|
||||
[0, 1, 1],
|
||||
[1, 1, 0],
|
||||
[0, 0, 0]
|
||||
],
|
||||
Z: [
|
||||
[1, 1, 0],
|
||||
[0, 1, 1],
|
||||
[0, 0, 0]
|
||||
],
|
||||
J: [
|
||||
[1, 0, 0],
|
||||
[1, 1, 1],
|
||||
[0, 0, 0]
|
||||
],
|
||||
L: [
|
||||
[0, 0, 1],
|
||||
[1, 1, 1],
|
||||
[0, 0, 0]
|
||||
]
|
||||
};
|
||||
|
||||
const PIECE_TYPES = Object.keys(SHAPES);
|
||||
|
||||
/* Eenvoudige wall-kicks die proberen een blokje langs obstakels te schuiven bij rotatie */
|
||||
const WALL_KICKS = [
|
||||
[ 0, 0],
|
||||
[-1, 0],
|
||||
[ 1, 0],
|
||||
[ 0, -1],
|
||||
[-2, 0],
|
||||
[ 2, 0]
|
||||
];
|
||||
Reference in New Issue
Block a user