campweb´s einfaches aber gutes Wortschöpfungsskript [v0.4]

  • AntiSpeed, da kommt bloß blödsinn raus, meine Wörter kann man ja wenigstens auf Anhieb (meistens) noch ausprechen, und besonders Strucktur ist in den Wörtern auch nicht drin!


    Zitat

    aber diese Funktion ist die einzigste sinnvolle Version


    Was soll das?
    // Außerdem generiert das abwehcselnd Kons. und Vok. das hat doch keinen Sinn?

  • Sind eben FantasyNamen :rolleyes: . Guck dir mal die Namen von WOW-Server an ^^ . Ich hatte schon oft Wörter damit generiert, die es wirklicht gibt. Auf jeden Fall funktioniert es. Wollte dich nicht damit angreifen, sondern nur supporten.

    Nur keine Hektik - das Leben ist stressig genug

  • iwie klappts bei mir nicht.

    Also ansich schon. Aber es kommen nie Deutsche Wörter dabei raus^^

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Dateien = _DateienLaden() ;Es werden die 5 Dateien geöffnet und die Zeilen gezählt.
    Global $Dictionary
    _FileReadToArray(@scriptdir&"\data\dic.part", $Dictionary)

    [/autoit] [autoit][/autoit] [autoit]

    _Main()

    [/autoit] [autoit][/autoit] [autoit]

    _Beenden($Dateien)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Main()

    [/autoit] [autoit][/autoit] [autoit]

    Local $aRet, $t

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(10)
    $t = TimerInit()
    $aRet = _CreateWord($Dateien, $Dictionary, True)
    ConsoleWrite("Wort: "&$aRet[0]&@crlf&$aRet[2]&@crlf&$aRet[1]&@crlf&"Dauer:: " & Round(TimerDiff($t),2) & ' ms' & @CRLF & @CRLF)
    If _IsPressed("1B") Then Exit
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _CreateWord($Dateien, $Dictionary, $Wortpruefung)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Bridge = $Dateien[0][0]
    Local $Praefix = $Dateien[1][0]
    Local $Affix = $Dateien[2][0]
    Local $K = $Dateien[3][0]
    Local $V = $Dateien[4][0]
    Local $Param[10]
    Local $aRet[3]

    [/autoit] [autoit][/autoit] [autoit]

    $Param[0] = Random(0,1,1)
    $Param[1] = Random(0,1,1)
    $Param[2] = Random(1, $Dateien[0][1], 1)
    $Param[3] = Random(1, $Dateien[1][1], 1)
    $Param[4] = Random(1, $Dateien[2][1], 1)
    $Param[5] = Random(0,1,1)
    $Param[6] = Random(1, $Dateien[3][1], 1)
    $Param[7] = Random(0,1,1)
    $Param[8] = Random(1, $Dateien[3][1], 1)
    $Param[9] = Random(1, $Dateien[4][1], 1)

    [/autoit] [autoit][/autoit] [autoit]

    If $Param[0] = 1 Then
    Local $Part1 = FileReadLine($Praefix, $Param[9])&FileReadLine($V, $Param[6])
    Else
    Local $Part1 = FileReadLine($K, $Param[4])&FileReadLine($V, $Param[6])
    EndIf
    If $Param[1] = 1 Then
    $Part2 = FileReadLine($Bridge, $Param[2])&FileReadLine($V, $Param[8])&FileReadLine($Affix, $Param[3])
    Else
    $Part2 = FileReadLine($V, $Param[8])&FileReadLine($Affix, $Param[3])
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $sWord = $Part1&$Part2

    [/autoit] [autoit][/autoit] [autoit]

    _Replace($sWord) ; Die Ersetzungen werden vorgenommen

    [/autoit] [autoit][/autoit] [autoit]

    $aRet[0] = $sWord
    $aRet[1] = "Aus "&$Part1&"-"&$Part2&" enstanden!"

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Wortpruefung
    Case True
    SetError(0)
    _ArraySearch($Dictionary, $sWord)
    If @error Then
    $aRet[2] = "Fail !"
    Else
    $aRet[2] = "Ein deutsches Wort wurde generiert! #####"
    EndIf
    Case Else
    $aRet[2] = 'Wortprüfung nicht durchgeführt.'
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    Return $aRet
    EndFunc ;==> _CreateWord()

    [/autoit] [autoit][/autoit] [autoit]

    Func _DateienLaden()
    Local $aRet[5][2]
    $aRet[0][0] = FileOpen(@scriptdir&"\data\bri.part")
    $aRet[1][0] = FileOpen(@scriptdir&"\data\pre.part")
    $aRet[2][0] = FileOpen(@scriptdir&"\data\aff.part")
    $aRet[3][0] = FileOpen(@scriptdir&"\data\kon.part")
    $aRet[4][0] = FileOpen(@scriptdir&"\data\vok.part")

    [/autoit] [autoit][/autoit] [autoit]

    $aRet[0][1] = _filecountlines(@scriptdir&"\data\bri.part")
    $aRet[1][1] = _filecountlines(@scriptdir&"\data\aff.part")
    $aRet[2][1] = _filecountlines(@scriptdir&"\data\kon.part")
    $aRet[3][1] = _filecountlines(@scriptdir&"\data\vok.part")
    $aRet[4][1] = _filecountlines(@scriptdir&"\data\pre.part")

    [/autoit] [autoit][/autoit] [autoit]

    Return $aRet
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Beenden($Dateien)
    For $i = 0 To 4 Step 1
    FileClose($Dateien[$i][0])
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Replace(ByRef $sWord)
    $sWord = StringReplace($sWord, "oe", "ö")
    $sWord = StringReplace($sWord, "ue", "ü")
    $sWord = StringReplace($sWord, "ae", "ä")
    $sWord = StringReplace($sWord, "aa", "a")
    $sWord = StringReplace($sWord, "ee", "eh")
    $sWord = StringReplace($sWord, "ii", "i")
    $sWord = StringReplace($sWord, "oo", "o")
    $sWord = StringReplace($sWord, "uu", "u")
    $sWord = StringReplace($sWord, "ji", "i")
    $sWord = StringReplace($sWord, "ij", "j")
    $sWord = StringReplace($sWord, "kk", "ck")
    $sWord = StringReplace($sWord, "q", "qu")
    EndFunc

    [/autoit]

    (So gehts en bissl schneller und spuckt die Wörter in der Konsole aus.)

    lg
    Mars(i)

  • Danke Marsi, für so viel Übersichtlichkeit lässt man auch mal gerne die Kompaktheit weg ;)
    Hast du echt gut gemacht!
    Danke!