Prove you're a programmer!
... an intrinsically-motivated one.

Warning: may contain minority languages unsuitable for the majority.

Now with easier puzzles, hints, new languages and leaderboard.

 

Run game (mobile / windowed)

 

Top players (named only)

 


The game is in active development. Comments are welcome!

 

I don't understand what I'm supposed to do.

Click the control flow graph that corresponds to the code. Only one is correct.

The diagrams are disproportionally convoluted.

All diagrams reflect real-world programs designed by unsuspecting people.

The game started fine, then switched to obscure languages nobody uses.

Handle them as legacy code; start with the hints.

This has nothing to do with being an xN programmer.

How would I know?

 

 

StatusIn development
PlatformsHTML5
Rating
Rated 3.5 out of 5 stars
(2 total ratings)
Author2020
GenrePuzzle
Tagscaptcha, coding
Average sessionA few minutes
InputsMouse, Touchscreen
LinksHomepage

Comments

Log in with itch.io to leave a comment.

(2 edits)

===== major spoilers below =====

(4 edits)

I am loving the challenge and exercise, though the whole thing with the esoterik programming languages is garbage. Had a perfect run until 333% but then lost the joy with that.

(But hey at least now I can read Whenever code ;-) I never thought I would care)

There is a Whenever code that even takes user input. Doesn't make sense.

Actually even the syntax is wrong since there should be a comma between multiple commands. It is missing after the print statements in lines 2,5,7,8.

Since the order of Whenever code lines being executed is arbitrary the result is purely hypothetical.

Also this program will end up in an endless loop, hence it will never end.


(1 edit)

<discussion moved to the comment below>

(2 edits)

I'd say that the INTERCAL program is wrong and unsolveable.

A -> B -> jump to (2) put current line on stack -> jump to (3) put current line on stack -> variable 5 is not defined, hence error 621 "RESUME statement evaluated to 0"

If you take the "DO RESUME .5" as a condition then the third solution is correct.

Still I think this should be fixed or annotated.

For anybody who wants to play around with this can use the code at the end of the post

https://www.tutorialspoint.com/compile_intercal_online.php




(1) DO READ OUT #1
    DO READ OUT #2
    DO (2) NEXT
    DO READ OUT #3
    DO RESUME #1
(2) DO (3) NEXT
    DO FORGET #1
    DO READ OUT #4
    DO (4) NEXT
(3) DO RESUME #1
(4) DO FORGET #1
    DO READ OUT #5
    DO READ OUT #6
    DO (5) NEXT
    PLEASE (4) NEXT
(5) PLEASE (3) NEXT
    PLEASE DO READ OUT #7
    PLEASE RESUME #2

The description has been updated with some details about (my use of) these two languages - I may incorporate the info in-game if you find it helpful.

(4 edits)

Definitely put something at the level for INTERCAL that the .5 variable should be interpreted in your way. Otherwise there is no way to know.

Regarding Whenever you need to explain how the read() should be interpreted and please make a comma, so the syntax is correct.

Also it would need to be stated how to interpret the order of execution, since Whenever does not guarantee the order. Otherwise the sequence could as well start with "D E" or "F". For what it is worth the complete sequence could even be "F A B". Though with defining the order it would take all the fun of Whenever.

(That's the main reason I really dislike this level. I doesn't give you a fair chance.)

Also, regardless of the start, the way it is now your code will end up in an endless loop with line 6 being executed forever. (Line 3 actually has chance to be completely removed from the todo list.) So none of the solutions is correct for end is never reached. This can be easily fixed the same way as it is done for line 3.

I guess you will have to come up with some other code to make this work.

Are you overlooking the effect of "defer"? AFAICT in your screenshot execution order is deterministic up to conditions, and the program terminates successfully (i.e. with empty "to-do list").

Anyway the hints are now available in-game, and I've also placed print() statements on separate lines (the spec, while being somewhat loose, doesn't allow both print() and lines specifications on the same line).

"... A Whenever program is executed by a language interpreter ... . It takes the program code and treats each line as an item in a to-do list. The interpreter chooses an item from the list at random, with equal probability, to execute, and executes the statement. ..."

https://www.dangermouse.net/esoteric/whenever.html

Heh, the practice of reading language specs selectively. You're in good company, that has failed me more than once...