arsenic-atg / tetris Goto Github PK
View Code? Open in Web Editor NEWTetris™ clone created in c++ and SDL
Home Page: https://tetrisplusplus.netlify.app
License: MIT License
Tetris™ clone created in c++ and SDL
Home Page: https://tetrisplusplus.netlify.app
License: MIT License
Create a readme file with all the required information about the app that one need to know
It will be a great enhancement for personal user experience and one will be able to see info like personal best score etc.
These are the typos detected in CONTRIBUTING.md by codespell
CONTRIBUTING.md:15: usefull ==> useful
CONTRIBUTING.md:24: seperate ==> separate
leaving this issue for a newcomer to introduce themselves to the repository.
As these changes are not going to take much time, it's not mandatory to be assigned before opening a PR.
Once speed increases above threshold, game stops processing inputs and blocks are almost hardfalling.
The tetromino can only be manipulated for a small instance when it is just displayed at the top of canvas.
Please fix it.
Hi,
What about changes key to rotate blocks?
Up arrow to rotate and space to hard drop?
The only place to get info about the controls is the source code or reading the README.md of this repo, which is not optimal for someone who is maybe playing game directly from the web link.
the title screen should contain the info about controls.
create pull request template containing the basic info a contributor must fill while filing a PR
This is a meta issue tracking dev of all the changes required to lay down to get this project meet open source community standards.
currently, in order to update the web build, project need to first be built locally and then changes are pushed to the repository which is then hosted by netlify.
This method is inconsistent and pollutes the commit history of the repository.
Reading the emscripten docs, I came across different ways to integrate different continues integration pipelines to build the project automatically when the master branch is updated.
Line 74: typo instructins
The code base uses GNU coding convention, most of which can easily be enforced using clang-format, the project should contain a .clang-format
containing the clang format's configuration for GNU coding style.
fortunately clang format supports GNU coding standards as one of it's presets so we can simply use clang format to generate that file for us using a command like this :
$ clang-format -style=gnu -dump-config > .clang-format
The project should be more friendly towards new contributors, making a contributing.md which documents everything a new contributor need to know in order to contribute to this project should be a good step towards that.
The game is designed to also compile to webasm (using emscripten), however it need to be hosted publicly for anyone to play anywhere via their browsers.
The game doesn't count score in any way.
though the including the modern scoring system should be ideal, I think implementing the basic scoring system first is a good start.
Here is how the original scoring system count score (source : https://tetris.wiki/Scoring )
Action | Points |
---|---|
Single-line perfect clear | 800 × level |
Double-line perfect clear | 1200 × level |
Triple-line perfect clear | 1800 × level |
Tetris perfect clear | 2000 × level |
Back-to-back Tetris perfect clear | 3200 × level |
currently there is no levelling system so value of level would always be one for the time being
The project need some basic issue templates for asking questions and getting bug reports.
The README.md needs instructions regarding building the project properly both natively and the web version using emscripten.
It's the shadow representation of piece if we would happen to perform a hard drop.
The template HTML shell document that the project use for web version of the game is a bit bland. Not only is it offcentered, it is also contain distracting white background.
Put the canvas in the centre of the screen, and make the background color a bit dark to make the experience a bit more immersive.
/build/index.html
the pause instruction doesn't work at all, and quite instruction terminates the game but doesn't close the window for us.
Add a thing such that no block repeats itself more than 2 times in a row
After #6 ,the game calculates score based on conventional tetris syle ( 100*level) per line clear
though the including the modern scoring system should be ideal, I think implementing the basic scoring system first is a good start.
To make the game more exciting, the game should reward score for even risky moves like hard-drop and T-spings
currently there is no levelling system so value of level would always be one for the time being
I thought it'd be great if a phone-compatible version for this game could be made in the future, also using the SDL2 library to keep things consistent.
I looked around a little, and found there are FINGERDOWN , FINGERUP and FINGERMOTION events in the SDL_events.h module of the SDL2 library. I was thinking for such a [phone-compatible] version, the left-up-down-right would all have to be replaced by a TOUCH event and bring the piece down with a FINGERMOTION event function.
This idea may be a bit on the complex side but it would broaden the functionality of the game, and perhaps turned into an app later on.
There is a typo on line 37 of README.md
Some blocks for e.g. a straight vertical block when on the right most lane if rotated clockwise, sticks to the sides like this
Such blocks should move away enough from sides to make space for their new orientation
I thought it would be a nice feature to add some chiptune background song for the game.
I believe the SDL library supports the addition of background music as well. The music should ideally be on the Tetris theme and can be easily created on the chiptune style with Bosca Ceoil.
Make a portal where we can see next two blocks
There is no levelling system present in the game and the game remains at the same level thought the gameplay, making it quite boring.
player's difficulty level should increase progressively once they clear a set number of lines in the game session.
The current idea of increasing the difficulty with higher level is to increase the falling speed of the tetrominos.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.