Foldit
Advertisement

Hier einige generelle Ratschläge zum Scripten mit Lua:


1.: Kommentiere Dein Script mit Bemerkungen. Bemerkungen beginnen mit -- (zwei Minuszeichen) und einem Leerzeichen.


2.: Manchmal ist es leichter, den Code erst einmal "geschlossen" zu schreiben, also mit gechlossenen Klammern () anzufangen, oder zum Beispiel for-schleifen so zu schreiben:

for k=1,x do

end

Erst so, und dann mit dem eigentlichen Inhalt füllen. Das heißt, Du schreibst das Script "von außen nach innen", und dann von oben nach unten. Dadurch ist immer gewährleistet, daß jede Funktion ihr "end" hat und geschlossen ist.


3.:Benutze den print()-Befehl, um auszugeben, was das Script gerade tut.


3a.:Benutze ihn auch, um z.B. eine Verbesserung der Punkte anzuzeigen:

function test()
    local scoreStart = get_score()
    -- hier das, was getan werden soll
    print('Script abgeschlossen. Punktdifferenz zu vorher: ', get_score() - scoreStart)
end



4.:Arbeite nicht immer mit der besten Punktzahl/dem besten Ergebnis (very best), sondern mit recent best. Vieleicht gibt es Puzzle-Zwischenlösungen, die nachher sogar mehr Punkte ergeben. Benutze stattdessen diese Code um Zwischenergebnisse zu speichern, falls sie besser sind:

local scoreRecentBest = 0

function SetRecentBest()
    local score = get_score()
    if score > scoreRecentBest then
        scoreRecentBest = score
        print('Neue Bestpunktzahl=', scoreRecentBest)
        reset_recent_best()
    end
end

Lade dann am Ende des Scripts die beste Lösung mit restore_recent_best(). Wenn eine andere Position gespeichert werden soll ,die nicht die beste ist, benutze die Quicksave Slots Quicksave(x) bzw Quickload(x), z.B Quicksave(1) am Anfang des Script und Quickload(1), um den ursprünglichen Zustand wieder herzustellen.

Advertisement