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.
Comments