Log In  

Cart #repuzzle-10 | 2022-03-29 | Code ▽ | Embed ▽ | No License
13

Repuzzle - a Pico-8 Coding Puzzle Game

Insert, replace, delete, and move characters to win over 22 levels, ranging from the simple to the tricky.

Explanation of the basic controls is provided in the game.

Tips:

  • The pico-8 manual and pico-8 wiki can be useful. (both for this game and in general)
  • If you're stuck on one level, try another. The different "sections" each go roughly from easy to hard, with a lot of variance in-between.
  • If you're really really stuck, the hints can help.

Full list of controls:

Browsing:

  • Arrow keys to move between characters
  • Ctrl + Arrow keys to move between words
  • Page Up/Down to move between pages
  • Home/End to move to start/end of line
  • Ctrl + Home/End to move to start/end of code
  • You can also scroll via Mouse Wheel and move to a character via left-click

Switching Mode:

  • Tab to select the next editing mode
  • Ctrl+1/2/3 to select insert/replace/move mode directly (can also use F1/F2/F3 in BBS only)
  • Clicking on a mode with the mouse will select it as well

Editing:

  • Type to insert characters in insert mode
  • Type to replace characters in replace mode
  • Backspace/delete to delete characters in insert and replace modes
  • Backspace/delete to mark characters for moving in move mode
  • Type to move marked characters in move mode
  • Shift + Backspace/delete to undo changes (in all modes)
  • You can type lowercase, uppercase (with Shift), digits/punctuation, and line breaks (Enter)
  • Ctrl + V to paste code from the clipboard (in insert mode only)

Running:

  • Ctrl + Enter to run the code (you can also use Ctrl + B or 'run' in the pause menu)
  • Escape to abort the run
  • Upon error or abort, Tab (or Ctrl+1..6 or left-click) to browse the stack trace
  • If the code did any drawing or printing, you'll also see a 'see output screen' option - browse to it via Tab(/etc) to see the output

Misc.:

  • Ctrl + C to copy all code to the clipboard
  • Escape to access the pause menu (run; restart level; back to menu; see hint)

Uses sprites from:

Misc notes:

  • Some non-english keyboard layouts currently don't work too well with the devkit keyboard in pico-8. Try switching to an english layout if you're having trouble with your own (or try reporting a pico8 bug)
  • This uses the same Pico-8 interpreter as my Pico-8 REPL/Interpreter, available HERE

Changelog

  • Tweak levels 11 & 12 to avoid simple solution.
  • Improve hints on levels 20 & 22
  • Fix holding backspace key being unreliable on large levels.
  • Added mouse support & paste support
P#109128 2022-03-25 01:18 ( Edited 2022-03-29 21:38)

This is pretty awesome. Well done.

P#109142 2022-03-25 14:24
:: phil

Such a great cartridge! I am not a PICO programmer but the first few levels were clear enough that they were challenging and once you got the solution there was a great feeling of achievement.

Highly recommended!

P#109192 2022-03-26 09:06
:: shy

This is a completely unique programming game that gets hard fast. I'm through to the third riddle in #10, but fairly certain you aren't supposed to do it with metatables, as I ran out of chars.

I enjoyed this a lot, but I do kind of wish there was mouse input instead of the keyboard only tab-modes, as well as mouse scroll wheel support. The BBS version has some issues with ctrl/pageup/pagedown navigation (which only works in fullscreen mode in Chrome, while ESC only works in windowed mode). I can accept that this is meant to be an old school interface though. The biggest issue is that Ctrl-R resets the cart, and I'm so used to that shortcut that I lost my code more than once! XD

P#109288 2022-03-27 23:57

this is definitely in my top 3 pico-8 games along with king and probably nemonic crypt. I haven't finished it yet and I don't expect to fully because I don't know lua, but level 5 is by far the most creative since the solution is pretty much right in your face if you think outside the box

P#109290 2022-03-28 00:08
1

@shy - pageup/pagedown works in chrome for me (you shouldn't hold control while doing it - that's a browser shortcut and indeed doesn't work)
Nothing I can do about ctrl+R resetting - that's a pico-8 shortcut. :(

Didn't consider mouse support before, maybe I'll add it.
EDIT: Added! Thanks for the suggestion.

P#109299 2022-03-28 04:02 ( Edited 2022-03-28 05:38)
:: shy

Awesome, thank you for the update! The keyboard controls seemed to be working better for me today too, pico-8 was grabbing focus properly in the browser. It might have been my mistake with Ctrl+PgUp that broke things, because that seems to get the Ctrl key stuck when you click back to the game's tab, but I could have sworn Ctrl+End was also scrolling to the bottom of the BBS page yesterday. Anyway, everything in the interface works and feels much more intuitive for me now, so I appreciate the update a lot!

About Ctrl+R, the only possibility I can think of to fix that is to save the player edits as they're made, so an accidental reset can be reloaded to the same state (maybe via printh to a .p8l file every so often, then a dynamic #include to reload that source code when you enter the level, though that'll only work offline). I think that's probably more effort than it's worth though, and I didn't expect this issue to be fixed. Just wanted to joke about my programmer reflexes hurting me, haha.

P#109314 2022-03-28 13:50
:: phil

I think I am becoming obsessed with this game even though I don't code LUA. I was rather pleased with myself that I have managed to solve a number of the graphical levels.

However I have been pulling my hair out over level 5 - "wall". I am sure its really obvious but can't make any progress. So can someone answer the following:

  • Is the solution within the _draw() method ?
  • Is the solution LUA specific or do I have a change of solving this with my knowledge of other programming languages?
  • Since collide() is protected the solution is not to remove the wall?
  • Is the solution to re-assign the x position of the hero onto the key ?
  • I tried in the SPR line to re-assign the x position of the hero, but this wasn't allowed. And there's not enough allowed insert characters to assign the x position outside of the SPR line
  • I even tried moving the for-loop (which displays the random grass but this didn't work) - the fact that SRAND is not given a seed is suspicous... Is the solution something to do with the random seed?
P#109362 2022-03-29 15:49
:: Meep

@phil: To the first two questions, there is a possible solution there, and it's not LUA specific. Have you looked at the hint for it?

P#109366 2022-03-29 17:29
:: phil

@Meep - yes I have looked at the hint. That's what made me think it was LUA specific.

P#109367 2022-03-29 17:52
:: merwok

Super fun idea!

The function keys trigger pico-8 actions (screenshot, label, etc) which are unwanted, could we have an alternate scheme?

P#109368 2022-03-29 17:59

@merwok - You can always use tab or the mouse - the function keys are just an extra convenience and they do work in the BBS - I edited the post to note this. Maybe I'll add ctrl+1..3 as alternative shortcuts, though - they seem to work both in BBS and splore. [EDIT: added]

P#109371 2022-03-29 19:02 ( Edited 2022-03-29 21:25)
:: phil
1

I did level 5!!! I am so happy! The joy of cracking this level coupled with the simplicity of the solution was wonderful.

I may have to stop with this cart now. I have completed all the "Hero's Quest" levels as well as level 8 "forever" but the rest just look far too difficult.

P#109374 2022-03-29 22:24

[Please log in to post a comment]

Follow Lexaloffle:        
Generated 2022-05-04 02:32:45 | 0.041s | Q:37