Also ich habe diesen Code hier zu einer kleinen Straße geschrieben, der sich natürlich auf eine große erweitern lässt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| i:=1; i:=i+1; for i:=1 to 3 do If (a=i) or (b=i) or (c=i) or (d=i) or (e=i) and (a=i+1) or (b=i+1) or (c=i+1) or (d=i+1) or (e=i+1) and (a=i+2) or (b=i+2) or (c=i+2) or (d=i+2) or (e=i+2) and (a=i+3) or (b=i+3) or (c=i+3) or (d=i+3) or (e=i+3) then SGUnten.Cells[0,3]:='30'; |
Nur leider sagt er immer, daß es eine kleine Straße ist, egal welchen Ausfall die Würfel haben, auch bei 3-3-4-4-4 z.b.
Woran liegt das und wie kann ich es beheben? Weil normalerweise müsste er die Schleife durchmachen, bis i=3 ist, dann die erste Zeile als true abstempeln (3 ist ja dabei), dann die zweite Zeile auch (i+4 -> 4 ist dabei -> true), aber dann müsste er false sagen, weil 5 (i+2 -> 3+2) ja gar nicht dabei ist. Trotzdem kommt ne kleine Straße bei heraus. Ausnahme ist 0-0-0-0-0 (Startwürfel), da passiert nix.