Discuss Scratch
- MartinBraendli2
- Scratcher
100+ posts
[ATC#4] Tic Tac Toe
Here is the Advanced Topics Challenge number 4:
Edit History:
- Changed the word describing Bob for “Jerk”, since the other one got censored.
- Added the “bug-free” line to the “features”.
- Spelling/ grammar.
Congratulations to CodeLegend for winning this challenge!
Intro
Alice is proud. She just finished her first Scratch project, a game of Tic Tac Toe. Impatiently she's constantly refreshing the project page to check whether someone already had taken a look at the product of her sweat and tears. And then there it is! A first comment:
What a jerk. He didn't even leave a like. But can you figure out, what Bob had in mind?
Rules:
- Winner is, who first submits a project, that perfectly mimics the project of Alice.
- For the project, you can use an unlimited amount of Boolean Blocks and Reporter Blocks, but you can only use a total of 2 of the other blocks (Hat, Stack, C, Cap and Custom Blocks). The number of blocks (not block types) counts, so if you use for example “show” twice, you already used up your budget on non-boolean-non-reporter blocks.
- You can't use any custom variables or lists (no Data Blocks).
- No hacked blocks.
What does “mimic perfectly” mean?
You don't have to create a pixel perfect copy of Alice' project (Bob already did that). Don't bother about visual details like fonts, exact size/position/shape and such. If your project COULD be turned into a pixel perfect clone without fundamental changes on the code, it's fine.
To be a valid solution, your project must have the following “features”:
- You have a “grid” with the marks ‘X’ and ‘O’.
- Red (X) always starts the game.
- A text tells the players, who's turn it is respectively what the final outcome of the game is.
- Every legal move is possible.
- No illegal move is possible (for example, you can't place your mark in an already filled square).
- Once the game ended (in a draw or a victory), the user can't change the stage any more (except by pressing the green flag).
- Green flag will restart the game.
- Besides the grid, ‘X’s and ‘O’s and the mentioned text, nothing can be visible to the user.
- Your project must be free of bugs.
This is a puzzle for coders, not lawyers. The goal is not to find legal loop holes, but to program with a limited selection of blocks.
Edit History:
- Changed the word describing Bob for “Jerk”, since the other one got censored.
- Added the “bug-free” line to the “features”.
- Spelling/ grammar.
Last edited by MartinBraendli2 (July 22, 2016 00:30:47)
- CodeLegend
- Scratcher
500+ posts
[ATC#4] Tic Tac Toe
first!
EDIT: Wow, I didn't think I'd actually be first! Now to read this…
EDIT: Wow, I didn't think I'd actually be first! Now to read this…
Last edited by CodeLegend (July 21, 2016 03:06:45)
- Firedrake969
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
First thoughts…
You have to use a hat to start the project, so there goes one block
@CL
I probably was first to actually see it but I took too long to formulate my one-sentence thought
You have to use a hat to start the project, so there goes one block
@CL
I probably was first to actually see it but I took too long to formulate my one-sentence thought
Last edited by Firedrake969 (July 21, 2016 03:07:52)
'17 rickoid
bf97b44a7fbd33db070f6ade2b7dc549
- MegaApuTurkUltra
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
Lemme guess
probably not going to attempt this
that's what I said last time though :P
when Stage clicked::hat events
switch backdrop to (some gigantic expression)
probably not going to attempt this
that's what I said last time though :P
Last edited by MegaApuTurkUltra (July 21, 2016 03:14:43)
$(".box-head")[0].textContent = "committing AT crimes since $whenever"
- PullJosh
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
I would imagine so. Lemme guesswhen stage clicked
switch backdrop to (some gigantic expression)
- Firedrake969
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
“Green flag will restart the game”, though.I would imagine so. Lemme guesswhen stage clicked
switch backdrop to (some gigantic expression)
You can't sense green flag via stage click.
'17 rickoid
bf97b44a7fbd33db070f6ade2b7dc549
- CodeLegend
- Scratcher
500+ posts
[ATC#4] Tic Tac Toe
Ok, so we have to reset when the flag is clicked, AND we have to run an action when the stage is clicked. so our hat block has to be
EDIT: And then we'll have to switch the background/costume… Can Scratch even handle that many image files?
when [timer v] > (0)Right?
EDIT: And then we'll have to switch the background/costume… Can Scratch even handle that many image files?
Last edited by CodeLegend (July 21, 2016 03:17:38)
- Firedrake969
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
But that only fires once, when the green flag is clicked Ok, so we have to reset when the flag is clicked, AND we have to run an action when the stage is clicked. so our hat block has to bewhen [timer v] > (0)Right?
'17 rickoid
bf97b44a7fbd33db070f6ade2b7dc549
- MegaApuTurkUltra
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
How about the when loudness > block?
Martin never said requiring noise to run the project wasn't allowed
Martin never said requiring noise to run the project wasn't allowed
$(".box-head")[0].textContent = "committing AT crimes since $whenever"
- Firedrake969
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
Again, green flag? How about the when loudness > block?
Martin never said requiring noise to run the project wasn't allowed
'17 rickoid
bf97b44a7fbd33db070f6ade2b7dc549
- PullJosh
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
Hmm… Well now I'm confused. I'll have to sleep on it.
- CodeLegend
- Scratcher
500+ posts
[ATC#4] Tic Tac Toe
How about the when loudness > block?
Martin never said requiring noise to run the project wasn't allowed
perfectly mimics the project of Alice
- MegaApuTurkUltra
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
aw I was hoping this would work http://image.prntscr.com/image/8222c3ef01444edb8dd3f2ae8cc42552.png
$(".box-head")[0].textContent = "committing AT crimes since $whenever"
- Firedrake969
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
http://image.prntscr.com/image/8222c3ef01444edb8dd3f2ae8cc42552.pngI already tried that aw I was hoping this would work
Here's something, though…
http://prntscr.com/bvio2e
Last edited by Firedrake969 (July 21, 2016 03:25:29)
'17 rickoid
bf97b44a7fbd33db070f6ade2b7dc549
- CodeLegend
- Scratcher
500+ posts
[ATC#4] Tic Tac Toe
:O
I figured it out! Still requires a bajillion costumes, but I know how to make a solution!
I figured it out! Still requires a bajillion costumes, but I know how to make a solution!
- gtoal
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
So by boolean block do you mean a *populated* boolean block, ie including the expressions that form the boolean comparisons?
I'm pretty sure this can be done trivially with a tree of costumes, but there's rather a lot of them (this is the magic number you referred to earlier, right) and I don't have the patience to draw them all (in fact I think it would take me more than the 4 hrs to create all those costumes!).
All the text messages etc can be precomputed for each costume. The only logic needed is for moving from one costume to the next depending on which of the 9 squares you click in, which can be done with joining the current costume name with 9 booleans determined by comparing the mouse x and y against two horizontal and vertical boundaries.
Did I guess right? (Took about 3 seconds to come up with this, longer to type it, and it'll be much longer to implement it!)
I'm pretty sure this can be done trivially with a tree of costumes, but there's rather a lot of them (this is the magic number you referred to earlier, right) and I don't have the patience to draw them all (in fact I think it would take me more than the 4 hrs to create all those costumes!).
All the text messages etc can be precomputed for each costume. The only logic needed is for moving from one costume to the next depending on which of the 9 squares you click in, which can be done with joining the current costume name with 9 booleans determined by comparing the mouse x and y against two horizontal and vertical boundaries.
Did I guess right? (Took about 3 seconds to come up with this, longer to type it, and it'll be much longer to implement it!)
- MegaApuTurkUltra
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
….how even?http://image.prntscr.com/image/8222c3ef01444edb8dd3f2ae8cc42552.pngI already tried that aw I was hoping this would work
Here's something, though…
http://prntscr.com/bvio2e
sometimes I really don't get Scratch
I think that's what we're all thinking here So by boolean block do you mean a *populated* boolean block, ie including the expressions that form the boolean comparisons?
I'm pretty sure this can be done trivially with a tree of costumes, but there's rather a lot of them (this is the magic number you referred to earlier, right) and I don't have the patience to draw them all (in fact I think it would take me more than the 4 hrs to create all those costumes!).
All the text messages etc can be precomputed for each costume. The only logic needed is for moving from one costume to the next depending on which of the 9 squares you click in, which can be done with joining the current costume name with 9 booleans determined by comparing the mouse x and y against two horizontal and vertical boundaries.
Did I guess right? (Took about 3 seconds to come up with this, longer to type it, and it'll be much longer to implement it!)
$(".box-head")[0].textContent = "committing AT crimes since $whenever"
- Firedrake969
- Scratcher
1000+ posts
[ATC#4] Tic Tac Toe
Lol, no clue at all.….how even?http://image.prntscr.com/image/8222c3ef01444edb8dd3f2ae8cc42552.pngI already tried that aw I was hoping this would work
Here's something, though…
http://prntscr.com/bvio2e
sometimes I really don't get Scratch
It worked though… I get the feeling that the pick random block value is regenerated every time it's used, and since the timer is in the random block, you get a fresh set of possible values every time.
'17 rickoid
bf97b44a7fbd33db070f6ade2b7dc549