Все сервисы Хабра
Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Закрыть
Задать вопрос
MeGaLoDoN227
0
вклад
1
вопрос
0
ответов
0%
решений
Комментарии
Информация
Ответы
Вопросы
Комментарии
Подписки
Нравится
Как написать flood fill для сапера на c#?
MeGaLoDoN227
@MeGaLoDoN227
Автор вопроса
Sumor
, Все, уже не надо, у меня все таки получилось рекурсией сделать, но спасибо что мне время уделили.
Написано
более трёх лет назад
Как написать flood fill для сапера на c#?
MeGaLoDoN227
@MeGaLoDoN227
Автор вопроса
Я написал это:
public void openEmptyCells(int row, int colum)
{
Queue queue = new Queue();
queue.Enqueue(new Point(row, colum));
while (queue.Count > 0)
{
var cur = queue.Dequeue();
if (gameArr[cur.X, cur.Y] == "0")
{
queue.Enqueue(new Point(cur.X - 1, cur.Y - 1));
queue.Enqueue(new Point(cur.X + 1, cur.Y + 1));
queue.Enqueue(new Point(cur.X, cur.Y - 1));
queue.Enqueue(new Point(cur.X - 1, cur.Y));
queue.Enqueue(new Point(cur.X + 1, cur.Y));
queue.Enqueue(new Point(cur.X, cur.Y + 1));
queue.Enqueue(new Point(cur.X + 1, cur.Y - 1));
queue.Enqueue(new Point(cur.X - 1, cur.Y + 1));
}
(this.Controls[$"b{row}{colum}"] as Button).BackColor = Color.Silver;
}
}
И при нажатии на пустую клетку возникает исключения out of range exeption, я посмотрел, cur.X и cur.Y принимают странные значения, типа -1, 10...
Написано
более трёх лет назад
Как написать flood fill для сапера на c#?
MeGaLoDoN227
@MeGaLoDoN227
Автор вопроса
Sumor
, Ну как это записать, у меня ничего не выходит.
Написано
более трёх лет назад
Как написать flood fill для сапера на c#?
MeGaLoDoN227
@MeGaLoDoN227
Автор вопроса
Я знаю что так можно, но просто придется писать кучу if - ов, как это в виде рекурсии записать?
Написано
более трёх лет назад
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации
Закрыть
Реклама