awesome-repositories.com
Blog
MCP
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
chvin avatar

chvin/react-tetris

0
View on GitHub↗
8,717 stars·2,277 forks·JavaScript·3 vueschvin.github.io/react-tetris/?lan=en↗

React Tetris

This is a browser-based Tetris game built with React, using Redux and Immutable.js to manage all game state in a single immutable store. The application renders the game board, next-block preview, and score display as React components, with state transitions that are predictable and support time-travel debugging through the Redux DevTools Extension.

The game distinguishes itself through several integrated capabilities. It automatically adapts between keyboard and touch controls based on the user's input device, with configurable repeat rates for responsive gameplay. A persistence layer serialises the full Redux state tree to localStorage, restoring progress on page reload for session continuity. The game also pauses its loop when the browser tab loses focus and resumes on regaining visibility, and plays precise audio cues using the Web Audio API from a single MP3 file.

Additional capabilities include a next-block preview, score and level tracking, and the ability to toggle sound and pause at any time. The interface language can be switched by reading a URL query parameter, with translations defined in a bundled JSON file.

Features

  • Puzzle Games - Plays the classic block-stacking puzzle in a web browser with keyboard and touch controls, scoring, and increasing difficulty levels.
  • Game Implementations - A classic block-stacking puzzle game implemented as a single-page React application with keyboard and touch support.
  • Immutable Data Structures - Uses Immutable.js persistent data structures to prevent accidental mutation and simplify state comparison.
  • Game State Persistence - Saves and restores the full game state across browser sessions using localStorage to prevent progress loss.
  • LocalStorage Persistence - Serialises the full Redux state tree to localStorage, restoring progress on page reload for session continuity.
  • Game Keyboard Controls - Uses keyboard keys to rotate, move, drop, and reset blocks during gameplay.
  • Falling Block Puzzles - Controls a falling block puzzle game where players rotate and position shapes to complete horizontal lines.
  • Role-Play Gameplay Mechanics - Renders the classic block-stacking puzzle with keyboard and touch controls, scoring, and increasing speed levels.
  • Save Game Initialization - Saves the full game state to localStorage so progress is restored after a page refresh, crash, or phone call.
  • Score Tracking Systems - Tracks and displays current score, cleared lines, and level progression during gameplay.
  • Predictable State Containers - Manages all game state in a single immutable Redux store for predictable state transitions and time-travel debugging.
  • Game State Stores - Manages all game state in a single immutable Redux store with Immutable.js for predictable transitions.
  • Cross-Device Input Handlers - Switches between keyboard and touch controls automatically based on the user's input device for seamless gameplay.
  • Keyboard and Touch Adapters - Automatically switches between keyboard and touch controls based on device detection with configurable repeat rates.
  • Component-Based Rendering - Renders the game board, next-block preview, and score as React components driven by Redux state.
  • Device-Aware Input Switching - Automatically switches between keyboard and touch controls based on the user's input device.
  • Game Audio and Pause Toggles - Provides in-game buttons to mute audio and pause or resume the game at any time.
  • Browser Local Storage Saves - Saves and restores full game state to localStorage so progress persists across page reloads.
  • Web Game Audio Engines - Plays precise audio cues using the Web Audio API from a single MP3 file during gameplay.
  • Web Audio API Sound Engines - Plays precise, high-frequency audio cues using the Web Audio API for real-time game feedback.
  • Sound Effects Playback - Uses the Web Audio API to play precise, rapid audio cues from a single MP3 file during gameplay.
  • Redux Store Inspection - Exposes the entire game state to the Redux DevTools Extension for debugging and inspection.
  • Game Block Previews - Shows the upcoming block in a dedicated area so the player can plan placements ahead of time.
  • Automatic Device Detection - Switches between keyboard input on desktop and touch input on mobile automatically.

Historique des stars

Graphique de l'historique des stars pour chvin/react-tetrisGraphique de l'historique des stars pour chvin/react-tetris

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à React Tetris

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec React Tetris.
  • jynew/jynewAvatar de jynew

    jynew/jynew

    8,815Voir sur GitHub↗

    jynew is a 3D RPG game engine and development framework designed for building three-dimensional role playing games. It provides a comprehensive suite of tools for scene editing, game logic scripting, and the creation of 3D environments. The project features a specialized 3D asset management pipeline for importing and aligning models and animations, including specific tools for weapon attachment and rendering. It includes a dedicated combat system editor for defining battle encounters, skill effects, and combat grids with real-time synchronization. Additionally, it provides a game modding fram

    C#game-developmentjinyongunity
    Voir sur GitHub↗8,815
  • serversideup/amplitudejsAvatar de serversideup

    serversideup/amplitudejs

    4,313Voir sur GitHub↗

    AmplitudeJS is a JavaScript library and framework for building custom HTML5 audio players. It serves as a client-side playlist manager and media controller that bridges the gap between HTML elements and the Web Audio API, allowing developers to create branded media interfaces without relying on default browser styles. The project is distinguished by its use of CSS-class-based DOM binding and data-attribute state mapping, which links HTML elements directly to playback controls and track metadata. It includes a dedicated visualization system that uses the Web Audio API to render real-time SVG w

    JavaScriptcsshtmlhtml5
    Voir sur GitHub↗4,313
  • kotlin/kotlinx.collections.immutableAvatar de Kotlin

    Kotlin/kotlinx.collections.immutable

    1,409Voir sur GitHub↗

    Kotlinx.collections.immutable is a persistent data structure library for Kotlin that provides immutable lists, sets, and maps for state management. It enforces strict immutability by exposing read-only interfaces that block unauthorized modifications at compile time, while persistent structural sharing allows modified copies to efficiently reuse underlying memory storage with the original collection. Multiple insertions and removals can be batched through temporary mutable builder interfaces to instantly produce new persistent collections without intermediate allocations. Additionally, stand

    Kotlincollectionsimmutableimmutable-collections
    Voir sur GitHub↗1,409
  • teamsirenix/odin-serializerAvatar de TeamSirenix

    TeamSirenix/odin-serializer

    1,884Voir sur GitHub↗

    Odin Serializer is a framework designed for the Unity game engine to convert complex object graphs into persistent binary or JSON formats. It provides a system for saving and loading intricate class structures, including nested generics and polymorphic types, while maintaining the structural integrity of the data. The framework distinguishes itself through its support for ahead-of-time compilation, generating necessary type metadata during the build process to ensure functionality on platforms that restrict runtime reflection. It integrates directly with the Unity engine lifecycle, allowing f

    C#
    Voir sur GitHub↗1,884
Voir les 30 alternatives à React Tetris→

Questions fréquentes

Que fait chvin/react-tetris ?

This is a browser-based Tetris game built with React, using Redux and Immutable.js to manage all game state in a single immutable store. The application renders the game board, next-block preview, and score display as React components, with state transitions that are predictable and support time-travel debugging through the Redux DevTools Extension.

Quelles sont les fonctionnalités principales de chvin/react-tetris ?

Les fonctionnalités principales de chvin/react-tetris sont : Puzzle Games, Game Implementations, Immutable Data Structures, Game State Persistence, LocalStorage Persistence, Game Keyboard Controls, Falling Block Puzzles, Role-Play Gameplay Mechanics.

Quelles sont les alternatives open-source à chvin/react-tetris ?

Les alternatives open-source à chvin/react-tetris incluent : jynew/jynew — jynew is a 3D RPG game engine and development framework designed for building three-dimensional role playing games. It… serversideup/amplitudejs — AmplitudeJS is a JavaScript library and framework for building custom HTML5 audio players. It serves as a client-side… teamsirenix/odin-serializer — Odin Serializer is a framework designed for the Unity game engine to convert complex object graphs into persistent… kotlin/kotlinx.collections.immutable — Kotlinx.collections.immutable is a persistent data structure library for Kotlin that provides immutable lists, sets,… alibaba/butterfly — Butterfly is an interactive graph visualization library and SVG-based diagramming engine used to build node-based… cocos2d/cocos2d-objc — cocos2d-objc is an Objective-C 2D game engine designed for developing interactive games and applications. It serves as…