Для нашего второго проекта мы решили написать еще одну очень любимую (или ненавидимую, как вам повезет) игру из нашего детства — Сапер.
Большинство из нас просто случайным образом нажимали на плитки, пока не наткнулись на мину. Логика реализации этого была аналогичной; жестко закодировать или сгенерировать случайную доску с символами, которые будут символизировать «шахты» и «безопасные места». Игрок вводил выбранную им позицию, и в случае подрыва мины отображалось соответствующее сообщение.
Изначально игра разрабатывалась с использованием двумерной матрицы для представления доски.
Но, поскольку только некоторые позиции в матрице будут содержать мины, разреженная матрица была сочтена лучшей альтернативой. Ненулевые элементы здесь означают шахты. Будучи меньшим по количеству, это сэкономит память, а также время вычислений, поскольку нужно будет проходить только ненулевые элементы.
Как и в предыдущем проекте, код был переработан для улучшения игрового процесса. Были добавлены такие функции, как многопользовательская игра, оценочные листы и игровое время.
Этот проект позволил учащимся изучить концепцию двумерных массивов, в то же время опираясь на ранее изученные концепции интересным образом; отдохнуть от монотонной классной рутины.
Следующие ссылки относятся к концепциям, реализованным в этом проекте.*
https://beginnersbook.com/2014/01/2d-массивы-in-c-example/
Код был загружен на Github. Ссылка указана ниже.
Наконец, я хотел бы добавить, что этот проект даже просветил нас в том, как на самом деле играть в Сапера (да, в этом есть логика). Инструкцию можно найти по прикрепленной ссылке.
https://www.wikihow.com/Play-Сапер
Извините нас, пока мы идем и загружаем Minesweeper как можно скорее.
- Алия Ахмед, от имени Loop, CCOEW
*Кредиты за содержание на соответствующих сайтах.