Announcement: Be excellent to each other.


Caravel Forum : Caravel Boards : Contests : Jumping Snake Puzzles. (Solve a puzzle to gain entry to our August contest.)
New Topic New Poll Post Reply
Poster Message
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2794
Registered: 02-04-2003
IP: Logged
icon Jumping Snake Puzzles. (+1)  
I came up with this new kind of puzzle which involves planning the path of a snake to traverse over squares of a grid. The snake can jump off the grid, which makes this puzzle very frightening if you aren't prepared. We will start a contest on August 12th that will be a massively multiplayer version of this puzzle with tens or maybe hundreds of human-controlled snakes fighting for scraps of vanishing open space on a vast grid. In order to gain control of one of the snakes in the contest, you'll need to solve an entry puzzle that I'll be describing below.

Here is an example puzzle (not the one I'll be giving you to solve):



Your snake enters the puzzle where the north-facing head is shown. Yeah, the one with the beady eyes and pointy fangs. Each turn the snake moves and occupies one additional square, until there are no more squares to which he can move, at which point he dies. The snake is very long and will never fit his entire length inside the puzzle area. Or in other words, the snake only occupies more squares--no part of his body, i.e. the tail, ever leaves a square. Your goal in this puzzle is to have the snake cover every empty square (shown in white) with his body. Your goal in the contest is a bit different, but I won't complicate things by explaining that now.

The snake moves in a deterministic way. His head begins at the edge of the puzzle facing the direction in which he'll first move. Boxes (shown in red), walls (shown in dark brown), and parts of the snake's body are considered obstacles through which the snake may not move. The snake looks at squares immediately adjacent to his head to determine which one he will move to:

1. If an adjacent empty square in front of the moving snake is available, he moves there.
2. If an adjacent empty square to the right of the moving snake (his right) is available, he moves there.
3. If an adjacent empty square to the left of the moving snake (his left) is available, he moves there.

Although you can't directly choose the snake's direction of travel, you may make the snake jump if there is an obstacle in front of his head. Jumping lifts the head of the snake above obstacles and allows him to travel over them. Impressive, eh? There must be an empty space available for the snake to land in one of the 4 orthogonal directions, or the jump isn't allowed. Also, walls can't be jumped over, although boxes and snake body may. You don't get to jump wherever you want; the landing square is chosen as follows:

1. If an empty square in front of the jumping snake is available, he lands there.
2. If an empty square to the right of the jumping snake is available, he lands there.
3. If an empty square to the left of the jumping snake is available, he lands there.
4. If an empty square behind the jumping snake is available, he lands there, coiling back over himself in a dramatic u-turn!

Your control of the snake's movement is simply to either "jump" or "bump" when the snake reaches an obstacle. "Bumping" means that your snake head stays on the ground and follows the non-jumping rules of movement.

Going back to the example puzzle, if you chose never to jump and only to bump, this is what the snake would do before he ran out of places to bump:



Let's back up to the first decision point:



Above you see the first place where jumping will change the snake's course. Note that if you jump while there is no obstacle in front of a snake, it only moves you into the same square at which your snake would have arrived anyhow. Let's say you jump at this point:



Your snake jumps over the obstacle and lands on an empty square in just one turn. Note that you didn't get to choose the direction of the jump--that is established by rules of movement. On the turn following the jump, the snake keeps going following his rules of movement. Choosing other places to jump can give you a path that covers every square like this one:



That puzzle is pretty easy and you can probably come up with some alternate solutions without much trouble. Below is a larger puzzle that should be more challenging. In fact, this is the puzzle you must solve if you would like to participate in next month's contest.



When you have a solution, post it as a reply to this topic. Replies made to this topic will only be seen by myself and the person who made the reply, so there is no need to worry about other people stealing your solution. You can specify your solution by attaching an image showing the path like mine for the 1st puzzle, but you can just scribble in a line for the snake.

Or you can use a notation which gives the complete sequence of jumps and bumps. For example, the solution to the first puzzle can be given like this: JBBBJBBJBJBJBBBBJBJJ. This notation is what you'd be using in the contest to describe the intended path of your snake. To follow how I came up with that answer to the first puzzle, look at where I've marked the B's and J's on the solution path below:



I'll be checking all the answers on August 10th, 2 days before the contest entry deadline. If your answer is incorrect (more likely due to a notational error than logical) I'll let you know so you have a chance to fix it.

I would really like as many people to be in the contest as possible. We're equipped to have hundreds, although I expect between 50-100 entrants as I write this. The purpose of asking people to solve an entry puzzle is to make sure entrants understand the basic rules under which the contest will operate. Once the contest starts, there won't be much time to explain rules and prevent mistakes, so you must be somewhat prepared beforehand.

Also, you are welcome to solve the puzzle, but not enter the contest. Who knows? Maybe you won't like the contest, but will enjoy solving this puzzle. In that case, I would appreciate if you leave a note with your puzzle answer that says won't be entering the contest. For simplicity's sake, I'm going to treat each puzzle answer here as a request to enter the contest by default.

"But how do I know if I want to enter this contest?" I think I can show you one image from the contest's future, and you will decide based on that one image if this contest will be for you or not. Either this image will inspire you to particate or set your teeth chattering.

Picture of an example 100-player arena

There is some nice discussion and other example puzzles over at this separate discussion topic. Yeah, go over there and check it out! Also, within a day or so after I posted the puzzle, TripleM wrote a nice Java applet that lets you play these two jumping snake puzzles and create other puzzles. If the rules seem terribly complicated, I really urge you to try out this applet. The fact that there are only two keys you need to press to control your snake should be encouraging!

Do you feel like you've got a handle on these jumping snake puzzles? Good! Then you are ready to read the contest rules, I think.

All images shown in this article are public domain, and you may do whatever you like with them.

-Erik

____________________________
The Godkiller - Chapter 1 available now on Steam. It's a DROD-like puzzle adventure game.
dev journals | twitch stream | youtube archive (NSFW)

[Last edited by ErikH2000 at 08-07-2006 02:21 AM]
07-23-2006 at 01:58 AM
View Profile Send Email to User Show all user's posts This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : Caravel Boards : Contests : Jumping Snake Puzzles. (Solve a puzzle to gain entry to our August contest.)
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.