Исходники Delphi - в ссылках текста, рабочие.
Таких игр можно назвать очень много - от шашек и шахмат до сапера и
морского боя. Все они объединены единой идеей - клеточное поле (или
два - для морского боя), на котором разворачиваются события. Такие
поля по своей сути плоские, но я встречал и трехмерные реализации с
превосходной анимацией и детально проработанной графикой, но смысл
от этого не изменяется - игрок кликает по определенным клеткам, а
доска преобразуется в соответствии с правилами игры. Если вспомнить
тот же морской бой, то мы поймем, что правила игры абсолютно не
зависят от того, на чем мы играем - в шахматы на реальной доске, в
плоскую компьютерную версию, где фигуры "перескакивают" с клетки на
клетку без отрисовки промежуточного положения, или где трехмерные
фигуры наносят удары по противнику и величественно перемещаются на
новую позицию. Поэтому вполне очевидным является отдельная
реализация правил игры и, возможно, алгоритма ответа со стороны
компьютера и собственно отображения. Этот подход является
стандартным в программировании и называется паттерн Модель - Вид -
Контроллер.
Подробнее про то, что же представляет собой этот подход, Вы можете
прочитать в статье Wikipedia