-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improvement on Chain Levels #10
Comments
I agree it could definitely do the repeating molecules in a more efficient way! The simple way would be to make it identify the repeating "units" of the product, the construct these units one at a time and bond them to the rest of the product. The problem is that after you bond a new unit to the rest of the product, you now have a large molecule sitting on top of a bonder, and if you try to move it in any direction, it could potentially bond together two atoms that shouldn't be bonded. Rotating the molecule after bonding it might work, but that causes problems when there are multiple products on the same level (as they might hit each other). It also gets more complicated when there are multiple bonds on the (...) atom. But I think in simple cases it would certainly be possible to make it do a much better job than it currently does. |
Sadly, I learned that you can't rotate the chain product outputs. But what I meant with the rotating the chain output is that you could build the columns of the output one-by-one, bonding them to the rest of the structure, just like you do with rows in the normal levels. Like an atomic printer. That doesn't mean that my plans of a more instruction-efficient solver for chain levels are over. Merely that things get...complicated. See, if we can't rotate the chain output twice counter-clockwise to the rest of the machine, then we have to rotate the rest of the machine twice clockwise, relative to the chain output. This means building the "printer rails", as I've come to call them, sloping downwards to the right, with the printer piston arms facing directly right. From this, the instruction program could assume that the entire machine is rotated twice clockwise, and "mentally" rotate it twice counter-clockwise to return it to normal, allowing you to reuse previous logic when it comes to instructions. Then just detect loops and cut out the extra instructions before writing them to the game. In fact, it'd probably just be easier to modify your program so it does the rotated machine with all levels, just to keep it simple. |
You could improve chain levels by having the bot check if there's a (...) in the product, and rotate the product twice counter-clockwise. It'd also be beneficial to have the bot determine the pattern in order to reduce redundant commands.
The text was updated successfully, but these errors were encountered: