# 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) |

^{(Source code)}

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