Brettspiel-Problem

Mailyn

Erfahrenes Mitglied
Hi,
Ich wollte ein kleines Brettspiel programmieren, stieß aber auf folgendes Problem:

Gegeben:
Insgesamt 6 Felder: Feld(1), Feld(2) ....
Aktuelle Position: Feld(4)
Gewürfelt: 5

Wenn ich jetzt einfach 4 + 5 addieren würde, käme 9 raus, da es aber kein Feld 9 gibt, muss ich das irgendwie regeln, dass er dann auf Feld 3 ankommt. Aber wie?

Hier der bisherige code

Code:
Dim Feld_Spieler1 As String
 
Private Sub Command1_Click()
'Würfeln:
            Dim würfel As String
            Randomize
            würfel = Int((5 * Rnd) + 1)
'Benachrichtigung:
            MsgBox "Du hast eine " & würfel & " gewürfelt!", , "Spieler 1"
            MsgBox "Das bedeutet, dass du jetzt auf Feld " & CDbl(Feld_Spieler1) + CDbl(würfel) & " gehen musst!"
'Spielfigur bewegen:
            Spielfigur1.Left = Feld(CDbl(Feld_Spieler1) + CDbl(würfel)).Left
            Spielfigur1.Top = Feld(CDbl(Feld_Spieler1) + CDbl(würfel)).Top
'Aktuelles Feld aktualisieren:
            Feld_Spieler1 = CDbl(Feld_Spieler1) + CDbl(würfel)
'Benachrichtigung:
            MsgBox "Du stehst jetzt auf Feld " & Feld_Spieler1
'Entsprechende Ereignisse auslösen:
'...
End Sub

thx 4 help!

Gruß
Mailyn
 
Zuletzt bearbeitet:
Hi!
Würd mal sagen 9 minus 6. ;)

Hier mal schematisch:

Code:
wuerfelwert = 5
position = 4
maxfelder = 6

neuposition = wuerfelwert + position

if  neuposition > maxfelder then
    neueposition = neueposition - maxfelder
end if

Grüße,
Jacka
 
Ansonsten bietet sich auch Mod an:
Visual Basic:
wuerfelwert = 5
position = 4
maxfelder = 6

neuposition = (wuerfelwert + position) Mod maxfelder


Der Doc!
 
Zurück