All Projects → Nakilon → Rbtris

Nakilon / Rbtris

Licence: mit
Tetris game powered by Ruby2D

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Rbtris

Zelduh
A tile based adventure game!
Stars: ✭ 22 (-54.17%)
Mutual labels:  retro, retrogaming
shellcore
Shellcore Command Remastered
Stars: ✭ 41 (-14.58%)
Mutual labels:  retro, retrogaming
AsciiBird
ASCII version of the addictive Flappy Bird game.
Stars: ✭ 34 (-29.17%)
Mutual labels:  retro, retrogaming
Virtualc64
VirtualC64 is a cycle-accurate C64 emulator for macOS
Stars: ✭ 229 (+377.08%)
Mutual labels:  retro, retrogaming
FF1Randomizer
A randomizer for Final Fantasy 1 on the NES.
Stars: ✭ 72 (+50%)
Mutual labels:  retro, retrogaming
Dojs
A DOS JavaScript Canvas with sound
Stars: ✭ 237 (+393.75%)
Mutual labels:  retro, retrogaming
Cdogs Sdl
Classic overhead run-and-gun game
Stars: ✭ 422 (+779.17%)
Mutual labels:  retro, retrogaming
portfolio os
3DO M1 Opera Portfolio Operating System
Stars: ✭ 27 (-43.75%)
Mutual labels:  retro, retrogaming
hoard-of-bitfonts
turns out I like bitmap fonts
Stars: ✭ 811 (+1589.58%)
Mutual labels:  retro, retrogaming
es-theme-Super-Retroboy
Super Retroboy Theme for the RetroFlag GPi Case and Small Screens 4:3 Aspect
Stars: ✭ 45 (-6.25%)
Mutual labels:  retro, retrogaming
Raemixx500
Open Hardware Remake of the Commodore Amiga 500+ Mainboard
Stars: ✭ 161 (+235.42%)
Mutual labels:  retro, retrogaming
Webmsx
WebMSX - Online MSX Emulator
Stars: ✭ 269 (+460.42%)
Mutual labels:  retro, retrogaming
Chocolate Doom
Chocolate Doom is a Doom source port that is minimalist and historically accurate.
Stars: ✭ 1,052 (+2091.67%)
Mutual labels:  retro, retrogaming
ShaderGlass
Overlay for running GPU shaders on top of Windows desktop
Stars: ✭ 417 (+768.75%)
Mutual labels:  retro, retrogaming
LittleSixteen
Commodore 16 schematics and PCB, redrawn in Kicad
Stars: ✭ 26 (-45.83%)
Mutual labels:  retro, retrogaming
anise-cheezball-rising
an exciting new adventure for the Game Boy Color
Stars: ✭ 72 (+50%)
Mutual labels:  retro, retrogaming
Teleball
Build your own Arduino based retro handheld game console
Stars: ✭ 21 (-56.25%)
Mutual labels:  retro, retrogaming
Quadplay
The quadplay✜ fantasy console
Stars: ✭ 563 (+1072.92%)
Mutual labels:  retro
Distributed
Stars: ✭ 913 (+1802.08%)
Mutual labels:  retro
Nscde
Modern and functional CDE desktop based on FVWM
Stars: ✭ 526 (+995.83%)
Mutual labels:  retro

Tetris game in less than 200 lines of code

Controls

ARROWS
R to restart
P or Space to pause

Installation

bundle install
bundle exec ruby main.rb

For Linux you might need to read the Ruby2d installation notes.

TODO

  • [ ] projetion of the piece on the bottom
  • [x] SRS canonical rotation
  • [ ] SRS wall kicks
  • [x] scoreboard stored at $HOME/.rbtris
  • [x] ability to fall down only partially
  • [x] ability to hold UP (just for fun)
  • [x] Mutex stdlib class
  • [ ] autoresize to screen?
  • [x] option to restart
  • [ ] cheats for testing purposes
  • [x] canonical increase of speed
  • [x] holding LEFT and RIGHT
  • [ ] canonical scoring
  • [ ] see next piece
  • [x] pause key
  • [ ] window size configuration?
  • [ ] canonical music
  • [ ] restore controller support?
  • [ ] color scheme configuration
  • [ ] boss key
  • [ ] compile and publish?

Notes

By default ruby2d looks for a font only in one system directory -- this is why ruby2d dependency here was forked and patched a bit to support sourcing from the working directory (and $HOME/Library/Fonts).

It can't be compiled to binary right now because of using a Mutex class that is not in MRuby.

It's hard to continue fitting it into 200 lines but I want to add more features -- maybe I'll make a "300-LOC" branch there is now 250-loc branch that has the "next piece" displayed.

Cool font is Press Start 2P from Google Fonts.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].