KAIST

is the name of the university for my undergraduate study. And I’m leaving for Korea in like two hours.

Well. It was a wonderful time in Indonesia. I met a lot of friends, had a lot of experience… But now, I’m going to go to a foreign country. A completely new country that I have never gone before. Where I only know that it’s the origin of Gangnam Style and also the country of residence of the #1 osu! player Cookiezi.

Four years. Four years required to pursue my degree, hopefully less. Four years of not meeting my family and friends. But four years of meeting new friends too.

Well… It’s going to be a tough journey ahead. I’ve prepared my best; let’s hope that I can cope with it.

Good bye Indonesia, and hello Korea.

Puzzle 68: Obvious Spinoff of Spinoff

Tapa Double Trouble Shade in some cells so the shaded cells form a Tapa wall. Cells containing clues (question marks) may not be shaded. A clue indicates the sizes of separate shaded cell groups among the 8 cells adjacent to it; for example, a clue of “1 2″ indicates that there are two groups of shaded cells, one of size 1 and one of size 2.

In addition, the “Tapa Double”[1] variant is in effect: every clue both provides the sizes of separate shaded cell groups as well as sizes of separate unshaded clues.

Further addition, all clues have been replaced with a question mark each.

Expected difficulty MediumAnswerComment/E-mail if you want a solution to be published

Puzzle 68: Tapa Double Trouble

Puzzle 68: Obvious Spinoff of Spinoff
Tapa Double Trouble

[1] In TVC XIV, this variant is called Tapa Clones, but I don’t want it to be misinterpreted with the Clones variant I made (where there are two or more marked regions that must contain exactly the same content), especially as I also used it for Puzzle 60.

Final puzzle before I’m going to (South) Korea. A future post will explain more about it.

Anyway. When I first saw Tapa Clones in TVC XIV, the fact that a very small amount of valid clues and the large amount of information each clue gives leads me to this variant. It comes pretty naturally for me; dunno whether other puzzle constructors, at the first sight of Tapa Clones, immediately think of this variant. But heh, why not.

I may or may not participate in TVC XIV. I need to settle in Korea first. Also even more unlikely is Classic Tapa Contest 2013 for quite obvious reasons. However, DTGT is plausible. Well I suppose I should focus on my studies first heh.

To the puzzle. It’s quite difficult to find an opening, and most of the tricks involve utilizing clue squares as known whites instead of…well…clue squares. But I’m still quite proud of this thing, which is made while half-sleepy…heh.

Puzzle 67: Too Many To Count

Neanderthal Tapa Shade in some cells so the shaded cells form a Tapa wall. Cells containing clues (1 or +) may not be shaded. A clue indicates the lengths of separate shaded cell groups among the 8 cells adjacent to it; for example, a clue of “1 2” indicates that there are two groups of shaded cells, one of size 1 and one of size 2. However, as neanderthals don’t know numbers greater than 1, all numbers greater than 1 are replaced by a plus sign (+) each. (So the above “1 2” clue will be replaced to “1 +”. A “1 5” clue is also replaced with “1 +”, and so it’s up to the solver to determine the exact number of a plus sign.)

Expected difficulty MediumAnswerComment/E-mail if you want an answer/solution to be published

Puzzle 67: Neanderthal Tapa

Puzzle 67: Too Many To Count
Neanderthal Tapa
(image seems broken; if it is, click to view full image)

Obligatory practice puzzle for TVC XIII. Well, you see this post, and you notice that number 2 is missing, so… Also yes, I most likely will participate.

Anyway. Neanderthal Tapa + antisymmetric seems too hard, so I just made a symmetric clue layout for this. A bit of unusual logic that may or may not exist in vanilla Tapa which pushes the difficulty to medium, but a pretty simple solve.

Music Albums

Well, it seems like I cannot stand posting this here. Mostly because my tumblr doesn’t seem to have many “followers”.

Anyway. In order from most wanted to least wanted, among those that I can think of (but should be all unless I keep discovering new insta-wishlist albums):

PCOCD-001: pichnopop – HAPPYMAKER (will release 12 August)
SBFR-0042: salvation by faith records – Eevee Fan Disc (released 26 May)
PMMCD-004: Prismatic Music – Prismatic Music Vol. 1 (released 2 February)
PMMCD-006: Prismatic Music – Prismatic Sounds (release information N/A)

Yes I have too much happycore songs. Why not 😛

Puzzle 66: Ring of Blocks

Fillomino Follow regular Fillomino rules.

Expected difficulty MediumAnswerSolution (196 kB)

Puzzle 66: Fillomino

Puzzle 66: Ring of Blocks
Fillomino

EDIT: Fixed ambiguity on top-right corner.

God how long has this blog been without puzzles vanilla Fillomino.

Well, yeah. I like Fillomino, but recent Fillomino puzzles I’ve published are all variants. Crazy variants, even. Here’s an attempt at making a vanilla Fillomino again. And yeah, now I’m using 16pt Century Gothic with 32px cell size. I’m not sure why I change the font so much; blame Will Shortz’s Puzzle Master Workout I think 😛

Speaking of crazy variants, remember Fancy Fillomino February? I’m going to do that again, only not on February, less puzzles, and crazier variants. Here’s a few genres of puzzles I’ve made, just as teasers: Operations, Liar Cipher, and Consecutive Rectangles. That’s not counting variants I made myself just for this series (not just reusing previous variants). Hyped up? See ya in end of October. Most likely the series will lead to my birthday.

Speaking of my birthday and puzzles. Remember Deception? Yes, I pretty likely will author another LMI test. I’m attempting for the test to be run on my birthday’s weekend; let’s see.

Puzzle 65: Abuse of the Rules

BWG Loop Draw a loop visiting all cells that moves only horizontally and vertically, and turns only at centers of cells. Between two circles of the same color (both black or both white), there may not be any turn. Between two circles of different colors (one black and one white), there must be exactly one turn. (The loop is free to turn on circles.) A gray circle stands for either black or white, and might be different for the two segments it’s adjacent to (it might act as black for one direction and white on the other direction).

Expected difficulty EasyAnswerComment/E-mail if you want a solution to be published

Puzzle 65: BWG Loop

Puzzle 65: Abuse of the Rules
BWG Loop

(image seems bad; click to view full image)

God how long has this blog been without puzzles. Here’s a quick puzzle to fix for that.

This puzzle is made in response to IPC 2013. When I first saw Black-White-Gray Loop, this is my first impression. Of course, it turns out that the author is not this wicked, but it’s a neat abuse nevertheless.

Meanwhile, I got rid of all sorts of time and difficulty numbers. Now the difficulty is only “easy/medium/hard/insane”. Much better, because I can’t estimate difficulty properly. Solutions are now demand-based; I will not work on any solution unless someone comments/e-mails/notify me in some way or I like the puzzle too much that I want to publish a solution by myself. Much better time management for me.

I have another puzzle published in about 8 hours; stay tuned!

New Laptop

I have a new laptop. The previous laptop is still in service.

So, because I’m not that much into hardware, I’ll just say that it still suffices for me so far. I’m more concerned about the software.

I haven’t had time to get Microsoft Office. Either 2007 or 2010. So I’m using OpenOffice, but at the moment it looks terrible for making puzzle grids (I can’t set column width/row height in pixels argh, too lazy to keep converting from pixels to centimeters). Not to mention that I’m too used to MS Office’s ribbon menu. So don’t expect new puzzles for a while, until I get MS Office in.

Progline

An esoteric programming language, and by esoteric, I mean as esoteric as Fractran.

A program consists of several directed lines on the Euclidean plane. A line has four properties: the direction it is going to, whether it is bounded to the “back” (negative, opposite of the line’s direction) (and if so, the endpoint), whether it is bounded to the “front” (positive, along the line’s direction) (and if so, the endpoint), and an attribute. All lines are open (doesn’t include the endpoints).

The program must consist of the line y = 0 directed to the “right” (positive; “left” is negative) that is not bounded to the back; this is the “main line” equivalent to the main procedure in other languages.

The lines may intersect, but no intersection may be passed by more than two non-vertical lines; this results on a compile error. No two non-vertical lines may coincide at more than one point either; this also results a compile error.

The program begins with a “program counter” (PC) at (-\infty, 0). PC always moves along the direction of the line it’s on. When it reaches an intersection (thus meeting another line, which we will call L), some action happened which cause the PC to choose between the two lines, according to the attribute of L.

Vertical lines (infinite/undefined slope) behave very differently though. A vertical line has no direction, and the PC never goes along a vertical line. There is a completely different set of attributes for vertical lines. Generally non-vertical lines and intersections are for various conditionals, and vertical lines are about programs.

The program ends successfully if the PC can be proven not to meet any other intersection. The program returns a runtime error if the PC reaches an endpoint of a line.

The program has an “input stack”. True to its name, when the program is executed, all input is moved to the input stack so that the first bit in input is the top bit in the stack. The program modifies this stack (as the sole movable data storage). The program also has a standard output.

Attributes for non-vertical lines:
– Is 1: Pops a bit from the input stack. If it’s 1, PC moves to the line met; if it’s 0, PC stays on the same line. If there is no bit to read, the program returns a runtime error.
– Is 1 Seen: Similar to “Is 1”, but pushes back the bit to the input stack afterwards.
– Is Empty: Checks whether the input stack is empty. If it is empty, PC moves to the line met. If it is not empty, PC stays on the same line.

The three attributes above also come with the negated variants: PC stays on the same line if the condition is met and moves to the line met otherwise.

– Move: PC is forced to move along this line. (Note that as only the attribute of the line met that is checked, PC can move out from this line on the next intersection.)

Vertical lines:
– Output: Prints a 1 if the PC has a positive ordinate (y-coordinate), 0 if the PC has a negative ordinate, and doesn’t print anything otherwise.
– Push: Pushes a 1 to the input stack if the PC has a positive ordinate, 0 if the PC has a negative ordinate, and doesn’t push anything otherwise.

So far that’s all attributes I can think of.

Progline can be specified in natural English, but since I want a more compact definition:

Every line I write is of this format:
(equation) (direction) (back-boundedness) (front-bounded-ness) (attribute)

Equation is always in the form y = slope * x + constant for non-vertical lines and x = constant for vertical lines.

Direction is Left or Right for non-vertical lines and Up for vertical lines. (The latter makes sure a back endpoint is lower than a front endpoint, which is usually natural to humans (smaller numbers to the left of larger numbers when written).)

Each boundedness is either None or a point that the line is guaranteed to pass.

Attribute is one of the above.

A line that is preceded by * is a comment. A blank line is also allowed to clarify procedures better.

Sample program:

Copy input bit
Outputs the first bit in input, or leave the output empty if there is no input.

* Main line
y = 0 Right None None Move

* Check whether input stack is empty. If it’s empty, go to the left. We’ll make sure no line afterwards interferes with this line, so this successfully exits the program.
y = x Left (1,1) None Is Empty

* Otherwise, read the first bit in the input (that is proven to exist). If it’s 1, go up with the first line; if it’s 0, go down after passing the first line unchanged. Note that as endpoints are open, these two lines don’t intersect.
y = x-10 Right (-10, 0) None Is 1
y = -x+12 Right (11, 1) None Move

* Now PC is above the x-axis if the input is 1 and below otherwise. Also, PC won’t meet any other line, so the program exits successfully.
x = 14 Vertical None None Output

Infinite loop
This utilizes the push vertical attribute to generate numbers endlessly, while keeping the input stack near empty.

* Begin by pushing a 0 to the stack. The first line is the obligatory main line, the second line moves PC down, the third line pushes 0, the fourth line moves PC up (passing the ended main line to above x-axis), and the fifth line keeps the PC on a horizontal line just for the sake of ease.
y = 0 Right None (-9, 0) Move
y = -x-10 Right None None Move
x = -9 Up None None Push
y = x+8 Right None None Move
y = 2 Right None None Move

* Begin the fun. The loop utilizes the triangle (-2, 2)—(2, 2)—(0, 4).

* First, the PC will pass an Is 1 line. This line will be skipped in the first iteration, but will be followed in later iterations; keep reading. This also has the side effect of consuming the 0, which helps keeping the stack empty (although it’s not necessary).
y = x+4 Left None None Is 1

* Now, the PC will pass a Push line. Because it has ordinate 2, it will push 1 to the stack.
x = 0 Up (0, 1) (0, 3) Push

* We move back to our Is 1 line.
y = -x+4 Left None None Move

* Now, it will meet our Is 1 line before, and will move along that line because our bit is 1. The PC then meets the y=2 line again with empty stack, repeating the state and hence proving an infinite loop.

Progline programming problems! (some are open)
– Can you find a Copy input bit program that has no endpoints of lines anywhere? (I found one.)
– Can you find an Infinite loop program that doesn’t push values into the stack, even if it means an infinite input is required? (I found one.)
– Can you find an Infinite loop program that doesn’t push values into the stack but has only a finite input? (I haven’t found one 😦 ) Or otherwise prove that this is impossible.
– Can you make the Hello, world! program? (Assume that every 8 bits output is bundled into one ASCII character, with earlier bit being more significant and printed characters are from left to right. So “123” can be output by 001100010011001000110011, as “00110001” is “1”, “00110010” is “2”, and “00110011” is “3”, concatenated together.) (I found one.)
– Can you make a program that generates the Thue-Morse sequence? (I haven’t found one 😦 )

Mother*****

(Before you accuse me of cursing, count the asterisks.)

Okay, so my computer seems to have a motherboard failure, since Tuesday. Which means I have had no computer access for three days, and depending on luck, I may or may not get computer access on IPC (7-9 July, aka 2 days). So…I might be solving by phone or something, depending on my mood and the eventual availability of my computer on the competition weekend. 😦

On a somewhat related note, no computer access makes me focus on solving puzzles and making them. I’ve solved Will Shortz’s Puzzlemaster Workout, with an average performance somewhere above expert time but definitely not record time (although I broke 19 record times, some of them in the “lucky” genres like Honey Islands and Boomerangs (I haven’t figured out a logical way to approach any of them, with brute force seeming to be the best method I found so far) but screwed up 5 puzzles). I’m catching up with Grandmaster Puzzles, and I might some time send some puzzles there; if I eventually send puzzles there, I already plan to send my vanilla and standard variant (is that an oxymoron?) puzzles to GMPuzzles and keep the more wicked variants for this blog. I’m making the second 7×7 Fillomino batch (the first is Fancy Fillomino February), which won’t be themed for a certain month but will be far more wicked than FFF. (Currently I’ve made Liar Cipher Fillomino and Consecutive Shikaku Fillomino, to give an idea of what puzzles I’m making. 😛 )

…alright, that’s all for now, I guess. Because it has been a long time since the last puzzle, let’s make a short one.

You have ten piles of coins, of sizes 1,2,3,4,5,6,7,8,9,10 (one pile each). You also have a pan. You can put any pile on the pan, but you must put all coins from the pile and no other coin from other piles. Design a sequence of piles and put the piles to the pan in that order, so that after any move, the total number of coins on the pan is not a prime number. There might be multiple sequences, but I’ve found at least one so this “puzzle” is solvable.

(An example sequence is 1,2,3,4,5,6,7,8,9,10, but it hits the prime 3 after two moves. Another sequence is 10,9,8,7,6,5,4,3,2,1, but it hits the prime 19 after two moves.)

If you found an answer, can you find one satisfying 1,_,3,_,5,_,7,_,9,_ where the underscores are to be replaced by the remaining numbers (2,4,6,8,10)?

What if you have 2013 piles whose sizes are the first 2013 positive integers instead? Can you find a way to construct the solution for any number of piles greater than or equal to 3 that always works (without trying too many possibilities of course)? (That is called a general solution.) Can you find a way to construct general solutions?

Whee.

You know the Liar variant where exactly one clue in each row/column is wrong? Okay.

You know the Cipher variant where all numbers are replaced with letters (identical numbers are replaced with identical numbers and different numbers are replaced with different letters)? Okay.

What happens if you combine both?

You say it’s impossible? Well, I also did say that when someone attempted to make it. But well… Yoshiap pulled it off.

Enjoy his Liar Cipher Fillomino. Let’s see whether I can make one of it too. Whee.