The sinusoidal tetris
Let’s play Tetris, but with a twist. No geometrical figures will fall from the sky. Instead, you control a sinusoid, defined by: $f(x)=A*sin(\omega x + \varphi)$:
Free suggestions in the beginning. If you follow all of them, you win.
Turn-Based Mode (the sinusoid doesn’t drop automatically)
Controls
- To increase the angular frequency, $\omega$, press:
s; - To decrease the angular frequency, $\omega$, press:
x; - To increase the amplitude, $A$, press:
a; - To decrease the amplitude, $A$, press:
z; - To increase the phase: $\varphi$, press:
q; - To decrease the phase: $\varphi$, press:
w; - To drop the sinusoid, press
p;
To win the game, you need to reduce the signal as close to zero as possible. It’s hard but not impossible. There’s a current threshold of unit * 0.3. Surviving is not winning. The Path of the Alternating Phases is boredom.
You lose if the original signal spikes outside the game buffer (canvas).
A professional player turns off the suggestions, now enabled by default. If you are a savant, you can compute the Fourier Series Coefficients in your head. Cancel that noise!
To better understand what is happening, check out this first article of a series.
The game was developed using p5js.
The source code (here) is not something I am particularly proud of.
Some discussion from around the web:
This game is a joke I put together during a weekend. I’m sorry for the graphics.
Source Code & Contributions
Spot an error or have an improvement? Open a PR directly for this article .