# 2D Array pattern finding

## 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.

## Create an account

Register a new account

×

• Wiki

• Back

• Git