Subgraph Isomorphisms of Tiling Puzzles

Hoping I can try out your code and learn some Prolog here-
https://www.tutorialspoint.com/execute_prolog_online.php

P.S. It's your class, but you pushed one of my buttons with "Let's use Snap! to** - thanks for the feedback. This is a very preliminary doc. Steve J (my Leonardo boss/pal) might bring up the same point. My goal is to curate collaborative discoveries using SNAP! and math blocks.

The addition of Edgy to SNAP! which brings graph theory to life and allows quick visual representations/analysis of Sixl and Soma is to me a pretty much a miracle.

It is sometimes difficult to restrain my enthusiasm.

Wait, you don't mean two kinds of blocks, but actually two physical blocks? Of course not; the maximum block area is 3 and the 3x3 square's area is 9. So you need at least three blocks, and they have to be green and blue.

Nice Freudian slip! :~)


Yes. Tiling the 3x3 square(s) with two types of pieces or less. I came close but it doesn't strictly tile all six squares. It does four and then sort of jump up to another dimension is required. Depending on how you look at things.

Very naive coding but the 2x1 Yellow Stick positions are read from a variable tested, tiled if possible and code then sequences to place the Red Dot without me having to intervene.

Progress.

I have tried to do something like this in VB6 and Python previously and simply got nowhere.

Cool!

A little off topic, but it occurs to me that you might like my Logo program to solve logic puzzles: https://people.eecs.berkeley.edu/~bh/logic.html.

I like it very much.

A Whittier Neighborhood Math Circle(Minneapolis) is in my future and this looks like a nice topic to cover.

I have felt my eyes glazing over approaching this topic previously. Your CS approach and conversational tone makes it work for me. Might make the interview portion into a little performance art exercise. I like to incorporate on the feet physicality when possible.

Thanks!

Lots of work to do but it works and it is pretty.

Yay! Good job. Will kids figure it out?

The next task is to break it down into separate activities like moving the individual shapes around a grid to make interesting patterns that can then be printed out and used with the physical blocks. Then move that up into a game like Blokus.

I have a math teacher pal with a ten year old who uses Scratch at school to play test it.

Getting the above to ease into the mathematics that simplify the number of possible positions and the
algorithmic thinking needed will be challenging. However establishing the interplay between playing with physical blocks and their SW representation and SW play will be established which I think is going to help a lot.

Of course the best next task would be programming a robot arm to build the solution with real blocks! :~)

Show up those Rubik robots.

If I do get a robot arm at work this might happen. Desktop robot arms to automate/assist device assembly task are getting down to the $1.5K range.

Some pretty ok code for tiling the Sixl puzzle -

" SixlSolverWorkingShareableCode3.zip"

Looks like this -

Not bad... I wish Edgy were built on top of an up-to-date Snap!, because instead of all that indexing it'd be better to say FOR EACH (POSITION) IN (BLUE VEE POSITIONS) ... But you can probably load it from a library.

I had a look at the libraries available and did not see that block. I might also not know exactly what to look for though. Is it a more customizable version of the "for each item of []" block?

Oh, sorry, that's what I meant. You can change the variable name from "item" to something else by clicking on it.

Oh! I usually do. Something I really like about SNAP! is making descriptive variable names because I know even if it long I won't mistype when I want it again because I can drag/duplicate and drop it.

Latest go at Sixl Solver saves the solutions to a seperate graph. It's not a Mondrian but I like it.

It is pretty. :~)

I still want a for each (item) in (yellow row positions) instead of

for (yellow row counter) from (1) to (3)
 set (yellow row list) to (item (yellow row counter) of (yellow row positions)

You can nest another FOR EACH ITEM inside that to get the individual cells from the position.

I will work on that tonight. Thanks. Being clear about nesting is critical to the success of this as a shared learning activity.