Hallo Welt zu "H.... W..."

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von cannap.

    Hallo Welt zu "H.... W..."

    HI ich arbeite zur Zeit an einem IRC QUIZ bot nun habe ich das Problem das ich nicht genau weiss wie ich die Lösungsvorschläge erstellen kann in der Art von:

    Quellcode

    1. N....f....
    2. .o....r...
    3. ..r....i..
    4. Nordafrika


    Meine Funktion schaut bis jetzt so aus

    VB.NET-Quellcode

    1. Public Function CreateHints(ByVal word As String)
    2. Dim sReturn As String
    3. Dim str() As Char
    4. str = word.ToArray
    5. For i As Long = 0 To UBound(str) - 1 Step 1
    6. If i Mod 5 Then
    7. str(i) = "."
    8. End If
    9. Next
    10. 'Array zusammen setzen
    11. sReturn = String.Join("", str)
    12. irc.SendMessage(SendType.Message, channel, sReturn)
    13. Return sReturn
    14. End Function
    15. #End Region

    Schonmal ein Schritt weiter
    Update:

    Quellcode

    1. Hallo Welt
    2. wird zu
    3. H........t




    Und in Autoit konnte ich das so lösen

    Quellcode

    1. Func _Hint($iHint, $sPoints)
    2. $points = $sPoints
    3. Local $aLetters[1], $i, $sReturn = ""
    4. $aLetters = StringSplit($sAnswer, "", 2)
    5. For $i = 0 To UBound($aLetters) - 1 Step 1
    6. If Mod($i - $iHint, 5) Then $aLetters[$i] = "."
    7. $sReturn &= $aLetters[$i]
    8. Next
    9. ;$sReturn = StringTrimRight($sReturn, 1)
    10. _Send($sReturn)
    11. EndFunc ;==>_Hint

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „cannap“ ()

    Dat klappt schon mal danke

    Quellcode

    1. [15:08] <qp> !hint Hallo Welt das ist bisschen länger und nur in test
    2. [15:08] <^quiz> H.... .... ....i....i....e....n....u....u.... ...t


    aber jetzt komme ich nicht drauf

    wie ich das um eins verrücken kann also das er dann nicht mehr
    H... macht sondern
    .a.. usw.

    VB.NET-Quellcode

    1. If i - 1 Mod 5 <> 0 Then
    bewirkt:
    .a...............................................t
    ah fuck danke ^^ aber irgendwie stimmt immer noch was nicht genau :/

    also beim Normalen:

    VB.NET-Quellcode

    1. For i As Long = 0 To UBound(str) - 1 Step 1
    2. If (i - 0) Mod 5 <> 0 Then
    3. str(i) = "."
    4. End If

    [15:48] <qp> !hint Unreal Tournament
    [15:48] <^quiz> U....l....r....nt
    da müsste er
    U....l....r....n. machen aber ich weiss ned warum nicht^^
    For i As Long = 0 To UBound(str) - 1 Step 1

    As Long ist 64 Bit int, so größ können Char Arrays meines Wissens nicht mal werden-> As integer...
    UBound ist eine veraltete VB 6(und älter) Funktion und sollte deshalb nicht verwendet werden-> Length-Eigenschaft
    Step 1 ist unnötig ;):

    VB.NET-Quellcode

    1. For i As Integer = 0 To str.Length - 1
    2. If (i Mod 5) <> 0 Then
    3. str(i) = "."
    4. End If


    Beim anderen hab ich jetzt grad keine Ahnung^^
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Wenn ich das so ändere wie du macht er folgendes:
    [16:05] <qp> !hint Hallo Welt fwefweuif
    [16:05] <^quiz> H.... .... ....w....


    /e Wenn ich Ubound wieder reinmache gehts wieder seltsam

    So schaut es aus nun

    VB.NET-Quellcode

    1. 'Erstelle die lösungs vorschläge
    2. Public Function CreateHints(ByVal word As String)
    3. Dim sReturn As String
    4. Dim str() As Char
    5. str = word.ToArray
    6. For i As Integer = 0 To UBound(str) - 1
    7. If (i Mod 5) <> 0 Then
    8. str(i) = "."
    9. End If
    10. Next
    11. 'Array zusammen setzen
    12. sReturn = String.Join("", str)
    13. irc.SendMessage(SendType.Message, channel, sReturn)
    14. Return sReturn
    15. End Function


    Ausgabe :
    16:10] <qp> !hint Hallo Welttegherge
    [16:10] <^quiz> H.... ....t....r.e


    [16:13] <qp> !hint Hallo Velo2
    [16:13] <^quiz> H.... ....2
    [16:13] <qp> !hint Hallo Velo23
    [16:13] <^quiz> H.... ....23 <- FAIL
    [16:13] <qp> !hint Hallo Velo234
    [16:13] <^quiz> H.... ....2.4 <- FAIL
    [16:13] <qp> !hint Hallo Velo2345
    [16:13] <^quiz> H.... ....2..5 < - FAIL
    [16:13] <qp> !hint Hallo Velo23456
    [16:13] <^quiz> H.... ....2...6 <- FAIL
    [16:14] <qp> !hint Hallo Velo234567
    [16:14] <^quiz> H.... ....2....7
    [16:15] <qp> !hint Hallo Velo2345678
    [16:15] <^quiz> H.... ....2....78 <- FAIL :/


    Ah es geht nun JUHU

    VB.NET-Quellcode

    1. Public Function CreateHints(ByVal word As String)
    2. Dim sReturn As String
    3. Dim str() As Char
    4. str = word.ToArray
    5. For i As Integer = 0 To str.Length - 1
    6. If (i Mod 5) <> 0 Then
    7. str(i) = "."
    8. End If
    9. Next
    10. 'Array zusammen setzen
    11. sReturn = String.Join("", str)
    12. irc.SendMessage(SendType.Message, channel, sReturn)
    13. Return sReturn
    14. End Function



    Noch eben die andere testen

    So klappt alles ich danke euch!è

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „cannap“ ()