8
$\begingroup$

This is a puzzle but might not have a solution. So "is it possible?" is a proper question.

The puzzle idea was inspired by the question logic problem/puzzle solving, and if the puzzle here turns out to be solvable, this question would be an answer to the linked question. (Hence the cross-link.)


Imagine the following situation:

There is a grid of 6x10 rectangular stones of fields of which some contain 'magical' stones which are solid under specific circumstances (defined below, shown in grey) and 'vacuum' otherwise. The other fields are 'vacuum' all the time.

This field is extended by a top and a bottom row of (6) always solid fields (shown in brown on the bottom, omitted on the top.)

There are 6 "players" which want to get across the field. They can only 'walk' on solid fields and (-this is due to the original puzzle question-) along a given path:

enter image description here

While a player stands still, he sends off six straight rays defined by the diagonals of the fields and a vertical line. (The centre of the rays is always the centre of the field he's standing in, regardless where on the field the player stands.):

enter image description here

Now a stone becomes solid (black) if, and only if, at least two different rays cross over its centre, while rays of a player standing on the platform do not count.

Note that 2 parallel rays are not considered crossing each other.

So the starting position is:

enter image description here

Now the puzzle-question is:

Can you bring all players safely across the field (along the defined path)?

and if not,

Can you bring at least one player safely across the field (along the defined path)?


Notation: Assuming only one player moves at a time, you can note its colour and final position (assuming the path to that one is 'walkable'. See my example answer below.


Hints

When testing a valid move, do it by the following 3 steps:

  1. "Remove" a player and his colour and check which platforms are (still) solid.

  2. Move player along valid, solid path to any position. (Multiple players are allowed on the same field!)

  3. Add player-rays and check which additional platforms are solid.

  4. This is the new "next" starting position. Note down the move and restart from 1.

Thanks to EFrog there is now also a helper tool for checking the situation. (See his answer below for details and instructions.) In accordance to the 4 points above:

Select a colour (click the big square to change colour) to "pick up" a player. Now check which 'path' is available and move the player to the end-position you want. (The tool does not allow going diagonal directly, but the rules allow it where indicated in the pre-given path.) To set-down a player, simply select another player/colour. Using 'black' mean that all players are set-down.

$\endgroup$
  • 1
    $\begingroup$ Are the starting squares of all the players always solid? What happens to a player who finishes crossing the field? (My best guess would be that they can move freely along a row K, since otherwise the answer to your first question is a trivial "No"). $\endgroup$ – Peter Taylor Jan 13 '15 at 14:33
  • 1
    $\begingroup$ I haven't heard back from the original poster of that other thread, so I'm making a Flash program to simulate this. (Hopefully.) $\endgroup$ – EFrog Jan 13 '15 at 15:07
  • $\begingroup$ I don't get one thing. If all players stand on same spot, does that spot disappear? $\endgroup$ – shyos Jan 13 '15 at 15:11
  • $\begingroup$ @shyos, yes. The moment there are less than two rays of different colour that cross (over the magic platforms), it disappears. So you always need at least 2 players not on the magic platform you want to sustain. (Which reminds me, that I have to draw a "K" line as Peter Taylor suggested. At least if question 1 should get a chance.) $\endgroup$ – BmyGuest Jan 13 '15 at 15:13
  • 1
    $\begingroup$ @shyos No. That is what I meant by crossing. (See 2nd step in my example and D5 not being solid) $\endgroup$ – BmyGuest Jan 13 '15 at 15:20
4
$\begingroup$

This isn't really an answer, but this is a program that I made that should allow you to better solve this puzzle (or create your own using the same premises).

BmyGuest's Puzzle

Instructions

This is a very clunky program that I put together, but it should be fairly user-friendly and easy to work with.

The grid: The grid consists of the same 6x10 layout presented in the OP (with one extra row at the bottom to start on and another at top for finishing). Each tile in the grid can be turned "on" or "off" by clicking. Tiles that are turned "on" are indicated by white triangles in the corners, while tiles that are "off" are indicated by black triangles. The tiles that are "on" represent the path -- only these tiles will respond to the characters' positions. (Note that it is set to the default path presented in the OP, but it can be changed if you like.)

The little arrow things: In the bottom-right of the screen is a large red box with an arrow on each side. If you click on the red box, it should cycle through the colors (Red > Blue > Green > Yellow > Purple > Orange > Blank/None > Red). Use this to choose which player you intend to control. By clicking on the appropriate arrow button near the selection box, you can then move that character in the indicated direction on the map.

Other: You may use the spacebar to place all of the players back in their starting positions. This does not reset the path to default, just the player positions.

Please Note:

As I said, this is a rather clunky program. So there are a couple of known issues.

First, the player dots are able to move off of the grid. I didn't feel the need to put in restrictions, as this is just a sandbox-style program.

Second, players aren't able to move diagonally in my program; however, this is allowed in the puzzle. Just be sure that you complete each diagonal move you intend and don't stop halfway. :D

I hope this helps and my instructions make sense.

$\endgroup$
  • $\begingroup$ Finally: I think you could quick-solve the "self collision" by actually not checking the collision of lines, but the collision of lines with the 3 upper OR 3 lower points in each square (left/centre/right). A valid combination has to have 2 or 3 of those points occupied. $\endgroup$ – BmyGuest Jan 13 '15 at 18:41
  • 1
    $\begingroup$ @BmyGuest I updated my post. I actually have it set up to see if a line crosses the very center of the tile. If so, then lineCrosses increases by 1 for every line crossing the center. If lineCrosses is >= 2, then the tile is "solid". That's why when you select a player and turn him hollow, the self-collision doesn't happen (the graphic for the player isn't touching the center of the tile). $\endgroup$ – EFrog Jan 13 '15 at 18:45
  • $\begingroup$ That's nice for the self-collision of the player, but you still have 2 parallel lines (overlaying each other) activating tiles, which by definition shouldn't happen. That's what I meant by the 2 out of 3 condition check as alternative. (You don't need a count for the 3 spots. It doesn't matter how many lines are on it, just that at least 2 spots per tile are "hit" ) Oh, well, yes, and the players on the tile... $\endgroup$ – BmyGuest Jan 13 '15 at 18:47
  • $\begingroup$ BTW, sorry for being such a P.I.D.A perfectionist. What you've done is already great. $\endgroup$ – BmyGuest Jan 13 '15 at 18:50
  • 1
    $\begingroup$ @BmyGuest I haven't done any programming in a couple years, and I'm not a pro or anything, so this is actually kinda fun for me. Try this: fastswf.com/0jk17wE It should handle the parallel lines problem (I have to check five additional points, but it's easy.) as well as including the new finishing line. $\endgroup$ – EFrog Jan 13 '15 at 19:11
1
$\begingroup$

This is a partial answer only, demonstrating the first few (potential) steps.

Each image depicts the situation after the named move. Remember during movement the rays of the moving player are off, so all platforms 'held' by his rays (and no other 2 crossing colours) will immediately disappear!


Orange --> A2

1=Orange A2

Yellow --> C2

2=Yellow C2

Cyan--> C3

3=Cyan C3

Orange --> 4

4=Orange 4

Yellow --> D4

5=Yellow D4

Purple --> B3

6=Purple B3

etc...

$\endgroup$
  • 1
    $\begingroup$ I think if you can get three across while leaving three on the starting row, then you can nearly assume that you can get the other three across using just the column lines from the finished three. $\endgroup$ – agweber Jan 13 '15 at 18:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.