Verdrehen von Wörtern
Posted: 30 Sep 2013, 14:00
Hab hier mal aus Spaß eine kleine Funktion geschrieben, die Wörter zufällig verdreht. Vielleicht kanns ja mal jemand brauchen:
Falls ihr was verbessern wollt könnt ihr mir das gerne mitteilen.
Level-Parameter:
Der Level-Parameter ist relativ nutzlos, ich wollte nur schauen, ob sein Wert einen Unterschied macht.
Zur Funktionsweise:
Zuerst wird geprüft, ob das Wort mindestens 2 Zeichen hat, sonst kann man es nicht verdrehen und es kommt wieder im Originalzustand zurück. Dann wird es in die einzelnen Buchstaben aufgeteilt, nun wird pro einzelnem Zeichen eine Zufallszahl zwischen 0 oder 1 gebildet, diese entscheidet, ob der aktuelle Buchstabe vor oder nach dem Aktuellem landet. Das geht level mal vonstatten.
Nun wird noch kurz überprüft, ob das jetzt erhaltene das gleiche ist wie vorher, dann wird das Ganze wiederholt.
SAPlayer
Code: Select all
mixWord(input, level=3){
if(StrLen(input) <= 1)
return input
chars := Object()
in := input
chars_num := StrLen(in)
loop{
loop, %level%
{
loop, Parse, in
chars[A_Index] := A_LoopField
output := ""
loop, %chars_num%
{
Random, rand, 0, 1
if(rand = 0)
output .= chars[A_Index]
else
output := chars[A_Index] output
}
in := output
}
} until output != input
return output
}
Level-Parameter:
Der Level-Parameter ist relativ nutzlos, ich wollte nur schauen, ob sein Wert einen Unterschied macht.
Zur Funktionsweise:
Zuerst wird geprüft, ob das Wort mindestens 2 Zeichen hat, sonst kann man es nicht verdrehen und es kommt wieder im Originalzustand zurück. Dann wird es in die einzelnen Buchstaben aufgeteilt, nun wird pro einzelnem Zeichen eine Zufallszahl zwischen 0 oder 1 gebildet, diese entscheidet, ob der aktuelle Buchstabe vor oder nach dem Aktuellem landet. Das geht level mal vonstatten.
Nun wird noch kurz überprüft, ob das jetzt erhaltene das gleiche ist wie vorher, dann wird das Ganze wiederholt.
SAPlayer