WDC 3.0 Let's build the classic game "Simon"

Thanks a million to everyone that participated in the re-booted wdc last weekend, it’s great to have these events back in the Community

This weekend we’ll be building the classic game Simon

To make sure you have the resources you need though, please fill in the following poll:

  • I’ve built this app already
  • I think I can build this by myself
  • I’d like a written guide
  • I’d like a video guide
  • I’d like a starter template
0 voters

cc @Community_Testers @Power_Thunkers

Samples

Thanks to the amazing community members who have shared examples already:

  1. Codeswept
  2. Matt
  3. Jared
  4. Ioannis
  5. Domhnall
  6. Manyone

Tutorials

I’ve also created a couple of simple tutorials that you can use to get started

Best of luck to everyone on the challenge!

3 Likes

A while back, before I discovered Thunkable, I created a template for another user who hired me to create a Simon-like game. He had the game design ideas but I coded the basic system for him and then he expanded on it. It was called Light the Way:

https://forums.gamesalad.com/discussion/98808/light-the-way-10th-anniversary-edition

Simon is a good jumping off point for figuring out how to sequence code, how to respond to inputs, and how to check for win/lose events. Can you win at Simon, though? Anyway, I think most users here aren’t using Thunkable to create games but I’m curious to see what variations people come up with.

2 Likes
1 Like

Good question! I’m mainly interested to see how folks approach the “play/record” functionality, but going forward we might need something with a definitive “game over” condition

—-

@jared looks fun! :smiley:

1 Like

Simon can only become a game of competition with winners/losers after 2 or more matches have been played.

Even then, it’s about what you consider to be ‘playing a competitive game’. You vs You. You vs Others.

you have kids. you muust know anything and everything can become a competition. :rofl:

the game over condition will be “dang, i hit the wrong color/sequence”, right?

def need a high score bored tho.

1 Like

also…

V1 of simon says on thunkable

you probably need to refresh between each game.

for stature

2 Likes

Dude, this is brilliant!

2 Likes

Haha! So true!

2 Likes

Here’s my submission for this WDC! Had made a basic version of this earlier, but it was pretty buggy. Fixed it up for this WDC, gave it some semblance of UI, and gave it added functionality. Here’s my SIMON: 290 blocks and 2 screens’ worth of wayyy too much struggle.

Features:
Quit Game/ Play again and Reset features
Sound on/off
Sequence length display
Encouragements
Flash animation clone upon clicking a button
Beeps corresponding to each color
Memory Quality checks (only for fun, i.e Goldfish or Excellent)

What I hope to add:
Extra colors for difficulty levels
Compete with other players using Firebase and/or Airtable
Leaderboard
Settings feature with previous games, high score, and customization features (choice of block colours, choice of sounds, choice of default difficulty level/ number of blocks)

Link:
Thunkable

Please ignore all the other random screens cluttered throughout this app’s code: this app is more or less the guinea pig for all my failures and experiments! The other screens will not be visible during gameplay and will not affect it whatsoever.

So glad to be back doing a WDC- it’s been quite a while. Do let me know if you have any suggestions for features I could add or if there are any bugs that you spot.

Thank you @domhnallohanlon for all the incredible prompts.

Happy Thunking!

2 Likes

Nice one @codeswept - “an iPhone would be jealous of your memory” relly made me laugh. Also very impressed that you managed to get this completed before the challenge has officially started! :joy:


UPDATE:

since everyone else is getting stuck in already I’ve decided to make a start on mine too!

billy

This is probably v .75 of my submission. I’m getting a bit stuck at how to handle determining if the clicks are correct for any sequence > 1.

Project Link

2 Likes

Whoa! That looks really complex. I would tend to use text strings to hold the values of the pattern and the user inputs. So when a random color is chosen, join that value (e.g. “G” for green) to the pattern variable. When the user clicks a color, join that value to the guess variable. Then compare the two strings to see if they are equal. To make it more like the actual Simon, you can compare the substrings up to the current guess # so that if say, the pattern is GBBGY and the player inputs GBBR, the substring from 1 to 4 of “GBBGY” (“GBBG”) is not equal to the substring of “GBBR”.

I graduated from the Rube Goldberg School of Coding :joy:

3 Likes

This is exactly what I did- i regret not using functions for this as they would’ve been quicker and more efficient but these blocks get the job done well.


Try this- it works for all sequences. The sequence that the computer generates is held in a list and for each click the user makes, the button color and click no. (eg, 7th click while trying to complete the sequence) is cross-checked against the computer-generated list for the same number.

2 Likes

Is it only Thursday? I was so sure it was the weekend🤦🏽‍♂️ Or maybe that was just a really big part of me hoping

whoosh! wow, everything here is over my head!
i’m going to really study the programs of @codeswept and @jared, for sure! thanks for sharing!

2 Likes

Yes! That was the part I could not get. Thank you for this!

@jared - I just had this “great idea” to switch from lists to objects, but I may have been subliminally influneced by you…also not sure if I want to increase my block count either :joy:

Screenshot 2023-09-14 at 21.57.28

Tomorrow, sounds effects (and probably objects!) but for now:

1 Like

ok. i spruced it up. the UI isnt the sexiest BUT there’s a live scoreboard for the top 100 scores powered by Xano

play over and over. challenge your friends!

Project Link

3 Likes

Funny you should say that… we’re just starting a Rube Goldberg / chain reaction project with our 6th graders. We’ll be integrating physical and digital materials.

I’m one to talk, though… my style of coding is often to throw everything at the wall and see what sticks and then clean up later.

2 Likes