• So, jetzt bin ich mal mit ne'm GDI+ Spiel dran ;)
    Ist ein ganz normales Mühlespiel für 2 Personen, was (wie ich finde) ganz nett geworden ist
    Es gibt außerdem noch einen kleinen Entwicklermodus. Ich hab den einfach mal drinnen gelassen...

    Changelog

    - 26.6.2010: Release
    - 26.6.2010: Spielsteingrafikqualität erhöht -> Danke Name22
    - 27.6.2010: Steine bewegen sich grafisch
    - 27.6.2010: Gibt nun eine Version mit gezeichnetem Spielbrett

    ToDo

    - Spielbrett mit GDI+ <-- Siehe Edit
    - Steine bewegen sich grafisch
    - Startmenü
    - Computergegner 8|


    Kritik ist (wie immer) erwünscht!

    P.S.: Mit ESC kann man markierte Steine wieder abwählen

    Edit: Dank yxyx gibts jetzt ne Version, die das Mühlefeld selber zeichnet:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=windmill.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.6.1
    Author: Cartan12

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

    Script Function:
    Ein einfaches Mühlespiel in GDI+

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

    #ce ----------------------------------------------------------------------------
    ;include
    #include <GDIP.au3>
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    HotKeySet("{ESC}", "_abwaelen")
    Global $debug = 0 ;Entwickler Modus ^^
    Global $Geschwindigkeit = 1.5 ;Hier könnt ihr die Geschwindegkeit der Steine einstellen
    Global $hotkey = 1
    Global $x = 18, $y = 18, $heigh = 650, $widht = 600, $ausgewaehlt = False, $bk, $player = 0, $anderer_player = 1, $muehle = 0, $feld_alt = 0, $verschiebt = 0, $stein_verschiebt
    Global $steine[2] = [9,9], $steine_spielfeld[2] = [0, 0], $steine_vorhanden[2] = [1, 1]
    Global $fields[24], $field_ausgewaehlt[24], $muehle_feld_aktiv[16]
    For $i = 0 To 15
    $muehle_feld_aktiv[$i] = 0
    Next
    For $i = 0 To 23
    $fields[$i] = 0
    $field_ausgewaehlt[$i] = 0
    Next
    Global $fieldpos[24][2] = [[6, 6],[270, 6],[538, 6], _;0,1,2
    [104, 104],[270, 104],[438, 104], _;3,4,5
    [202, 202],[270, 202],[340, 202], _;6,7,8
    [6, 270],[104, 270],[202, 270],[340, 270],[438, 270],[538, 270], _;9,10,11,12,13,14
    [202, 340],[270, 340],[340, 340], _;15,16,17
    [104, 438],[270, 438],[438, 438], _;18,19,20
    [6, 538],[270, 538],[538, 538]];21,22,23
    Global $muehle_feld[16][3] = [[0, 1, 2],[3, 4, 5],[6, 7, 8],[9, 10, 11],[12, 13, 14],[15, 16, 17],[18, 19, 20],[21, 22, 23], _
    [0, 9, 21],[3, 10, 18],[6, 11, 15],[1, 4, 7],[16, 19, 22],[8, 12, 17],[5, 13, 20],[2, 14, 23]]
    Global $zugmoeglichkeiten[32][2] = [[0, 1],[1, 2], _
    [3, 4],[4, 5], _
    [6, 7],[7, 8], _
    [9, 10],[10, 11],[12, 13],[13, 14], _
    [15, 16],[16, 17], _
    [18, 19],[19, 20], _
    [21, 22],[22, 23], _
    [0, 9],[9, 21], _
    [3, 10],[10, 18], _
    [6, 11],[11, 15], _
    [1, 4],[4, 7],[16, 19],[19, 22], _
    [8, 12],[12, 17],[5, 13],[13, 20], _
    [2, 14],[14, 23]]
    Global $imgpfad = @ScriptDir & "\Pic\"
    _GDIPlus_Startup()

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

    $bk = _GDIPlus_ImageLoadFromFile($imgpfad & "muehle.png")

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

    OnAutoItExitRegister("_exit")
    Opt("MouseCoordMode", 0)
    Opt("GUIOnEventMode", 1)
    $GUI = GUICreate("Mühle", $widht, $heigh)
    ;~ WinSetTrans($GUI,"",90)
    GUISetBkColor(0xFFFFFF)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUIRegisterMsg($WM_PAINT, "WM_PAINT")

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

    $graphic = _GDIPlus_GraphicsCreateFromHWND($GUI)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($widht, $heigh, $graphic)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
    _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 2)

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

    $brush_red = _GDIPlus_BrushCreateSolid(0xFFFF0000)
    $brush_blue = _GDIPlus_BrushCreateSolid(0xFF0000FF)
    $brush_bk = _GDIPlus_BrushCreateSolid(0xFF35C3C8)
    $pen_muehle = _GDIPlus_PenCreate(0xFF000000,7)

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

    GUISetState()

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

    While 1
    Sleep(10)
    If WinActive($GUI) Then
    If Not $hotkey Then HotKeySet("{ESC}", "_abwaelen")
    If _IsPressed(01) Then
    While _IsPressed(01)
    Sleep(10)
    WEnd
    _checkMouseclick()
    EndIf
    Else
    HotKeySet("{ESC}")
    $hotkey = 0
    EndIf
    If $debug Then
    $pos = GUIGetCursorInfo($GUI)
    ToolTip($pos[0] & " " & $pos[1],0,0)
    EndIf
    WEnd

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

    Func _checkMouseclick()
    Local $pos = GUIGetCursorInfo($GUI), $temp = 0
    If Not $muehle Then
    For $i = 0 To 23
    Local $temp_X = $fieldpos[$i][0] + 55, $temp_Y = $fieldpos[$i][1] + 55
    If $pos[0] > $fieldpos[$i][0] And $pos[1] > $fieldpos[$i][1] And $pos[0] < $temp_X And $pos[1] < $temp_Y And $fields[$i] = 0 And $steine_vorhanden[$player] = 1 Then
    $fields[$i] = $player + 1
    $steine[$player] -= 1
    $steine_spielfeld[$player] += 1
    If $steine[$player] = 0 Then $steine_vorhanden[$player] = 0
    If Not _checkMuehle() Then _changePlayer()
    _WinAPI_RedrawWindow($GUI, 0, 0, $RDW_INTERNALPAINT)
    ElseIf $pos[0] > $fieldpos[$i][0] And $pos[1] > $fieldpos[$i][1] And $pos[0] < $temp_X And $pos[1] < $temp_Y And $fields[$i] = $player + 1 And $steine_vorhanden[$player] = 0 And $ausgewaehlt = 0 Then
    $field_ausgewaehlt[$i] = 1
    $feld_alt = $i
    $ausgewaehlt = 1
    _WinAPI_RedrawWindow($GUI, 0, 0, $RDW_INTERNALPAINT)
    ElseIf $pos[0] > $fieldpos[$i][0] And $pos[1] > $fieldpos[$i][1] And $pos[0] < $temp_X And $pos[1] < $temp_Y And $fields[$i] = 0 And $steine_vorhanden[$player] = 0 And $ausgewaehlt = 1 Then
    If $steine_spielfeld[$player] = 3 Then
    $fields[$feld_alt] = 0
    $fields[$i] = $player + 1
    $field_ausgewaehlt[$feld_alt] = 0
    $ausgewaehlt = 0
    If Not _checkMuehle() Then _changePlayer()
    _WinAPI_RedrawWindow($GUI, 0, 0, $RDW_INTERNALPAINT)
    Return
    EndIf
    For $k = 0 To 31
    If $zugmoeglichkeiten[$k][0] == $feld_alt Or $zugmoeglichkeiten[$k][1] == $feld_alt Then
    If $zugmoeglichkeiten[$k][0] == $i Or $zugmoeglichkeiten[$k][1] == $i Then
    $l = 0
    $fields[$feld_alt] = 0
    $field_ausgewaehlt[$feld_alt] = 0
    $ausgewaehlt = 0
    If $fieldpos[$feld_alt][0] = $fieldpos[$i][0] Then
    If $feld_alt>$i Then
    Do
    $temp = WM_PAINT_special($l,$feld_alt,$i,$player,0)
    $l += $Geschwindigkeit
    Until $temp <= $fieldpos[$i][1]
    Else
    Do
    $temp = WM_PAINT_special($l,$feld_alt,$i,$player,0)
    $l += $Geschwindigkeit
    Until $temp >= $fieldpos[$i][1]
    EndIf
    ElseIf $fieldpos[$feld_alt][1] = $fieldpos[$i][1] Then
    If $feld_alt>$i Then
    Do
    $temp = WM_PAINT_special($l,$feld_alt,$i,$player,1)
    $l += $Geschwindigkeit
    Until $temp <= $fieldpos[$i][0]
    Else
    Do
    $temp = WM_PAINT_special($l,$feld_alt,$i,$player,1)
    $l += $Geschwindigkeit
    Until $temp >= $fieldpos[$i][0]
    EndIf
    EndIf
    $fields[$i] = $player + 1
    If Not _checkMuehle() Then _changePlayer()
    _WinAPI_RedrawWindow($GUI, 0, 0, $RDW_INTERNALPAINT)
    EndIf
    EndIf
    Next
    EndIf
    Next
    ElseIf $muehle Then
    For $i = 0 To 23
    Local $temp_X = $fieldpos[$i][0] + 55, $temp_Y = $fieldpos[$i][1] + 55
    If $pos[0] > $fieldpos[$i][0] And $pos[1] > $fieldpos[$i][1] And $pos[0] < $temp_X And $pos[1] < $temp_Y And $fields[$i] = $anderer_player + 1 Then
    For $k = 0 To 15
    If Not $muehle_feld_aktiv[$k] Then ContinueLoop
    For $j = 0 To 2
    If $i = $muehle_feld[$k][$j] Then
    Return
    EndIf
    Next
    Next
    If $steine_spielfeld[$anderer_player] <= 3 And Not $steine_vorhanden[$anderer_player] Then
    MsgBox(0, "Gewonnen!", "Spieler " & $player + 1 & " hat gewonnen!")
    Exit
    EndIf
    $fields[$i] = 0
    $steine_spielfeld[$anderer_player] -= 1
    $muehle = 0
    _changePlayer()
    _WinAPI_RedrawWindow($GUI, 0, 0, $RDW_INTERNALPAINT)
    EndIf
    Next
    EndIf
    EndFunc ;==>_checkMouseclick

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

    Func _abwaelen()
    $field_ausgewaehlt[$feld_alt] = 0
    $ausgewaehlt = 0
    _WinAPI_RedrawWindow($GUI, 0, 0, $RDW_INTERNALPAINT)
    EndFunc ;==>_abwaelen

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

    Func _checkMuehle()
    Local $temp[3]
    For $i = 0 To 15
    If $muehle_feld_aktiv[$i] Then
    For $j = 0 To 2
    $temp[$j] = $fields[$muehle_feld[$i][$j]]
    Next
    If $temp[0] > 0 And $temp[1] > 0 And $temp[2] > 0 Then
    If $temp[0] = 1 And $temp[1] = 1 And $temp[2] = 1 Then
    ContinueLoop
    ElseIf $temp[0] = 2 And $temp[1] = 2 And $temp[2] = 2 Then
    ContinueLoop
    EndIf
    Else
    $muehle_feld_aktiv[$i] = 0
    EndIf
    EndIf
    For $j = 0 To 2
    $temp[$j] = $fields[$muehle_feld[$i][$j]]
    Next
    If $temp[0] > 0 And $temp[1] > 0 And $temp[2] > 0 Then
    If $temp[0] = 1 And $temp[1] = 1 And $temp[2] = 1 Then
    $muehle_feld_aktiv[$i] = 1
    $muehle = 1
    Return 1
    ElseIf $temp[0] = 2 And $temp[1] = 2 And $temp[2] = 2 Then
    $muehle_feld_aktiv[$i] = 1
    $muehle = 1
    Return 1
    EndIf
    ElseIf $temp[0] = 0 And $temp[1] = 0 And $temp[2] = 0 Then
    $muehle_feld_aktiv[$i] = 0
    EndIf
    Next
    $muehle = 0
    Return 0
    EndFunc ;==>_checkMuehle

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

    Func _changePlayer()
    If $player = 0 Then
    $player = 1
    $anderer_player = 0
    ElseIf $player = 1 Then
    $player = 0
    $anderer_player = 1
    EndIf
    EndFunc ;==>_changePlayer

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

    Func _exit()
    _GDIPlus_ImageDispose($bk)
    _GDIPlus_GraphicsDispose($graphic)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_BrushDispose($brush_red)
    _GDIPlus_BrushDispose($brush_blue)
    _GDIPlus_BrushDispose($brush_bk)
    _GDIPlus_PenDispose($pen_muehle)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_exit

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

    Func WM_PAINT()
    _GDIPlus_GraphicsClear($backbuffer, 0xFFFFFFFF)
    ;~ _GDIPlus_GraphicsDrawImageRect($backbuffer,$bk,15,15,$widht-30,$heigh-80)
    _drawMuehle()
    If $debug Then
    For $i = 0 To 23
    _GDIPlus_GraphicsDrawString($backbuffer, $i, $fieldpos[$i][0], $fieldpos[$i][1])
    Next
    EndIf
    For $i = 0 To 23
    If $field_ausgewaehlt[$i] Then
    _GDIPlus_GraphicsFillRect($backbuffer, $fieldpos[$i][0], $fieldpos[$i][1], 55, 55, $brush_bk)
    EndIf
    Next
    For $i = 0 To 23
    If $fields[$i] = 1 Then
    _GDIPlus_GraphicsFillRoundRect($backbuffer, $fieldpos[$i][0], $fieldpos[$i][1], 55, 55, 55, $brush_blue)
    ElseIf $fields[$i] = 2 Then
    _GDIPlus_GraphicsFillRoundRect($backbuffer, $fieldpos[$i][0], $fieldpos[$i][1], 55, 55, 55, $brush_red)
    EndIf
    Next
    _GDIPlus_GraphicsDrawString($backbuffer, "Spieler " & $player + 1 & " ist am Zug!", 50, $heigh - 40)
    If $muehle Then _GDIPlus_GraphicsDrawString($backbuffer, "Bitte einen Stein zum rausschmeißen aussuchen!", 50, $heigh - 20)
    If $steine_vorhanden[$player] Then _GDIPlus_GraphicsDrawString($backbuffer, "Der Spieler hat noch " & $steine[$player] & " Spielsteine übrig!", 200, $heigh - 40)
    If Not $steine_vorhanden[$player] And Not $ausgewaehlt And Not $muehle Then _GDIPlus_GraphicsDrawString($backbuffer, "Bitte einen Spielstein zum verschieben auswählen!", 200, $heigh - 40)
    _GDIPlus_GraphicsDrawImageRect($graphic, $bitmap, 0, 0, $widht, $heigh)
    EndFunc ;==>WM_PAINT

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

    Func WM_PAINT_special($il,$sfeld_alt,$ii,$iplayer,$imodus)
    _GDIPlus_GraphicsClear($backbuffer, 0xFFFFFFFF)
    ;~ _GDIPlus_GraphicsDrawImageRect($backbuffer,$bk,15,15,$widht-30,$heigh-80)
    _drawMuehle()
    For $i = 0 To 23
    If $fields[$i] = 1 Then
    _GDIPlus_GraphicsFillRoundRect($backbuffer, $fieldpos[$i][0], $fieldpos[$i][1], 55, 55, 55, $brush_blue)
    ElseIf $fields[$i] = 2 Then
    _GDIPlus_GraphicsFillRoundRect($backbuffer, $fieldpos[$i][0], $fieldpos[$i][1], 55, 55, 55, $brush_red)
    EndIf
    Next
    If Not $imodus Then
    Local $temp = $fieldpos[$sfeld_alt][1] + $il
    If $sfeld_alt>$ii Then $temp = $fieldpos[$sfeld_alt][1] - $il
    If Not $iplayer Then
    _GDIPlus_GraphicsFillRoundRect($backbuffer, $fieldpos[$sfeld_alt][0], $temp, 55, 55, 55, $brush_blue)
    Else
    _GDIPlus_GraphicsFillRoundRect($backbuffer, $fieldpos[$sfeld_alt][0], $temp, 55, 55, 55, $brush_red)
    EndIf
    Else
    Local $temp = $fieldpos[$sfeld_alt][0] + $il
    If $sfeld_alt>$ii Then $temp = $fieldpos[$sfeld_alt][0] - $il
    If Not $player Then
    _GDIPlus_GraphicsFillRoundRect($backbuffer, $temp, $fieldpos[$sfeld_alt][1], 55, 55, 55, $brush_blue)
    Else
    _GDIPlus_GraphicsFillRoundRect($backbuffer, $temp, $fieldpos[$sfeld_alt][1], 55, 55, 55, $brush_red)
    EndIf
    EndIf
    _GDIPlus_GraphicsDrawString($backbuffer, "Spieler " & $player + 1 & " ist am Zug!", 50, $heigh - 40)
    If $muehle Then _GDIPlus_GraphicsDrawString($backbuffer, "Bitte einen Stein zum rausschmeißen aussuchen!", 50, $heigh - 20)
    If $steine_vorhanden[$player] Then _GDIPlus_GraphicsDrawString($backbuffer, "Der Spieler hat noch " & $steine[$player] & " Spielsteine übrig!", 200, $heigh - 40)
    If Not $steine_vorhanden[$player] And Not $ausgewaehlt And Not $muehle Then _GDIPlus_GraphicsDrawString($backbuffer, "Bitte einen Spielstein zum verschieben auswählen!", 200, $heigh - 40)
    _GDIPlus_GraphicsDrawImageRect($graphic, $bitmap, 0, 0, $widht, $heigh)
    Return $temp
    EndFunc ;==>WM_PAINT

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

    Func _drawMuehle()
    _GDIPlus_GraphicsDrawLine($backbuffer,33,28,34,568,$pen_muehle);links außen
    _GDIPlus_GraphicsDrawLine($backbuffer,31,566,569,566,$pen_muehle) ;unten außen
    _GDIPlus_GraphicsDrawLine($backbuffer,566,568,566,28,$pen_muehle) ;rechts außen
    _GDIPlus_GraphicsDrawLine($backbuffer,30,30,569,30,$pen_muehle) ; oben außen
    _GDIPlus_GraphicsDrawLine($backbuffer,132,129,132,471,$pen_muehle) ;links mitte
    _GDIPlus_GraphicsDrawLine($backbuffer,129,468,471,468,$pen_muehle);unten mitte
    _GDIPlus_GraphicsDrawLine($backbuffer,468,471,468,129,$pen_muehle);rechts mitte
    _GDIPlus_GraphicsDrawLine($backbuffer,129,132,471,132,$pen_muehle);links mitte
    _GDIPlus_GraphicsDrawLine($backbuffer,232,229,232,367,$pen_muehle);links innen
    _GDIPlus_GraphicsDrawLine($backbuffer,229,364,367,364,$pen_muehle);unten innen
    _GDIPlus_GraphicsDrawLine($backbuffer,364,367,364,229,$pen_muehle);rechts innen
    _GDIPlus_GraphicsDrawLine($backbuffer,367,232,229,232,$pen_muehle);oben innen
    _GDIPlus_GraphicsDrawLine($backbuffer,32,296,232,296,$pen_muehle)
    _GDIPlus_GraphicsDrawLine($backbuffer,296,568,296,364,$pen_muehle)
    _GDIPlus_GraphicsDrawLine($backbuffer,568,296,364,296,$pen_muehle)
    _GDIPlus_GraphicsDrawLine($backbuffer,296,32,296,232,$pen_muehle)
    EndFunc

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

    Func _GDIPlus_GraphicsFillRoundRect($gra, $x, $y, $w, $h, $r = 30, $brush = 0)
    ;by TheShadowAE
    Local $path = _GDIPlus_PathCreate(1)
    _GDIPlus_PathAddPie($path, $x, $y, $r, $r, 180, 90)
    _GDIPlus_PathAddPie($path, $x + $w - $r, $y, $r, $r, 270, 90)
    _GDIPlus_PathAddPie($path, $x + $w - $r, $y + $h - $r, $r, $r, 0, 90)
    _GDIPlus_PathAddPie($path, $x, $y + $h - $r, $r, $r, 90, 90)
    _GDIPlus_PathAddRectangle($path, $x, $y + $r / 2, $w, $h - $r)
    _GDIPlus_PathAddRectangle($path, $x + $r / 2, $y, $w - $r, $h)
    _GDIPlus_PathCloseFigure($path)
    _GDIPlus_GraphicsFillPath($gra, $path, $brush)
    _GDIPlus_PathDispose($path)
    EndFunc ;==>_GDIPlus_GraphicsFillRoundRect

    [/autoit]

    Außerdem kann man duch ändern der Variable $Geschwindigkeit das Tempo der Spielsteine festlegen

  • Nicht schlecht, allerdings fehlt noch ein

    [autoit]

    _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 2)

    [/autoit]

    damit das ganze ein bisschen weniger aufgepixelt wirkt ;). Außerdem kann man nachdem ein Stein zum verschieben ausgewählt wurde keinen anderen mehr auswählen (Wenn man den ausgewählten nicht bewegen kann muss man praktisch das Spiel neu starten).

  • Lol, "Spielsteingrafikqualität" ^^
    Danke für den Tipp Name :thumbup:

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Was für ein Zufall, da bin ich gerde bei!
    Merke gerde, dass ich das vergessen hab in den Changelog zu schreiben...

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Warum benutzt du nicht schönere Steine? Diese sehen "flach" aus.

    Ansonsten gut gelungen! :thumbup:

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Update: Steine bewegen sich nun!

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • ich hab dir ma deine mühlen func richtig eingestellt

    Spoiler anzeigen
    [autoit]

    Func _drawMuehle()
    _GDIPlus_GraphicsDrawLine($backbuffer,33,28,34,568,$pen_muehle);links außen
    _GDIPlus_GraphicsDrawLine($backbuffer,31,566,569,566,$pen_muehle) ;unten außen
    _GDIPlus_GraphicsDrawLine($backbuffer,566,568,566,28,$pen_muehle) ;rechts außen
    _GDIPlus_GraphicsDrawLine($backbuffer,30,30,569,30,$pen_muehle) ; oben außen
    _GDIPlus_GraphicsDrawLine($backbuffer,132,129,132,471,$pen_muehle) ;links mitte
    _GDIPlus_GraphicsDrawLine($backbuffer,129,468,471,468,$pen_muehle);unten mitte
    _GDIPlus_GraphicsDrawLine($backbuffer,468,471,468,129,$pen_muehle);rechts mitte
    _GDIPlus_GraphicsDrawLine($backbuffer,129,132,471,132,$pen_muehle);links mitte
    _GDIPlus_GraphicsDrawLine($backbuffer,232,229,232,367,$pen_muehle);links innen
    _GDIPlus_GraphicsDrawLine($backbuffer,229,364,367,364,$pen_muehle);unten innen
    _GDIPlus_GraphicsDrawLine($backbuffer,364,367,364,229,$pen_muehle);rechts innen
    _GDIPlus_GraphicsDrawLine($backbuffer,367,232,229,232,$pen_muehle);oben innen
    _GDIPlus_GraphicsDrawLine($backbuffer,32,296,232,296,$pen_muehle)
    _GDIPlus_GraphicsDrawLine($backbuffer,296,568,296,364,$pen_muehle)
    _GDIPlus_GraphicsDrawLine($backbuffer,568,296,364,296,$pen_muehle)
    _GDIPlus_GraphicsDrawLine($backbuffer,296,32,296,232,$pen_muehle)
    EndFunc

    [/autoit]
  • Vielen Dank!
    Jetzt gibts endlich ne Version ohne Archiv ;)

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Nicht nur dann muss man das Spiel beenden. Sondern auch, wenn der eine Spieler nurnoch 3 Steine hat und der andere sich einen Stein klauen darf, die Steine von dem mit nur 3 Steinen aber eine Mühle bilden.