Turing Complete

Turing Complete

View Stats:
Snoopy Jun 20, 2022 @ 10:18pm
ROBOT RACING. Could anyone give me some advice?
I am really struggling with this Robot Racing level.

I have implemented function calls and returns and finally made it to the Robot Racing stage.
Earlier, in a thread on the community hub, it was mentioned that the best way to complete Robot racing is to use the regularity of the Hilbert curve.
So I researched Hilbert curves and understood their regularity.
However, I could not fit this level into a code within 4bytes*256.
Of course, I understand that short, efficient algorithmic solutions are needed for this stage.
Or do we need to add something to the LEG to complete this stage?

I am struggling very much with this Robot Racing level.
But hopefully I will clear this stage as much as possible on my own.
If you have cleared this stage, I would appreciate it if you could give me some advice to me, within the limits of not spoiling anything.
Thanks for reading to the end.
Last edited by Snoopy; Jun 21, 2022 @ 6:59pm
< >
Showing 1-15 of 19 comments
MegaIng Jun 21, 2022 @ 12:14am 
For me, implementing the hilbert curve by directly translating the L-system notation into assembly instructions (and function calls where needed) worked quite well and was small enough.
Snoopy Jun 21, 2022 @ 2:36am 
Originally posted by MegaIng:
For me, implementing the hilbert curve by directly translating the L-system notation into assembly instructions (and function calls where needed) worked quite well and was small enough.

Thank you very much , Megaing. I'll try.
Snoopy Jun 23, 2022 @ 10:53pm 
Originally posted by MegaIng:
For me, implementing the hilbert curve by directly translating the L-system notation into assembly instructions (and function calls where needed) worked quite well and was small enough.
How can I implement the L system in assembler?
I am almost ready to solve this problem.
I think that repeating the regularity of the conversion with function calls is probably the key to solving this problem.
However, writing the conversion rules in assembler would be a huge amount of code.
For example, "go right" is rotated 90 degrees to "go up" and so on.
There must be some efficient algorithm for conversion rules, but I just can't think of it.
I would appreciate any and all more hints you can give me.
SunCat Jun 24, 2022 @ 4:32am 
if you have solved The Maze using OVERTURE, you should know how to "turn left" or "turn right" or "go forward" without having to handle four directions separately
Last edited by SunCat; Jun 24, 2022 @ 4:32am
pleegwat Jun 24, 2022 @ 7:50am 
I uploaded a screenshot of my solution yesterday. It certainly has a small program size, but I don't think it is the intended approach.

https://steamcommunity.com/sharedfiles/filedetails/?id=2824911652
Snoopy Jun 24, 2022 @ 7:57am 
Originally posted by SunCat:
if you have solved The Maze using OVERTURE, you should know how to "turn left" or "turn right" or "go forward" without having to handle four directions separately
Thank you for commenting, SunCat.
I have solved The Maze using OVERTURE, and I don't know the way you are talking.
And, I don't have computer science background.
However, since the stages after LEG are basically left to the creativity of the players, and there is no advice from the game designers, so I am having trouble understanding many of the things I don't know.
Of course, I believe that this difficulty is what makes the game so interesting, and I like this game.
However, I would be grateful if anyone could give me some hints.
Last edited by Snoopy; Jun 24, 2022 @ 8:29am
Snoopy Jun 24, 2022 @ 8:00am 
Originally posted by pleegwat:
I uploaded a screenshot of my solution yesterday. It certainly has a small program size, but I don't think it is the intended approach.

https://steamcommunity.com/sharedfiles/filedetails/?id=2824911652

Thanks for commenting, pleegwat.
I will refer to it.
SunCat Jun 24, 2022 @ 9:12am 
Originally posted by Snoopy:
Thank you for commenting, SunCat.
I have solved The Maze using OVERTURE, and I don't know the way you are talking.
when solving maze with overture, were you following left/right wall, by keeping current direction in a register and changing it as needed?
Snoopy Jun 28, 2022 @ 6:32am 
Originally posted by SunCat:
Originally posted by Snoopy:
Thank you for commenting, SunCat.
I have solved The Maze using OVERTURE, and I don't know the way you are talking.
when solving maze with overture, were you following left/right wall, by keeping current direction in a register and changing it as needed?

I wrote an algorithm that follows the (subjective coordinate) right side of the wall and cleared THE MAZE.
SunCat Jun 28, 2022 @ 7:22am 
Originally posted by Snoopy:
I wrote an algorithm that follows the (subjective coordinate) right side of the wall and cleared THE MAZE.

then your solution was able to "move forward", "turn left", "turn right". And there's a way to draw Hilbert curve using the same type of commands, via Lindenmayer system (L system). Using this system removes the issue of having to write separate functions for "go up" or "go right", as all actions are relative to your current direction.
Last edited by SunCat; Jun 28, 2022 @ 7:25am
Snoopy Jun 28, 2022 @ 8:50am 
Originally posted by SunCat:
Originally posted by Snoopy:
I wrote an algorithm that follows the (subjective coordinate) right side of the wall and cleared THE MAZE.

then your solution was able to "move forward", "turn left", "turn right". And there's a way to draw Hilbert curve using the same type of commands, via Lindenmayer system (L system). Using this system removes the issue of having to write separate functions for "go up" or "go right", as all actions are relative to your current direction.
Thank you for giving me advice, SunCat.
I'll try to figure out the solution by myself for a while.
Mortalitor Sep 4, 2022 @ 10:23pm 
Originally posted by pleegwat:
I uploaded a screenshot of my solution yesterday. It certainly has a small program size, but I don't think it is the intended approach.

https://steamcommunity.com/sharedfiles/filedetails/?id=2824911652

How the hell do you come up with a solution like this?
pleegwat Sep 15, 2022 @ 2:24pm 
Originally posted by Talitor:
Originally posted by pleegwat:
I uploaded a screenshot of my solution yesterday. It certainly has a small program size, but I don't think it is the intended approach.

https://steamcommunity.com/sharedfiles/filedetails/?id=2824911652

How the hell do you come up with a solution like this?

The solution consists of three parts. The left-hand side is a 6-bit counter, hard-wired to increment every tick. The right-hand side was created by making a list of the required 63 outputs, writing out truth tables for each bit separately, and trying to find patterns in those until I got a reasonably small result.
Last edited by pleegwat; Sep 15, 2022 @ 2:28pm
pleegwat Sep 16, 2022 @ 2:33pm 
Now that I'm thinking about it again, I don't like my solution. It's brute-force, not giving any insight into the underlying logic at all. Case in point, a full 4 out off 15 gates on the right-hand side only exist because one specific step (the 47th, if memory serves) does not match the pattern from the rest of the gates. The solution also does not scale up to the 255-step version of the pattern in any obvious way.
< >
Showing 1-15 of 19 comments
Per page: 1530 50