Open Kaffeine opened 8 years ago
Доброго времени суток! Как проверить условие,задана ли клетка? Вопрос по 6 пункту 5 задания по Pairs.
Понедельник, 18 апреля 2016, 20:19 +05:00 от Alexandr Akulich notifications@github.com:
@UrFU-Programming/x-team План:
- Добавить в Cell сигнал cellOpened(Cell *cell).
- Испускать сигнал в методе Cell::open().
- В Field добавить слот onCellOpened и подключить его к Cell::cellOpened.
- Добавить в Field поля Cell m_firstCell; Cell m_secondCell.
- Добавить в Field пустой слот closeCells().
- В слоте onCellOpened проверять firstCell и secondCell. Если первая клетка не задана, то задавать m_firstCell = cell, если вторая клетка не задана, задавать её = Cell. Если обе клетки заданы, вызывать closeCells().
- Добавить в слот closeCells() закрытие первой и второй клетки и задание полей-указателей на клетки в nullptr. Разбейте решение на шесть коммитов (первые два пункта объедините в один коммит). Информация о метаобъектной системе Qt, сигналах, слотах и свойствах: https://github.com/UrFU-Programming/Mines/wiki/Task#6-qobject-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0-%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8B-%D0%B8-%D1%81%D0%BB%D0%BE%D1%82%D1%8B Спрашивайте, что непонятно. — You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub
"Первая клетка" хранится в поле m_firstCell.
"Задана ли клетка" можно проверить сравнением указателя m_firstCell с nullptr, а лучше — просто написать if (m_firstCell)
.
Мы заранее (в конструкторе Field) задаём значение указателя в ноль (nullptr), потом при открытии клетки в слоте onCellOpened() приравниваем указатель к указателю на открытую клетку, затем (при закрытии клетки) в closeCells() опять приравниваем указатель nullptr.
nullptr — это указатель, равный нулю. Свидетельствует о том, что указатель ни на что не указывает.
@UrFU-Programming/X-Team
План:
Разбейте решение на шесть коммитов (первые два пункта объедините в один коммит).
Информация о метаобъектной системе Qt, сигналах, слотах и свойствах: https://github.com/UrFU-Programming/Mines/wiki/Task#6-qobject-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0-%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8B-%D0%B8-%D1%81%D0%BB%D0%BE%D1%82%D1%8B
Спрашивайте, что непонятно.