Сапер

Рекомендованный уровеньУровень
5+
Лет 10 назад в народе ходила примета: если офисный сотрудник чересчур сосредоточенно смотрит в экран и столь же сосредоточенно периодически кликает мышкой, скорее всего, там открыта игра «Сапер». Напомним тем, кто уже забыл, и расскажем другим, кто в силу возраста эту эпоху пропустил: «Сапер» — одна из самых популярных офисных игр, которая поставлялась вместе с Microsoft Windows. И даже сегодня, если вы сидите за компьютером с операционной системой этого семейства, то «Сапер» либо уже там установлен (просто наберите в поиске ОС слово «Сапер» или «Minesweeper»), либо его можно загрузить бесплатно из Microsoft Store. Многие Linux-сборки, например KDE и GNOME, также обзавелись похожими играми. В отличие от большинства других «убивалок времени», в этой игре отлично соблюдён баланс ходов логических и ходов наудачу, что делает «Сапера» одновременно очень увлекательной и… чуть-чуть менее бессмысленной, чем другие игры этого класса. Итак, у нас есть поле, разделённое на квадраты. Какие-то из них «заминированы», но сколько таковых и где они, мы не в курсе. Наша цель — открыть все незаминированные квадраты и не подорваться. Вы открываете квадрат левой кнопкой мыши, и если под ней мины нет, то появится число, означающее количество мин, расположенных по соседству с открытой ячейкой. Теперь нужно немного посчитать и предположить, какие ячейки можно открывать, а какие следует пометить, как заминированные. И так до победы или подрыва. В Windows разработчики встроили эту игрушку для того, чтобы люди учились управляться с мышкой (да, были времена, когда у компьютера её не было, приходилось довольствоваться только клавиатурой). Но на самом деле история «Сапера» ещё более древняя, чем история Microsoft, и её предки были доступны ещё на мейнфреймах в шестидесятых годах прошлого столетия… Впрочем, речь сейчас не об этом, а о том, чтобы создать собственную версию «Сапера»! Правила у нашей «головоломки с риском» будут точь-в-точь такими, как описано выше. Мы на JavaRush уже разделили эту непростую задачу на подзадачи и будем подсказывать вам, что делать. Дерзайте.
Комментарии (219)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Andrew Medvedev13 уровень, Одесса
16 часов назад
Дошел до 9 этапа, нажал сброс так как запутался, сбросилось все до 1 уровня, спасибо JavaRush! Неужели нельзя было оптимизировать сброс задачи для игр?
Руслан12 уровень, Зеленоград
позавчера, 13:02
Выдает ошибку, хотя при этом все отрисовывается при нажатии ЛКМ: и мина, и число.
Руслан12 уровень, Зеленоград
позавчера, 13:48
В общем, ошибка была в том, что в методе обращался к ячейкам через [x][y], а не [y][x]. При этом отрисовывалось все визуально нормально, но фактически неправильно. Мой косяк, так что будьте внимательнее)
Сергей14 уровень, Казань
пятница, 20:25
А как запустить программу через идею?
Саша0 уровень
пятница, 09:53
Неизвестная ошибка при попытки публикации, сталкивался кто нибудь?
Diyor0 уровень
четверг, 17:13
Откуда вы всё знаети я вошим ничего низнаю
Zaakki16 уровень, Москва
28 марта, 20:11
Неизвестная ошибка при попытки публикации, сталкивался кто нибудь?
21 марта, 10:35
откуда вы все это знаете? просто я не знаю ничего
Marti17 уровень, Warszawa
20 марта, 11:55
что-то оно нерабочее какое-то появляется такое окно, которое даже закрыть нельзя крестиком и перетащить тоже ни сетки никакой нет и ничего
Pavlo Plynko40 уровень, Киев
24 марта, 06:24
Сетки не видно на черном фоне. Ну или возможно ты ее отключил спец. методом. Чтобы закрыть окно нужно остановить программу (красным квадратиком).
Marti17 уровень, Warszawa
24 марта, 08:26
методы все слева. сетка включена. окошко не двигается. и зачем вообще крестик тогда? если надо выключать в идэ? да и дальше, если идти по подсказкам, то больше ничего не появляется в окошке от лова совсем
Pavlo Plynko40 уровень, Киев
24 марта, 09:00
Крестик это твой вызов метода setCellValue(). Вызови метод еще раз с координатами 2, 2 например, и появится еще один крестик )
Marti17 уровень, Warszawa
24 марта, 09:15
да, ступил) подумал это закрытие окна))
Алекс Скела8 уровень, Хабаровск
20 марта, 02:35
Pavlo Plynko40 уровень, Киев
24 марта, 06:24
в классе нет строки package
Алекс Скела8 уровень, Хабаровск
24 марта, 06:58
думаю это было из-за того, что я пытался запустить на 4 уровне.
Алекс Скела8 уровень, Хабаровск
20 марта, 02:34
Не отправляет код на проверку, на сайте такая же беда. https://javarush.ru/images/comment/af5a9f63-9cbc-4298-873e-7884a2473f20/original.jpg