На первый вопрос все просто:
Решается через двухмерный массив, где для элемента массива A[i,j] соседними клетками являются стандартные четыре A[i-1,j], A[i+1,j], A[i,j-1], A[i,j+1], так и A[i+1,j-1],A[i+1,j+1].
Все остальное - обман зрения!

А по поводу ИИ, то я тебе могу дать один совет: как правила весь ИИ сводится к сортировке.
Вот ты и подумай теперь, что какую стратегию должен преследовать ИИ? Отсюда получешь объекты и ситуации с ними. А зная это не трудно понять из какого множества, что искать.
Будет интересен ход развития игры. =)
зы. Может, все-таки не CF, а чистый С++?