Memory Master - "Simon"-style memory game in Thunkable X

This is great. Is it only me or are the blocks not visible? The app copies onto my Thunkable fine and I can play the game on my phone, but I can’t see any of the blocks used when I click on the blocks tab. I’m not sure if this was done intentionally or not, but I’m just trying to see what you did with the “AI”.

Thanks!

1 Like

The blocks don’t appear for me, either. My guess is that the project isn’t 100% compatible with the current version of Thunkable.

@jared?

2 Likes

Thanks for checking. I realize it’s an old posting but I figured I’d give it a shot.

1 Like

I think there is an issue with old projects, I had the same experience with a Quiz project by @domhnallohanlon .

I’m going to try and give it a shot (recreating it just based on his design and how it works, I think my students would love to work on something like this). So far I can get the computer to assign a random value of 1 to 4 to each button and then light up that button, but only once or a specified # of times, not incrementally. I’m assuming he used a for loop with a list to do that? I have to figure that out as well as how the app will recognize that I’ve tapped the same sequence the computer ran.

Perhaps some of the memory demos here might be helpful:

Yes I’ve looked through those, the problem is that many of the app links are very old so I have to rely on screenshots that were posted, which don’t always show the entire picture. I’ll take another look though since it seems like the memory type apps are very close to what the simon app does.

Here’s a demo to get you started:

https://x.thunkable.com/copy/7d43dd225d31557e23feb3bdf878dadb

(The first screen is named with your username.)

It only displays the randomly-generated sequence. It doesn’t yet allow the user to select a color sequence or check the sequence for accurary.

Thanks I’ll check it out! I always like seeing how others do what I’m doing (or trying). Interesting how you set yours up to always run a sequence of 4 as opposed to 1, then 2, then 3, then 4, then 5, etc…

Here’s what I did (screen 1 and game test copy screen) yesterday just to see if I could get the thing to sequence. It’s set up with a test pattern that was used just to test how I was going to light up the buttons and then play the sound. It’s not set up to run once, then twice, then three times, etc…I hadn’t gotten that far. It’s set up to recognize when I’ve clicked a the first button that lit up, but not multiple. Since I have a limited account and ran out of projects to add I had to try mine on the original and just add a screen.

https://x.thunkable.com/copy/d382b688b1e792ea83f24263a278d839

It would be easy enough to adjust this. I’m already using a variable for # of turns and looping from 1 to that value. So just change # of turns by 1 each time a guess is made.

1 Like

That makes sense. I was wondering why that variable was created at first since the # of turns will never be fixed, but it makes sense now that you put it that way. It’s been a long couple of weeks with testing and new quarters here at school so I’m fried. lol

Because I didn’t build a fully-working demo, I chose to automate the sequence with delays instead of just showing 1 color, then 2, then 3, etc. which would require more coding. So I needed a set number of turns. You won’t.

1 Like

Right. Well it certainly jostled my block I had going on in my head where I couldn’t just think through that simple process. Now I’ll work on getting the app to test what the player taps against what the computer ran.

1 Like

Update:

I’ve been working on it over the course of the week and I’ve progressed but unfortunately, it still isn’t right. Here are a few observations not being able to see the original apps code but assuming how it works…

  • I doubt he used a “when any button is clicked” event handler like many, if not all, of the Memory apps did, since the start button has a very specific purpose for starting the game with the computers first sequence, while the other 4 buttons add a specific integer to a list when pressed. Of course I could be wrong, but it’s just a thought.
  • Since the start button is only pressed one time, to start the game, there must be a procedure or something in there that keeps track of whose turn it is, since repeatedly hitting the start button to allow the next player to go would reset the lists as well as the previous sequence (at least in my setup). In the working app the start button is only hit one time. After that the computer goes, then the player, then the computer again, then the player again, etc…So something must be tracking those turns.

Ultimately, what I have been able to get working (screen 1) is both the computer and the player sequences working correctly in terms of lighting up the respective buttons with sound, as well as creating both lists so that the sequence is right (via separate button click event handlers). What I haven’t gotten working correctly is the checking of the two lists so that it can be determined if the player sequence matches the computers.

I’d be willing to adjust how the game works, by clicking the start button after every sequence, but for some reason I can’t get the two lists to check correctly. My code is admittedly a mess with multiple screens, each containing different versions of what I’ve done, but if anybody wants to see where I may be going wrong it would be great. If not, I understand.

https://x.thunkable.com/copy/4b63c008e289ad0b7d8b12df6c72dc1f

Any Component blocks can be tricky. It’s possible to avoid other buttons such as the Start button when using them but I think you’re wise to avoid them for now.

I was able to open your project link but when I click on mainScreen, I can see the Design tab but the Blocks tab is blank. This isn’t because of anything you did but if you could share another link, perhaps it will work.

Yes, I’ve used any component blocks before with success but I don’t see how it would work well. with this specific app. I created a tic tac toe game a few months ago and it (any button click) was perfect for that.

Strange you can’t see the blocks. That’s what was happening with the original app. The “mainscreen” screen won’t open for me either. I’ll send a new link and if it doesn’t work I can just post screens. Screen 1 should open blocks fine though.

https://x.thunkable.com/copy/82e8876d36955358b4c9b93972cb581a

Which screen do you want me to focus on?

The mainScreen still can’t be viewed with that link.

Yes, you need to set a variable to keep track of this. You can use numeric values or text such as “player” and “computer” for the turn variable. That allows you to check to see if it’s the player’s turn when a button is clicked. If it isn’t, then do nothing. I noticed you have wait blocks after each “computersTurn” function. I would move those up right above the computersTurn function call. Because as it is now (on the “GameCopy” screen), the computer turn happens very quickly and immediately after I click the last button. There needs to be a delay because I’m not able to see the pattern when that happens.

Loop through the lists using for 1 to length of list and check list item #j (where i is the loop variable) of the player list to see if it equals list #j of the players list. Set a variable (e.g. “all choices match”) to true before the loop begins. If the two list items are not equal, set the variable to false and break out of the loop. After the loop, check the variable value. If it’s true, then the player wins. If it’s false, then the player loses.

Screen 1.

Main Screen is the original app, whose blocks we could never see for reasons we never really sorted out. It was assumed to be a compatibility issue between old and new Thunkable. Screen 1 is what I thought was going on in Main Screen but couldn’t verify.

1 Like

My apologies, I should’ve removed the copied screen. I only created it as a way to keep track of older versions. Screen 1 is the one that “works” up to the point it does (without checking the two lists against each other). You shouldn’t have any issues seeing the computers sequence there. The copied screen is a mess because I started to try a couple things that I abandoned.