Представление данных
В программе
игровое поле представлено массивом N+2 на M+2, где N xM — размер игрового поля.
Элементы массива с номерами строк от 1 до N и номерами столбцов от 1 до М
соответствуют клеткам игрового поля (рис. 15.9), первые и последние столбцы и
строки соответствуют границе игрового поля.
Рис. 15.9.
Клетке игрового поля соответствует элемент массива
В начале игры
каждый элемент массива, соответствующий клеткам игрового поля, может содержать
число от 0 до 9. Ноль соответствует пустой клетке, рядом с которой нет мин.
Клеткам, в которых нет мин, но рядом с которыми мины есть, соответствуют числа
от 1 до 8. Элементы массива, соответствующие клеткам, в которых находятся мины,
имеют значение 9.
Элементы
массива, соответствующие границе поля, содержат -3.
В качестве
примера на рис. 15.10 изображен массив, соответствующий состоянию поля в начале
игры.

Рис.
15.10. Массив в начале игры
В процессе игры состояние игрового поля меняется (игрок открывает клетки и ставит флажки) и, соответственно, меняются значения элементов массива. Если игрок поставил в клетку флажок, то значение соответствующего элемента массива увеличивается на 100. Например, если флажок поставлен правильно в клетку, в которой есть мина, то значение соответствующего элемента массива станет 109. Если флажок поставлен ошибочно, например, в пустую клетку, элемент массива будет содержать число 100. Если игрок открыл клетку, то значение элемента массива увеличивается на 200. Такой способ кодирования позволяет сохранить информацию о исходном состоянии клетки.