Array Frage

  • Hey,

    5 Positionen (graphisch so nebeneinander: [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]) können jeweils eine zufällige von insgesamt x Farben annehmen.

    Ich möchte jetzt (mit Hilfe eines Arrays, glaube ich) checken, ob entweder
    - Positionen 1&2, oder
    - Positionen 1-3, oder
    - Positionen 1-4, oder
    - Positionen 1-5
    die gleiche Farbe haben.

    Ich weiß gerade nicht wie ich anfangen soll mit der Überprüfung (theoretisch schon, nur Code-technisch nicht). Kann mir bitte jemand einen Tipp geben?

    Einmal editiert, zuletzt von pete_gzome (17. Mai 2011 um 17:39)

  • Also wenn ich das richtig verstanden hab, hast du in einem Array 5 Farben.
    Und möchtest jetz wissen ob 2 davon den gleichen wert tragen.

    [autoit]


    For $x = 2 to Ubound($Array) ;ander den x wert jenach startwert des Arrays

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

    If $Array[1] = $Array[$x] Then MsgBox(0,"","");Tu whatever

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

    Next

    [/autoit][autoit][/autoit][autoit][/autoit]
    • Offizieller Beitrag
    [autoit]

    If $array[1] = $array[2] then

    [/autoit]

    Usw.

    Zitat

    Also wenn ich das richtig verstanden hab, hast du in einem Array 5 Farben.
    Und möchtest jetz wissen ob 2 davon den gleichen wert tragen.


    [autoit]

    For $x = 2 to Ubound($Array)

    [/autoit]


    Edit: @Omasgestock14, was hat jetzt dein Beispiel mit einer Abfrage zu tun?
    Ausserdem warum fängst du deine Schleife mit 2 an, bis Ubound? Das wird dir 100 % mit einem Error belohnt.
    Ubound -1 wäre schon eher eine Lösung, obwohl das ja nichts mit der Frage zu tun hat.

  • danke fr die antworten, habe es schon so gemacht:

    [autoit]

    If $reels[0] = $reels[1] Then
    If $reels[1] = $reels[2] Then
    If $reels[2] = $reels[3] Then
    If $reels[3] = $reels[4] Then
    ; 5 richtige
    Else
    ; 4 richtige
    EndIf
    Else
    ; 3 richtige
    EndIf
    Else
    ; 2 richtige
    EndIf
    Else
    EndIf

    [/autoit]

    MfG

  • Und die Kurzversion:

    [autoit]

    Local $i, $array[5] = [1, 1, 1, 2, 2]
    For $i = 1 To UBound($array)-1
    If $array[$i-1] <> $array[$i] Then ExitLoop
    Next
    MsgBox(0, '', "array[0] bis array[" & ($i-1) & "] sind gleich")

    [/autoit]