Сапер
Рекомендованный уровеньУровень
5+
Лет 10 назад в народе ходила примета: если офисный сотрудник чересчур сосредоточенно смотрит в экран и столь же сосредоточенно периодически кликает мышкой, скорее всего, там открыта игра «Сапер». Напомним тем, кто уже забыл, и расскажем другим, кто в силу возраста эту эпоху пропустил: «Сапер» — одна из самых популярных офисных игр, которая поставлялась вместе с Microsoft Windows. И даже сегодня, если вы сидите за компьютером с операционной системой этого семейства, то «Сапер» либо уже там установлен (просто наберите в поиске ОС слово «Сапер» или «Minesweeper»), либо его можно загрузить бесплатно из Microsoft Store. Многие Linux-сборки, например KDE и GNOME, также обзавелись похожими играми. В отличие от большинства других «убивалок времени», в этой игре отлично соблюдён баланс ходов логических и ходов наудачу, что делает «Сапера» одновременно очень увлекательной и… чуть-чуть менее бессмысленной, чем другие игры этого класса. Итак, у нас есть поле, разделённое на квадраты. Какие-то из них «заминированы», но сколько таковых и где они, мы не в курсе. Наша цель — открыть все незаминированные квадраты и не подорваться. Вы открываете квадрат левой кнопкой мыши, и если под ней мины нет, то появится число, означающее количество мин, расположенных по соседству с открытой ячейкой. Теперь нужно немного посчитать и предположить, какие ячейки можно открывать, а какие следует пометить, как заминированные. И так до победы или подрыва. В Windows разработчики встроили эту игрушку для того, чтобы люди учились управляться с мышкой (да, были времена, когда у компьютера её не было, приходилось довольствоваться только клавиатурой). Но на самом деле история «Сапера» ещё более древняя, чем история Microsoft, и её предки были доступны ещё на мейнфреймах в шестидесятых годах прошлого столетия… Впрочем, речь сейчас не об этом, а о том, чтобы создать собственную версию «Сапера»! Правила у нашей «головоломки с риском» будут точь-в-точь такими, как описано выше. Мы на JavaRush уже разделили эту непростую задачу на подзадачи и будем подсказывать вам, что делать. Дерзайте.
Комментарии (76)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Евгений Карапышев (KarapetEV)8 уровень, Москва
среда, 21:58
Я может чего-то не понял, но почему в IDEA при запуске даже первых подзадач открывается не окно с сеткой, а вот это:
Серёга19 уровень
пятница, 10:23
По идее внутри этой хрени и должна сетка отображаться. Ты эту шляпу прописывал? setScreenSize(SIDE, SIDE);
Евгений Карапышев (KarapetEV)8 уровень, Москва
пятница, 11:59
Это уже проявилось на 3й задаче. Просто смутило то, что эта хрень только в IDEA себя проявила.
notanord20 уровень, Минск
10 февраля, 17:52
залил задачу на сайт, добавил функционала, публикую еще раз задачу, она не обновляется. Обновить задачу на сайте уже нельзя после загрузки?
Илья Буренин1 уровень, Санкт-Петербург
1 февраля, 13:51
Помогите пожалуйста пишу всё норм а выводит вот что : Ваша программа не скомпилировалась Отсутствует открывающаяся фигурная скобка. файл com/javarush/games/minesweeper/part01/hi all.java, строка 4, позиция 64
Anonymous #37410529 уровень, Амстердам
4 февраля, 18:21
Чем тут помочь-то? Поставь открывающую фигурную скобку и всё. Рекомендуемый для выполнения задания уровень не просто так написан.
Anton22 уровень, Москва
6 февраля, 10:33
у меня та же проблема, хотя все скобки на месте...
Андрей13 уровень, Новосибирск
31 января, 13:34
А потом вернуться, отрефакторить/переписать можно? Или как с обычными задачами - три дня и решение блокируется?
Валерий Харченко6 уровень, Киев
21 января, 21:06
В чем ошибка? Выдает "Проверь, что класс MinesweeperGame содержит импорт: import com.javarush.engine.cell.*;" Хотя данная строчка присутствует.
package com.javarush.games.minesweeper;
import com.javarush.engine.cell.*;
public class  MinesweeperGame extends Game {
}
Алексей16 уровень
22 января, 13:55
проблема, скорее всего, в дереве классов.
Алексей16 уровень
19 января, 19:12
четвертое задание по Саперу "В этом нам поможет метод setCellColor(int, int, Color) класса Game, параметры которого — координаты и цвет ячейки. Давай вызовем его и передадим координаты каждой ячейки матрицы и любой цвет (например, Color.ORANGE)." Какой-такой класс Game имеется в виду?
Andrey Mateyko15 уровень, Киев
3 января, 13:06
Ребята, как то можно посмотреть свой код за предыдуще выполненые задачи, например 7/16?!
Divertitto40 уровень
3 января, 16:06
Уже нельзя будет
Богдан Евтушенко9 уровень, Харьков
4 января, 00:38
Если очень хочешь - всё возможно! Что бы посмотреть именно свой старый код, написанный в конкретной подзадаче - нужно нажать на "Помощь", найти чей-нибудь вопрос по нужной подзадаче и дальше нажать на "Игра [название игры] ([номер подзадачи]/[общее кол-во подзадач])" и вуаля именно ваш код))
Maxim Moskalyuk15 уровень, Санкт-Петербург
2 января, 15:27
Здравствуйте друзья, можете мне подсказать, почему не компилируется код ? Даже стыдно, что запоролся в самом начале
package com.javarush.games.minesweeper;
import com.javarush.engine.cell.*;
public class MinesweeperGame extends Game {
}
Серёга19 уровень
5 января, 16:38
И всё?
Серёга19 уровень
5 января, 16:38
Хоть бы ошибку что ли скинул...
Maxim Moskalyuk15 уровень, Санкт-Петербург
6 января, 12:24
А он и не выводит ошибку, он просто пишет, что компиляция не прошла.
Серёга19 уровень
6 января, 15:11
Файл в котором класс находится так называется: MinesweeperGame.java?
17 января, 21:54
после названия класса - MinesweeperGame - должны быть круглые скобки... то есть --- MinesweeperGame()
Ксения16 уровень, Минск
2 января, 13:41
Опубликовала игру Сапер и поняла, что в итоге у меня получилась какая-то ерунда.. Видимо есть ошибки в моем коде, любопытно, что все решения прошли валидацию! Постараюсь разобраться, что не так с моим кодом...
Серёга19 уровень
5 января, 16:45
Вот эта? https://javarush.ru/projects/apps/6139 По моему с ней всё хорошо.
Ксения16 уровень, Минск
6 января, 14:50
Эта. Да, уже все хорошо) подправила!
Александр Макеев13 уровень, Москва
22 декабря 2018, 14:55
Господа, супер-просьба, пришлите пожалуйста код 6го задания! *бусь уже 3-и сутки, ArrayIndexOutOfBoundsException, в местах, где его точно не должно быть. + почему нельзя сделать поле 11x11, объектами населить 9x9, чтобы не писать ифоф 9 штук? Валидатор не хочет принимать. Понимаю, что по-идее должен сам разобраться, но уже испробовал варианта 3, а код все-равно либо с ошибкой, либо не принимает валидатор. Хочется увидеть правильный ответ. Спасибо!
Divertitto40 уровень
27 декабря 2018, 12:40
Создай пост в разделе Помощь, посмотрим
Александр Макеев13 уровень, Москва
29 декабря 2018, 09:32
Готово, буду рад помощи!