Jump to content
Sign in to follow this  
theguy0000

Unexpected "Syntax Error"?...

Recommended Posts

theguy0000

I'm sure it's something obvious, but my brain is dead right now.

#include <GUIConstants.au3>
#include <Array.au3>
Global $cHoverID[2], $Global_cHID = 0, $cHoverActive = 0, $cHClicked = 0, $White = 1

#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("AForm1", 122, 74, 290, 110)
$ButtonW = GUICtrlCreateButton("White", 16, 8, 89, 25, 0)
$ButtonB = GUICtrlCreateButton("Black", 16, 40, 89, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $ButtonB
            $play_color = "black"
            $opponent = "white"
            ExitLoop
        Case $ButtonW
            $play_color = "white"
            $opponent = "black"
            ExitLoop

    EndSwitch
WEnd

Global $squares[65]
Global $MarblePics[65]
$gui = GUICreate("AutoIt Reversi", 600, 595)
For $y = 1 To 8
    For $x = 1 To 8
        $i = (8* ($y - 1)) + $x
        $squares[$i] = ""
        $MarblePics[$i] = GUICtrlCreatePic("square.bmp", coord($x), coord($y), 60, 60)
        _ControlHover(2, $gui, $MarblePics[$i])
        $squares[$i] = ""
    Next
Next

PlaceMarble("white", 3, 3)
PlaceMarble("black", 3, 4)
PlaceMarble("black", 4, 3)
PlaceMarble("white", 4, 4)
Global $square_buttons[65]
GUISetState()

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
   
    $Over = _ControlHover(0, $gui)
    If $Over = 1 Then
        $TempID = @extended
        For $i = 1 To 64
            If $MarblePics[$i] = $TempID Then
                If $squares[$i] = "" Then
                    GUICtrlSetImage($TempID, "hover.bmp")
                    $squares[$i] = "hover"
                EndIf
            Else
                If $squares[$i] = "hover" Then
                    GUICtrlSetImage ($MarblePics[$i], "square.bmp")
                    $squares[$i] = ""
                EndIf
            EndIf
        Next
    EndIf
   
    $Over2 = _ControlHover(1, $gui)
    If $Over2 = 1 Then
        $TempID2 = @extended
        For $i = 1 To 64
            If $MarblePics[$i] = $TempID2 Then
                If $squares[$i] = "hover" Then
                    PlaceMarble ($play_color, squareX($i), squareY($i))
                EndIf
            EndIf
        Next
    EndIf
WEnd

Func coord($num)
    If $num < 1 Or $num > 8 Then
        SetError(1)
        Return 0
    EndIf
    Return ($num * 60) + 5
EndFunc   ;==>coord

Func PlaceMarble($color, $x, $y)
    Local $square = (8* $y) + $x+1
    If $square < 1 Or $square > 64 Then Return 0
    $MarblePics[$square] = GUICtrlSetImage($MarblePics[$square], $color & ".bmp")
    GUICtrlSetState(-1, $GUI_SHOW)
    AddTaken($squares[$square], 1)
    $squares[$square] = $color
    Capture ($x, $y)
    Return 1
EndFunc   ;==>PlaceMarble

Func ReverseMarble($x, $y)
    Local $square = (8*($y - 1))+$x
    If $squares[$square] = "" Then Return 0
    Switch $squares[$square]
        Case "white"
            PlaceMarble("black", $x, $y)
        Case "black"
            PlaceMarble("white", $x, $y)
    EndSwitch
EndFunc   ;==>ReverseMarble

Func squareX($num)
    $ret = 0
    Do
        $num -= 1
        $ret += 1
    Until Round($num / 8) = $num / 8
    Return $ret
EndFunc   ;==>squareX

Func squareY($num)
    $num -= squareX($num)
    Return ($num / 8)
EndFunc   ;==>squareY

Func Capture ($x, $y)
    Local $X2, $Y2, $num, $capt_num, $num2, $capt_num2
    $capt_num=0
    
    ;capture up
    If $y > 2 Then
        $Y2 = $y-1
        $X2 = $x
        $num = (8*($Y2-1))+$X2
        If $squares[$num] = $opponent Then
            For $i = $y-2 To 1
                $num2 = (8*($i-1))+$X2
                If $squares[$num2] = $play_color Then
                    $capt_num2 = $y-$i-1
                    For $ii = $y-1 To $y-$capt_num2
                        ReverseMarble ($x, $y)
                        $capt_num += 1
                    Next
                EndIf
            Next
        EndIf
    EndIf

EndIf

; AddTaken by Valuater
Func AddTaken($place, $add = 0)
    For $i = 1 To UBound($squares) -1
        If  $squares[$i] = $place Then Return SetError( -1, 0)
        If $squares[$i] = "" And $add = 1 Then
            $squares[$i] = $place
            Return SetError( 1, 1)
        EndIf
        If $squares[$i] = "" Then ExitLoop
    Next
    Return SetError( 2, 2)
EndFunc
;ControlHover by Valuater
#region _ControlHover;
;===============================================================================
;    UDF Name: _ControlHover.au3
;
;    Version v1.2.0  Sept 25, 2006, built with Autoit 3.2.1.3
;
;    Author: Valuater, Robert M
;
;    Contributions: marfdaman(Marvin), RazerM, Quaizywabbit(AnyGUI).
;
;    Email: <Valuater [at] aol [dot] com>
;
;    Use: Enable Mouse/Hover Over Control Events
;===============================================================================

;===============================================================================
;
; Function Name:    _ControlHover()
; Description:      Enable Mouse/Hover Over Control Events
;                    Find if Mouse is over a known control
;                    Find if a Mouse has Clicked on a known control
;                    Add, Remove, or Verify the control within the known control list
; Parameter(s):     $cH_Mode    [default]       0 = Find if Mouse is over a known control
;                               [optional]        1 = Find if a Mouse has Clicked on a known control
;                                               2 = Add a control to the known control list
;                                               3 = Remove a control from the known control list
;                                               4 = Verify a control is in the known control list
;                   $cH_hWin    [optional]       - Window handle as returned by GUICreate()
;                                [preferred]        - Window handle to save CPU usage and speed of _ControlHover()
;                                                - and Avoid array errors for "non-active window"
;                   $cH_hCntrl    [required]       - Control ID to Add, Remove, or Verify the control within the known control list
;                                [not used]        - to find if a mouse is over or has clicked on a known control
; Requirement(s):   #include<Array.au3>
; Return Value(s):
;                    $cH_Mode 0 or 1
;                                On Success     Return = 1        @error = 0, @extended = Current known control
;                               While Success Return = ""
;                               On Failure: Return = 0        @error = 1, @extended = Last known control
;                    $cH_Mode 2, 3, or 4
;                                On Success     Return = 1        @error = 0, @extended = Function's return line number
;                    All $cH_Mode's
;                               On Error:     Return = Description of the error
;                                                            @error = -1, @extended = Function's return line number
; Author(s):        Valuater, Robert M
;
;===============================================================================
Func _ControlHover($cH_Mode = 0, $cH_hWin = "", $cH_hCntrl = "")
   
    Local $cH_i, $cH_Data
    If Not @Compiled Then Opt("TrayIconDebug", 1) ; 1=debug line info
   
    Select
        Case $cH_Mode = 0 Or $cH_Mode = 1 ; 0 = Check if mouse is over a control, 1 = Check if mouse clicked on a control
           
            ; Developer did not add any controls before the function mode 0 or 1 was called
            If UBound($cHoverID) = 2 Then ConsoleWrite("*** _ControlHover() Error *** " & @CRLF & "No Controls were Added" & @CRLF)
           
            If $cH_hWin = "" Then
                $cH_Data = GUIGetCursorInfo() ; Get cursor data from the active window
            Else
                If Not WinActive($cH_hWin) Then Return SetError(-1, 1, "Window not active") ; Dont waist CPU if the known window is not active
                $cH_Data = GUIGetCursorInfo($cH_hWin) ; Get cursor data from the known window
            EndIf
           
            If Not IsArray($cH_Data) Then Return SetError(-1, 2, "Window not found") ; A readable GUI window was not found
           
            For $cH_i = 1 To UBound($cHoverID) - 1 ; Search the known controls for the currently hovered control
                If $cH_Data[4] = $cHoverID[$cH_i] Then ; Mouse is over a current known control
                   
                    ; Mode 1 - check for a Click on a known control
                    If $cH_Mode And $cH_Data[2] = 1 And Not $cHClicked Then
                        $cHClicked = 1
                        Return SetError(0, $cHoverID[$Global_cHID], 1) ; Mouse clicked on current control
                    ElseIf $cH_Mode And $cH_Data[2] <> 1 And $cHClicked Then
                        $cHClicked = 0
                        Return SetError(1, $cHoverID[$Global_cHID], 0) ; Release clicked current control
                    EndIf
                    If $cH_Mode Then Return SetError("", "", "") ; Mouse is still over last known control and may click again
                   
                    ; Mode 0 & 1
                    If $cHoverID[$cH_i] = $cHoverID[$Global_cHID] And $cHoverActive Then Return SetError("", "", "") ; Mouse is still over last known control
                    If $cHoverActive Then
                        $cHoverActive = 0
                        Return SetError(1, $cHoverID[$Global_cHID], 0) ; Release Active - Mouse is over a new known control
                    EndIf
                    $cHoverActive = 1
                    $cHoverID[$Global_cHID] = $cHoverID[$cH_i] ; Re-set the current control to the new known control
                    Return SetError(0, $cHoverID[$Global_cHID], 1) ; Mouse is over the new-current known control
                   
                EndIf
            Next
            ; hover control not found in the known control list
            If $cHoverActive Then
                If $cH_Mode And $cHClicked Then  ; check - Release clicked current control
                    $cHClicked = 0
                    Return SetError(1, $cHoverID[$Global_cHID], 0) ; Release clicked current control
                EndIf
                If $cH_Mode Then Return SetError("", "", "") ; Protect the release of the active control
                $cHoverActive = 0
                Return SetError(1, $cHoverID[$Global_cHID], 0) ; Release Active - Mouse is over a new unknown control
            EndIf
            If $cH_Mode And $cHClicked Then
                $cHClicked = 0
                Return SetError(1, $cHoverID[$Global_cHID], 0) ; Release clicked current control
            EndIf
            Return SetError("", "", "")
           
        Case $cH_Mode = 2 ; Add the new control to the known control list
           
            If $cH_hCntrl = "" Then Return SetError(-1, 8, "Control not provided #1") ; The control ID was not given
            _ArrayAdd($cHoverID, $cH_hCntrl) ; Add the control to the known control array
            If @error Then Return SetError(-1, 9, "Control not added") ; Control not added to the known control list
            Return SetError(0, 10, 1) ; ; Control was added to the known control list
           
        Case $cH_Mode = 3 ; Remove the control from the known control list
           
            If $cH_hCntrl = "" Then Return SetError(-1, 11, "Control not provided #2") ; The control ID was not given
            _ArrayDelete($cHoverID, $cH_hCntrl) ; Delete the control from the known control array list
            If @error Then Return SetError(-1, 12, "Control not removed") ; Control not deleted from the known control list
            Return SetError(0, 13, 1) ; Control was deleted from the known control list
           
        Case $cH_Mode = 4 ; Verify if control is in the known control list
           
            If $cH_hCntrl = "" Then Return SetError(-1, 14, "Control not provided #3") ; The control ID was not given
            _ArraySearch($cHoverID, $cH_hCntrl) ; Search to verify if control is in the known control list
            If @error Then Return SetError(-1, 15, "Control not found") ; Control was not found in the known control list
            Return SetError(0, 16, 1) ; Control was found in the known control list
           
        Case Else
            Return SetError(-1, 17, "$cH_Mode incorrect") ; $cH_Mode has an incorrect value
    EndSelect
    Return SetError(-1, 18, "Unknown Error") ; Error is Unknown
EndFunc   ;==>_ControlHover
#endregion

I get a syntax error line 153, which I can't figure out, since line 153 only has "EndFunc"...


The cake is a lie.www.theguy0000.com is currentlyUP images.theguy0000.com is currentlyUP all other *.theguy0000.com sites are DOWN

Share this post


Link to post
Share on other sites
dandymcgee

Lol, your brain sure is dead man.... line 152 says "EndIf" not "EndFunc" there's your error ;).


- Dan [Website]

Share this post


Link to post
Share on other sites
theguy0000

Lol, your brain sure is dead man.... line 152 says "EndIf" not "EndFunc" there's your error :evil:.

:mad:;):o

LOL thanks :lmao:


The cake is a lie.www.theguy0000.com is currentlyUP images.theguy0000.com is currentlyUP all other *.theguy0000.com sites are DOWN

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×