• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

AutoIt3(au3)源码-AU3做的拼图游戏

AutoIT3 奇跡の海 1年前 (2017-11-09) 424次浏览 已收录 0个评论 扫描二维码

代码简介

老外作品AU3做的拼图游戏
AutoIt3(au3)源码-AU3做的拼图游戏

AU3源码

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_OutFile=Fifteen.exe
#AutoIt3Wrapper_icon=Fifteen.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=-
#AutoIt3Wrapper_Res_Description=Fifteen.exe
#AutoIt3Wrapper_Res_Fileversion=0.2.0.0
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=n
#AutoIt3Wrapper_Res_LegalCopyright=AZJIO
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Run_AU3Check=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;  @AZJIO 2010.07.12
; Resizing, displacement on 2-3 buttons.
#NoTrayIcon

; En
$LngTitle='Fifteen'
$LngAbout='About'
$LngSite='Site'
$LngA='Author'
$LngRe='Disturb'
$LngMsgT= 'Message'
$LngMsg= 'Excellently'

$h=58
$w=8
Global $aXY[17][4], $s
$Gui=GUICreate($LngTitle, 188, 238, -1, -1, 0x00040000)
$GuiPos = WinGetPos($Gui)
$s=Int(($GuiPos[2]-$w)/4)
WinMove($Gui, "", $GuiPos[0], $GuiPos[1], $s*4+$w, $s*4+$h)

$restart = GUICtrlCreateButton ($LngA,0,$s*4+1,$s*2, 20)
GUICtrlSetResizing(-1, 512 + 64)
$refresh = GUICtrlCreateButton ($LngRe,$s*2,$s*4+1,$s*2, 20)
GUICtrlSetResizing(-1, 512 + 64)

$y=0
$x=0
For $i = 1 to 16
    $aXY[$i][0]=$i
Switch $i
    Case 1 To 4
        $y=0
        $x=1
    Case 5 To 8
        $y=1
        $x=5
    Case 9 To 12
        $y=2
        $x=9
    Case 13 To 16
        $y=3
        $x=13
EndSwitch
    $aXY[$i][2]=($i-$x)*$s
    $aXY[$i][3]=$y*$s
    If $i < 16 Then
        GUISetFont (15, 700)
        $aXY[$i][1]=GUICtrlCreateButton ($i, $aXY[$i][2],$aXY[$i][3],$s,$s)
        GUICtrlSetResizing(-1, 1)
     EndIf
Next
$r=0
GUISetState ()
_refresh()

While 1
    $msg = GUIGetMsg()

    If $aXY[16][2]=$s*3 and $aXY[16][3]=$s*3 And $aXY[15][2]=$s*2 and $aXY[15][3]=$s*3 And $aXY[14][2]=$s and $aXY[14][3]=$s*3 And $aXY[13][2]=0 and $aXY[13][3]=$s*3 And $aXY[12][2]=$s*3 and $aXY[12][3]=$s*2 And $aXY[11][2]=$s*2 and $aXY[11][3]=$s*2 And $aXY[10][2]=$s and $aXY[10][3]=$s*2 And $aXY[9][2]=0 and $aXY[9][3]=$s*2 And $aXY[8][2]=$s*3 and $aXY[8][3]=$s And $aXY[7][2]=$s*2 and $aXY[7][3]=$s And $aXY[6][2]=$s and $aXY[6][3]=$s And $aXY[5][2]=0 and $aXY[5][3]=$s And $aXY[4][2]=$s*3 and $aXY[4][3]=0 And $aXY[3][2]=$s*2 and $aXY[3][3]=0 And $aXY[2][2]=$s and $aXY[2][3]=0 And $aXY[1][2]=0 and $aXY[1][3]=0 Then
        Sleep(500)
        MsgBox(0, $LngMsgT, $LngMsg)
        _refresh()
    EndIf
#Region ;Resizing, change the sizes window
    $r += 1
    If $r = 200 Then ; each 0,2 seconds checking the change window
        $r = 0
        $GuiPos = WinGetPos($Gui)
        If ($GuiPos[2]-$w)/4<>$s or ($GuiPos[3]-$h)/4<>$s Then
            $t=$s
            If $GuiPos[2]-$w>$GuiPos[3]-$h Then
                $s=Int(($GuiPos[2]-$w)/4)
            Else
                $s=Int(($GuiPos[3]-$h)/4)
            EndIf
            If $s < 31 Then $s = 31
            WinMove($Gui, "", $GuiPos[0], $GuiPos[1], $s*4+$w, $s*4+$h)
            For $i = 1 to 16
                $aXY[$i][2]=$aXY[$i][2]/$t*$s
                $aXY[$i][3]=$aXY[$i][3]/$t*$s
                GUICtrlSetPos($aXY[$i][1], $aXY[$i][2],$aXY[$i][3],$s,$s)
                GUICtrlSetFont ($aXY[$i][1],Int($s/2.7), 700, 2)
            Next
                GUICtrlSetPos($restart, 0,$s*4,$s*2, 20)
                GUICtrlSetPos($refresh, $s*2,$s*4,$s*2, 20)
        EndIf
    EndIf
#EndRegion

    For $i = 1 to 15
        If $msg = $aXY[$i][1] Then
            If ($aXY[$i][2]=$aXY[16][2] And ($aXY[$i][3]=$aXY[16][3]+$s Or $aXY[$i][3]=$aXY[16][3]-$s)) Or ($aXY[$i][3]=$aXY[16][3] And ($aXY[$i][2]=$aXY[16][2]+$s Or $aXY[$i][2]=$aXY[16][2]-$s)) Then _reButton($i)

; displacement on 2-3 buttons.

            ;from below upwards
            If $aXY[$i][2]=$aXY[16][2] And $aXY[$i][3]=$aXY[16][3]+$s*2 Then
                _reArr(0,1)
                _reArr(0,1)
                ExitLoop
            EndIf

            If $aXY[$i][2]=$aXY[16][2] And $aXY[$i][3]=$aXY[16][3]+$s*3 Then
                _reArr(0,1)
                _reArr(0,1)
                _reArr(0,1)
                ExitLoop
            EndIf

            ;from top to bottom
            If $aXY[$i][2]=$aXY[16][2] And $aXY[$i][3]=$aXY[16][3]-$s*2 Then
                _reArr(0,-1)
                _reArr(0,-1)
                ExitLoop
            EndIf

            If $aXY[$i][2]=$aXY[16][2] And $aXY[$i][3]=$aXY[16][3]-$s*3 Then
                _reArr(0,-1)
                _reArr(0,-1)
                _reArr(0,-1)
                ExitLoop
            EndIf

            ; right to left
            If $aXY[$i][2]=$aXY[16][2]+$s*2 And $aXY[$i][3]=$aXY[16][3] Then
                _reArr(1,0)
                _reArr(1,0)
                ExitLoop
            EndIf

            If $aXY[$i][2]=$aXY[16][2]+$s*3 And $aXY[$i][3]=$aXY[16][3] Then
                _reArr(1,0)
                _reArr(1,0)
                _reArr(1,0)
                ExitLoop
            EndIf

            ; left to right
            If $aXY[$i][2]=$aXY[16][2]-$s*2 And $aXY[$i][3]=$aXY[16][3] Then
                _reArr(-1,0)
                _reArr(-1,0)
                ExitLoop
            EndIf

            If $aXY[$i][2]=$aXY[16][2]-$s*3 And $aXY[$i][3]=$aXY[16][3] Then
                _reArr(-1,0)
                _reArr(-1,0)
                _reArr(-1,0)
                ExitLoop
            EndIf

        EndIf
    Next


    Select
        Case $msg = $refresh
            _refresh()
        Case $msg = $restart
            _About()
        Case $msg = -3
            ExitLoop
    EndSelect
WEnd

; we change places a button with paleholder by rand in 4-h directions
Func _refresh()
    For $u = 1 to 500
    ;Sleep(100)
Switch Random(1,4,1)
    Case 1
        For $i = 1 to 16
            If $aXY[$i][2]=$aXY[16][2]+$s And $aXY[$i][3]=$aXY[16][3] Then _reButton($i)
        Next
    Case 2
        For $i = 1 to 16
            If $aXY[$i][2]=$aXY[16][2]-$s And $aXY[$i][3]=$aXY[16][3] Then _reButton($i)
        Next
    Case 3
        For $i = 1 to 16
            If $aXY[$i][2]=$aXY[16][2] And $aXY[$i][3]=$aXY[16][3]+$s Then _reButton($i)
        Next
    Case 4
        For $i = 1 to 16
            If $aXY[$i][2]=$aXY[16][2] And $aXY[$i][3]=$aXY[16][3]-$s Then _reButton($i)
        Next
EndSwitch
Next
EndFunc

; displacement on 2-3 buttons.
Func _reArr($o,$u)
    For $i = 1 to 16
        If $aXY[$i][2]=$aXY[16][2]+$s*$o And $aXY[$i][3]=$aXY[16][3]+$s*$u Then
            _reButton($i)
            Return
        EndIf
    Next
EndFunc

; we change places a button with paleholder
Func _reButton($i)
    GUICtrlSetPos($aXY[$i][1], $aXY[16][2],$aXY[16][3])
    $tmp2=$aXY[$i][2]
    $tmp3=$aXY[$i][3]
    $aXY[$i][2]=$aXY[16][2]
    $aXY[$i][3]=$aXY[16][3]
    $aXY[16][2]=$tmp2
    $aXY[16][3]=$tmp3
EndFunc

Func _About()
$GuiPos = WinGetPos($Gui)
GUISetState(@SW_HIDE, $Gui)
$font="Arial"
    $Gui1 = GUICreate($LngAbout, 210, 180,$GuiPos[0], $GuiPos[1], -1, 0x00000080)
    GUISetBkColor (0xf8c848)
    GUICtrlCreateLabel($LngTitle, 0, 20, 210, 23, 0x01)
    GUICtrlSetFont (-1,15, 600, -1, $font)
    GUICtrlSetColor(-1,0xa21a10)
    GUISetFont (9, 600, -1, $font)
    GUICtrlCreateLabel('12.07.2010', 0, 59, 210, 46, 0x01)
    GUICtrlCreateLabel($LngSite&':', 15, 115, 40, 17)
    $url=GUICtrlCreateLabel('http://azjio.ucoz.ru', 52, 115, 170, 17)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetColor(-1, 0x0000ff)
    GUICtrlCreateLabel('WebMoney: R939163939152', 15, 130, 195, 17)
    GUICtrlCreateLabel('Copyright AZJIO ? 2010', 15, 145, 195, 17)
    GUISetState(@SW_SHOW, $Gui1)
$msg = $Gui1
    While 1
      $msg = GUIGetMsg()
      Select
        Case $msg = $url
            ShellExecute ('http://azjio.ucoz.ru')
        Case $msg = -3
            $msg = $Gui
            GUIDelete($Gui1)
            GUISetState(@SW_SHOW, $Gui)
            ExitLoop
        EndSelect
    WEnd
EndFunc

版权声明:本站所有文章和资源使用CC BY-NC-SA 4.0协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->AutoIt3(au3)源码-AU3做的拼图游戏!在下边可以分享本文哦!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址