Programmier Lua Problemmm?
Finde einfach den Fehler nicht er soll angeblich in der Function "Anzeige" sein, zeile 22
1 Antwort
Nehmen wir einmal deine erste Funktion unter die Lupe.
Dort legst du ein Array an, welches drei Elemente beinhaltet und lässt in der darauffolgenden Zeile eine Zufallszahl zwischen 1 und 30 (beide inklusiv) erzeugen. Nun einmal angenommen, das Ergebnis ist 17: In der dritten Zeile würde dein Programm also versuchen, ein 17. Element aus dem Array zu fischen, welches aber nicht gibt. Das Ergebnis wäre demnach nil.
Diesen Fehler machst du bei all deinen Funktionen. In der Funktion Anzeige wird es dann knallen, wenn du versuchst, nil-Objekte mit Strings zu verbinden.
Du solltest also entweder deine Arrays auffüllen, sodass sie genügend Elemente haben oder, was du wohl eher beabsichtigst, die Intervalle für die Erzeugung der Zufallszahlen verringern. In der Funktion Angebot beispielsweise wäre der richtige Wert die 3.
Wenn du Werteauflistungen wie oben hast, geht es recht einfach:
local values = { 'a', 'b', 'c', 'd' }
print(values[math.random(#values)])
Der #-Operator liefert die Anzahl an Werten in values zurück. Das wäre hier 4, woraufhin die random-Funktion einen Wert zwischen 1 und 4 (beide inklusiv) generiert.
Wenn du allerdings eine Tabelle mit verschiedenen Keys hättest, wäre es etwas schwieriger, da du erst einmal alle Keys bräuchtest. Eine Option wäre es also, erst alle Keys zu holen und separat zu speichern.
local keys = {}
local index = #keys
for key, value in pairs(your_table) do
keys[index + 1] = key
end
print(your_table[keys[math.random(#keys)]])
Könnte man auch bei dem math.random ein table spezifizieren aus den dann die zahlen die in den table vorhanden sind eine zufällige ausgewählt wird?