Kleines Spiel. Brauche Hilfe

  • Hallo,

    ich habe versucht ein kleines Spiel zu erstellen so ähnlich wie Monopoly.
    Jetzt habe ich ein kleines Problem undzwar:
    Wenn ich z.B. auf Los stehe und dann eine 12 hab wie bekomme ich es hin das mein Spielstein um die Ecke nach oben läuft und nicht immer weiter gerade aus?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    HotKeySet("{ESC}","_Exit")
    Func _Exit()
    Exit
    EndFunc

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

    HotKeySet("{space}","wurfeln")

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

    $91=600
    $92=630
    $93=45
    $94=45

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

    GUICreate("Meine Gui",700,700)
    $pic1 = GUICtrlCreatePic("feld.jpg", 0, 0,700,700)
    $pic2 = GUICtrlCreatePic("stein.jpg", 600, 630,45,45)

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

    GUISetState()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd

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

    func wurfeln ()
    $wurf = Random(1,12,1)
    $laufen = $wurf * 54
    MsgBox(1,"Gewürfelt","Du hast eine "&$wurf&" gewürfelt!")
    GUICtrlSetPos ($pic2,$91-$laufen,$92,$93,$94)
    $91=$91-$laufen
    endfunc

    [/autoit]


    MfG

    2 Mal editiert, zuletzt von Timiboy (11. Dezember 2010 um 19:50)

  • Ich hab leider auch keine Bilder, aber wie wäre es wenn du jedem Feld eine Zahl zuweist, 1,2,3,4,5... und die Felder dann so nennst in 2-d Variablen mit den Koordinaten wo die Figur dann drauf soll? Und wenn du über Los gehst wird dein Postition wieder auf 0 bzw 1 (wie du willst) gesetz.
    EDIT://Wenn du die Bilder so drüber malst, kannst du auch mit ControlgetPos die X und Y Koord. bekommen und die in einer For -Schelife in eine Array Speichern.

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

    Einmal editiert, zuletzt von BadBunny (11. Dezember 2010 um 09:15)

  • Hallo Timiboy,
    hier ein Beispiel für das, was BadBunny angesprochen hatte:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    HotKeySet("{ESC}", "_Exit")
    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    HotKeySet("{space}", "wurfeln")

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

    Global $felder[13][2] = [[300, 50],[300, 100],[300, 150], [300, 200], [300, 250], [300, 300], [300, 350], [300, 400], [300, 450], [300, 500], [300, 550], [300, 600], [300, 650]]
    Global $aktuelles_feld = 0

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

    GUICreate("Meine Gui", 700, 700)
    $pic1 = GUICtrlCreatePic("url.jpg", 0, 0, 700, 700)
    $pic2 = GUICtrlCreatePic("stein.jpg", 600, 630, 45, 45)

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

    GUISetState()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd

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

    Func wurfeln()
    $wurf = Random(1, 6, 1) + Random(1, 6, 1)
    MsgBox(1, "Gewürfelt", "Du hast eine " & $wurf & " gewürfelt!")
    If $aktuelles_feld + $wurf > 12 Then
    $aktuelles_feld = $aktuelles_feld + $wurf - 13
    Else
    $aktuelles_feld += $wurf
    EndIf
    GUICtrlSetPos($pic2, $felder[$aktuelles_feld][0], $felder[$aktuelles_feld][1])
    EndFunc ;==>wurfeln

    [/autoit]


    Außerdem war ein kleiner Fehler beim bestimmen der gewürfelten Zahl, denn das Würfeln mit 2 Würfeln ist kein Laplace-Experiment (d.h., dass die Ergebnisse nicht gleich wahrscheinlich sind). Deswegen musst du das so schreiben:

    [autoit]

    Random(1, 6, 1) + Random(1, 6, 1)

    [/autoit]

    o
    L_/
    | ||

    This ist janaiky. Copy janaiky into your signature to help him on the war to the Weltherrschaft.

    2 Mal editiert, zuletzt von janaiky (11. Dezember 2010 um 11:06)

  • Mir ist gerade eingefallen das du noch mehr an die 2-D Array hängen musst, den Preis, Die Anzahl der Häuser und sowas.

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Wieso sollen denn die Positionen in einem Array gespeichert werden??? Man muss doch halt nur immer jeweils addieren. Und es heißt übrigens wuerfeln, nicht wurfeln.

  • @m-obi Wieso nur addieren? Man geht doch in einem Viereck, nicht nur geradeaus. Und außerdem braucht man doch sowieso einen Array um die Preise und alles zu speichern.

    o
    L_/
    | ||

    This ist janaiky. Copy janaiky into your signature to help him on the war to the Weltherrschaft.

  • Deswegen hab ich ja geschrieben jeweils addieren, je nachdem in welche Richtung. In dem Array müsstest du auch die Position speichern, wenn mal zwei oder drei oder vier drauf sind, das wären dann 10 Positionen, viel Spass beim schreiben.