Jump to content

2D Array pattern finding


AlmarM
 Share

Recommended Posts

Hiya, at work we had to discover a 2D array pattern finding algoritme.

I thought converting it into AutoIt and post it.

Notice the "0" in $_aPattern does represent anything. Any number.

Global $_aGrid[6][6]            =   [   [0, 0, 0, 0, 0, 0], _
                                                [0, 0, 0, 0, 0, 0], _
                                                [0, 0, 0, 1, 0, 0], _
                                                [0, 0, 1, 1, 1, 0], _
                                                [0, 0, 0, 0, 0, 0], _
                                                [0, 0, 0, 0, 0, 0]  ]

Global $_aPattern[2][3]     =   [   [0, 1, 0], _
                                                [1, 1, 1]   ]

_findPattern($_aGrid, $_aPattern) ; outputs "2, 2"

Func _findPattern($aGrid, $aPattern)
    Local $bMatch = False

    For $i = 0 To ((UBound($aGrid) - 1) - (UBound($aPattern) - 1))
        For $j = 0 To (UBound($aGrid) - UBound($aPattern, 2))
            $bMatch = True

            For $k = 0 To (UBound($aPattern) - 1)
                For $l = 0 To (UBound($aPattern, 2) - 1)
                    $bMatch = ($bMatch And ($aGrid[$i + $k][$j + $l] == $aPattern[$k][$l]) Or $aPattern[$k][$l] == 0)
                Next
            Next

            If ($bMatch) Then
                ConsoleWrite("Pattern found: " & $i & ", " & $j & @CRLF)
                Return
            EndIf
        Next
    Next

    ConsoleWrite("No pattern found." & @CRLF)
EndFunc

Minesweeper

A minesweeper game created in autoit, source available.

_Mouse_UDF

An UDF for registering functions to mouse events, made in pure autoit.

2D Hitbox Editor

A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes.

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...