soo...
ich habe ein kleines problem mit meinem aktuellen projekt: der simulation von evolution
also dateien die sich selbst vermehren mit attributen die nach dem zufallsprinzip verändert werden und durch "natürliche"auslese sich vorgegebenen parametern annähern
klingt doof is aber so
also ich versuche kurz das bisherige zu erklären
ich habe ein script dass mir in einem beliebigen ordner einen ordner "lebewesen"random erstellt und in diesem ordner die exe um sich selbst mit veränderten atriibuten zu kopieren und eine attrib.txt wo die atrribute gespeichert sind.(attribute sind bis jetzt nur 3 zahlen ohne jede bedeutung)
nun soll mein script diese werte aller lebewesen auslesen nach einem geweissen schema verrechnen und die "schlechten" löschen und die "guten" aufrufen, damit sie sich "vermehren".
mein fehler liegt jetzt in der for schleife die die schlechten löschen soll.
wenn ich jedoch den kleinsten wert bestimmen will bringt mir _ArrayMinIndex den wert -1 :wacko:
Spoiler anzeigen
HotKeySet("ü","strt")
#include
#include
#include
while 1
Sleep(100)
WEnd
Func strt()
$size=DirGetSize("C:\Dokumente und Einstellungen\Besitzer\Desktop\EVOLUTIONSBOTS",1);_liste aller lebewesen erstellen________
$anzahl = $size[2]
dim $file[$anzahl]
dim $line1[$anzahl]
dim $line2[$anzahl]
dim $line3[$anzahl]
Dim $wert[$anzahl]
FileChangeDir("C:\Dokumente und Einstellungen\Besitzer\Desktop\EVOLUTIONSBOTS")
$fils=FileFindFirstFile("lebewesen*")
for $q=1 to $anzahl
$file[$q-1] = FileFindNextFile($fils)
Next;__________
for $q=1 to $anzahl;_liste aller "überlebenswerte" erstellen________
FileChangeDir("C:\Dokumente und Einstellungen\Besitzer\Desktop\EVOLUTIONSBOTS\"&$file[$q-1])
$lese=FileOpen("atribs.txt",0)
$line1[$q-1] = number(FileReadLine($lese,1))
$line2[$q-1] = number(FileReadLine($lese,2))
$line3[$q-1] = number(FileReadLine($lese,3))
Select
Case $line1[$q-1] > $line2[$q-1] And $line1[$q-1] > $line3[$q-1]
$wert[$q-1] = $line1[$q-1] - $line2[$q-1] - $line3[$q-1]
Case $line2[$q-1] > $line1[$q-1] And $line1[$q-1] > $line3[$q-1]
$wert[$q-1] = $line2[$q-1] - $line1[$q-1] - $line3[$q-1]
Case $line3[$q-1] > $line2[$q-1] And $line1[$q-1] > $line1[$q-1]
$wert[$q-1] = $line3[$q-1] - $line2[$q-1] - $line1[$q-1]
EndSelect
Next;__________
for $w=round($anzahl/2) to $anzahl;schlechte lebewesen töten_______
$lowy=_ArrayMinIndex($wert);<------fehler
DirRemove("C:\Dokumente und Einstellungen\Besitzer\Desktop\EVOLUTIONSBOTS\"&$file[$lowy])
$wert=_ArrayDelete($wert,$lowy)
Next
EndFunc
while 1
Sleep(100)
WEnd
Func end()
while 1
Sleep(100)
WEnd
EndFunc