Game idea: Simon with a twist

Received the blinks earlier this week.
Thinking of games to do.
(i think we need a game idea category)

Simon is a game with 4 colored tiles and a sequence of tiles is displayed, then the player has to press the tiles in the same order. The sequence becomes longer every time until the player makes a mistake.
I think the original game also has some audio feedback.

Here we can play with any number of tiles.Colors will be assigned at game start.
Tiles flash in sequence, then user has to repeat the sequence, but the tiles colors could move so you cannot use the position but have to press the right color.

1 Like

I think it can be implemented but will need to randomly create the sequence at the start of each game based on the number of blinks found, I think 100 levels will be enough for most people.

An idea for hardness level maybe?

Beginner = 3 blinks
Easy = 4 blinks
Medium = 6 blinks
Hard = 9 or more Blinks

Communication between blinks is certainly going to be the biggest part of the game


I would think you can play with even just one blink though it’s probably a little boring as you don’t have much choice…
Level could be chosen at the beginning by number of taps to start the game.
e.g. one tap: tiles do not move
double tap: they move.
And speed could increase the longer the sequence.
As you said the communication between the blinks could be challenging.
Fitting it all in memory may require cunningness. I usually program on computers and don’t even blink if i allocate an array of 1MB.

1 Like

ask and ye’ shall receive :wink:

I tried to do a Simon Game, just to learn a little bit.

Here is the code:

It works from 2 to 6 blinks, asigning colours automatically.
It has up to 50 levels and increase the speed.

SETUP: Put Blinks in a row, double tap firstone to asign colours,(rearrange if you want) and double tap last colour to start.

I don´t have Blinks yet! ¿Can someone check if it works?

Nice playing!

1 Like

Thanks Francisco!
I will give it a try.


Thanks for checking it!
Let me know whatever you find so I can try to improve it!

This is great! I was in the midst of ideating a Simon-esque game as well (as a standalone game but also to pair with my Battle Balloons game to broaden gameplay). I was trying to understand & combine aspects of the old disco-simon and Hot Cold Puzzle game already, so I dove into SimonV3 too.

I couldn’t get gameplay going. Maybe this is a misunderstanding on my part of how to initiate or maybe it’s a bug in gameLoop(). I expected that 2x clicking the first Blink in the row would change all Blinks to a solid color, then 2x clicking the last Blink in the row would start the game.

Here’s a consolidated run of my test process - hoping it helps until you get your hands on your own set:
1. I loaded SimonV3 onto a Blink (referred to as Simon1, in far left position in line of Blinks)
2. All Blinks show rainbow color wheel
3. 2x click Simon1
a. Nothing seems to happen
4. 2x click next Blink in line
a. It turns yellow
5. 2x click Simon1 again
a. No change
6. 2x click each Blink in row individually
a. Each changes to different colors following pattern yellow-blue-green-orange-purple
b. I cannot get the first Blink (Simon1) or last Blink in the row to change from rainbow wheel
7. 2x click Simon1 and final Blink in row in attempt to start
a. Nothing happens
8. Removed the 2 rainbow wheel Blinks from start and end of row leaving only solid colored Blinks
9. 2x clicking each of them attempting to start game
a. Doesn’t seem to do anything
10. Long pressing a solid colored Blink
a. Resets it back to rainbow wheel

I ran through a few iterations of resetting then Learning SimonV3 to find a pattern for what happens when 2x clicking Blinks in order in the row. Simon1 is at far left, then # of total Blinks in row is outlined below. It takes ~4 secs to change color after the 2x click.

Changing first Blink to Red color doesn’t work, so I think there’s a tweak needed in the installLoop() near:

if ( !isValueReceivedOnFaceExpired( f ) ) {
byte neighborGameState(getLastValueReceivedOnFace(f));
if (numNeighbors == 1 && buttonDoubleClicked()) {
gameState = R;

-Pattern Validation-
Simon1 - no change (stayed rainbow)
2 - yellow
3 - blue
4 - green
5 - orange
6 - purple
7 - no change
8 - yellow

Simon1 - no change
2 - yellow
3 - blue
4 - green
5 - orange
6 - purple
7 - no change

Simon1 - no change
2 - yellow
3 - blue
4 - green
5 - orange
6 - no change

Simon1 - no change
2 - yellow
3 - blue
4 - green
5 - none

Simon1 - no change
2 - yellow
3 - blue
4 - no change

Simon1 - no change
2 - yellow
3 - no change

Something about the communication gets messed up for a Blink once it Learns SimonV3. Once they learned SimonV3, I could no longer 3sec press to enter Teaching mode. Also, when clustered the Blinks could not learn other stable games (Fracture for example). These Blinks that Learned Simon could only learn a stable working game from a Blink that is set to a game besides SimonV3 one at a time. I uncoupled the cluster so each was a lone Blink and re-Taught Fracture & other games to them individually. Then I re-Taught Simon from the Simon1.
I also found out removing the battery to reset the Blink to it’s storage game works too. Then the Blink can re-Learn SimonV3.

When building SimonV3 to a Blink I get an error: “Low memory available, stability problems may occur.”
Maybe this has to do with slightly “bricking” Blinks so they cannot enter Teach mode or learn in a cluster. The final Blink in the row (furthest right that stays in rainbow wheel each time) cannot learn even 1:1 so popping the battery is the only way I found to reset and re-Learn.

Oh my!

It was completely my fault, didn’t added the graphic loop to the ecuation, so every time you “double click” you´re doing a master blink! Red never show cause i restricted the game to play only with 2 to 6 blinks.

Let me give it a look and fix the big mistake, anyway Jonathan told me that it can not work correctly cause i´m using delays, ayway i´m going to fix the teaching mode so you can try if the game really start!

OK, done.

Can you try now the new v4?

Load game, all blinks load in color wheel state.
Put blinks in a row, from 2 to 6 blinks only.
Double click first blink. (all 6 blinks should show now a different color)
Rearrange if you want to play in a cluster or leave it in a row.
Double click THE LAST COLOUR showed (with 6 blinks is always Magenta) (That blink will be the master blink, the brain of the game, and the rest of the blinks will start in slave mode)
The game starts inmediately and should show the first level, one of the six blinks will glow more than others for one second to show you the pattern
Introduce your pattern and inmediately the game will start round 2, showing two colours this time (the colour on the previous level, and a new colour)
Every level a new colour and it will show it faster.
Max levels 50.

EDIT: The RESET option is set individualy on every blink, is not comunicated to all cluster, so you have to reset them individually long clicking all of them.
Also the capacity to learn another game could be messed up with delays, not completely sure, so try to reset all to colorwheel before teaching them a new game.
Tell me if it doesn´t work and i will change delays for timers :upside_down_face:

2x clicking first Blink in row does now solid color the Blinks correctly including initial Red and final Magenta (when using all 6).
2x clicking last Blink in row still does not start game.
Long pressing to reset back to rainbow wheel only works when Blink is alone (in other words isValueReceivedOnFaceExpired=true for all faces)

Thanks for trying it!

I think the game doesnt start because the delays, i will recode it using timers.

At least the initial setup is done :grinning:

Give me one day and i will have a new version (and i hope it can be a working version!)


Now i´ve removed all the delays and i´m using timer loops combined with wiles to work as delays.

Also i´ve reduced the maximum of levels to 10 (at least until we get the game to work)
With 50 levels, the blink generate a 50 character string used as a variable to compare if your imputs are corrects, and using a lot of memory for that, with only 10 levels, that string is shorter so now there is no red warning when compiling.

I haven´t modified anything in the begining, so same instructions (Is a lie, i also modified the reset function so now it should work “while playing”, but not in the setting mode)

Edit: @InspiredReality Did you tried my other game(The Hunt)? What do you think about it? Some feedback apreciated :upside_down_face: