Grund wieso Miningturtle Programm nicht geht?
Ich habe mir ein Mining Turtle Programm programmiert (Programmiersprache: Lua)
bei dem die Turtle ihre Sachen zurück in eine normale Kiste tuen soll. Das Programm funktionierte plötzlich einfach nicht mehr.
Mining Turtle Programm: https://pastebin.com/vSK5QF04
Ergänzung nach 57 Minuten
Weiß jemand wo der Fehler ist?
Ergänzung nach 58 Minuten
Ich spiele die Mod in der 1.12.2
2 Antworten
Gibt es nen line-error? Könnte sein das da zu viele end stehen
Deine Einrückungen (sofern das welche sein sollen) sind schlecht. Eigentlich dienen Einrückungen dazu, Start- und Endpunkte von Blöcken sichtbar zu machen.
Beispiel:
function D()
if turtle.detect() then
turtle.dig()
end
end
Bei dir gibt es aber auch welche, wenn sich der Code in keinem gesonderten Kontext befindet.
Mit einer korrekten Einrückung hättest du erkennen können, dass in den Zeilen 59, 66, 70 und 77 jeweils end-Anweisungen stehen, die aber keinen startenden Partner besitzen. Entferne diese Zeilen also.
Des Weiteren wäre es deinem Programm zuträglich, wenn du Funktionen mit aussagekräftigen Namen ausstatten würdest. Was D oder PD tun sollen, ist auf den ersten Blick nicht ersichtlich. Man muss erst ihre Definitionen lesen. Positive Vorbilder hingegen sind dig oder forward. Man liest die Anweisung und weiß sofort, was sie machen wird.
Orientiere dich bei der Benennung an üblichen Code-Konventionen: Starte Funktionsnamen mit einem Kleinbuchstaben und nutze vorzugsweise Verben / Tätigkeitsbeschreibungen (swim, runAroundTheBlock, eat, take, ...).
Das Programm funktionierte plötzlich einfach nicht mehr.
An dieser Stelle der nächste Tipp. Mit so einer Fehlerbeschreibung kommst du nicht weit, denn sie sagt nicht viel aus. Der erste Schritt, um ein Problem zu lösen, ist der, ihn zu beschreiben. Und zwar richtig.
Du siehst zum einen ein Verhalten (vielleicht eine weiße Fläche / Fehlermeldungen / was auch immer) und kannst dies mit dem Verhalten vergleichen, welches du eigentlich erwartet hättest. Anhand dessen lässt sich Suchradius auch eingrenzen. Wenn sich die Schildkröte endlos im Kreis dreht, kannst du den Startpunkt für dieses Verhalten bestimmen und mit deinem Code abgleichen. Wenn gar nichts gezeichnet wird, kannst du den Programmverlauf bis zum ersten Zeichenvorgang verfolgen und schauen, ob dein Programm Syntaxfehler enthält.
PS.: Wenn du eine Frage zu Lua hast, dann setze das doch auch in die Tags. Der Tag Java hingegen hat nichts mit der Frage zutun.