По памяти, давно дело было... Итак есть центральная точка, у нее вес 0.
Всем точкам вокруг присваиваются веса, при чем если по диагонали, то три, иначе 2.
Получаем матрицу /*нажми "Посмотреть"*/
<table width="180" border="1" cellspacing="2" cellpadding="0">
<tr>
<td>3</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>2</td>
<td>3</td>
</tr>
</table>
Потом рассчитываем для пустых вокруг матрицы, прибавляя вес. Для угловой тройки получим
<table width="238" border="1" cellspacing="2" cellpadding="0" bgcolor="white">
<tr>
<td>6</td>
<td>5</td>
<td bgcolor="#ed0972">6</td>
<td></td>
</tr>
<tr>
<td>5</td>
<td bgcolor="#fdb913">3</td>
<td bgcolor="#fdb913">2</td>
<td bgcolor="#fdb913">3</td>
</tr>
<tr>
<td>6</td>
<td bgcolor="#fdb913">2</td>
<td bgcolor="#fdb913">0</td>
<td bgcolor="#fdb913">2</td>
</tr>
<tr>
<td></td>
<td bgcolor="#fdb913">3</td>
<td bgcolor="#fdb913">2</td>
<td bgcolor="#fdb913">3</td>
</tr>
</table>
Не помню для ячейки, выделенной красным меняем значение или нет (из-за двойки по вертикали под ней).
Наверняка в сети есть подробное описание и не такое корявое, как у меня, поищи)))