Posted 24 February 2013 - 07:16 AM
I've noticed a couple problems, and a couple places where it could be improved.
First, documentation! Probably the worst was the turtle inventory needs. What's listed in the post here, what the program requests, and what the program actually ends up using are all different - specifically for the "decor" parts.
Which leads to the first problem. Of course I simply placed the turtle on the ground and started to run it. It was not stated the turtle must be one block above the ground, or that you must dig out a 11x11x1 "plot" for it to build in.
Instead, it started to dig up dirt blocks to make room for the floor, however the turtle also picked up these dirt blocks and once the first slot was empty that is where they went. It then proceeded to build part of the floor out of dirt.
Then, it built solid walls using slots 3-6, finished the house, and after placing some furniture it went back inside to dig back out the walls it just placed to make windows. I should note the turtle stopped just before placing the ceiling blocks to request I add in more blocks... Only to later obtain the blocks it needed from the walls it shouldn't have placed.
Then the block pickup problem happened, and instead of placing glass for the windows, it was placing the blocks it just broke out of the walls a moment before...
I would suggest that when building the walls, simply leave the gaps open for where the windows will go. This way it won't need refilling to build the ceiling, and won't need to do 3x the work (place wall, break wall, place glass)
Another suggestion is to first display a message about fueling up, say "If your turtle needs fuel, place X coal in slot 1 and hit enter to refuel"
Upon hitting enter, it uses the full stack in slot 1 to fuel.
Then clear the screen and prompt to fill it with blocks, with a "Hit enter to begin" message at the end so the turtle doesn't run off and out of reach while you are still filling it up with blocks.
The only thing I can think of for the dropped block pickup problem would be to keep track of the slot number its on and not move backwards.
What I mean is, for example floors are slots 1-2. Once it uses up slot 1 and moves to slot 2, blocks it picks up will end up in slot 1. Once it moved to slot 2, it shouldn't go back to slot 1 even if there are now blocks in it. Same with the walls in 3-6 and glass in 7-9.
I wish turtles had better inventory management built in ;}
Despite the few small issues, this program is still great and has a lot of potential. Thank you, and good work!