66 lines
1.4 KiB
C++
66 lines
1.4 KiB
C++
#include "cnonogramsolver.h"
|
|
#include "cnonogram.h"
|
|
|
|
namespace libqcross {
|
|
CNonogramSolver::CNonogramSolver(QObject * parent) : QObject(parent), m_Nonogram(NULL), m_OverlayData(NULL) {
|
|
}
|
|
|
|
CNonogramSolver::~CNonogramSolver() {
|
|
cleanup();
|
|
}
|
|
|
|
bool CNonogramSolver::solve() {
|
|
if (!m_Nonogram)
|
|
return false;
|
|
|
|
cleanup();
|
|
|
|
m_OverlayData = new int *[m_Nonogram->width()];
|
|
for (int i = 0; i < m_Nonogram->width(); i++) {
|
|
m_OverlayData[i] = new int[m_Nonogram->height()];
|
|
for (int j = 0; j < m_Nonogram->height(); j++)
|
|
m_OverlayData[i][j] = 0;
|
|
}
|
|
|
|
for (int i = 0; i < m_Nonogram->height(); i++)
|
|
solveRow(i);
|
|
|
|
return false;
|
|
}
|
|
|
|
void CNonogramSolver::cleanup() {
|
|
if (m_OverlayData && m_Nonogram) {
|
|
for (int i = 0; i < m_Nonogram->width(); i++)
|
|
delete[] m_OverlayData[i];
|
|
delete[] m_OverlayData;
|
|
}
|
|
}
|
|
|
|
bool CNonogramSolver::solveRow(int /*y*/) {
|
|
return false;
|
|
// int left = 0;
|
|
// int right = m_Nonogram->width()-1;
|
|
//
|
|
// foreach (int k, m_Nonogram->rowNumbers(y)) {
|
|
// if (k == m_Nonogram->width())
|
|
// for (int i = 0; )
|
|
// m_OverlayData[i][y] = 1;
|
|
// }
|
|
|
|
//
|
|
// while (m_OverlayData[right][y] && left < right)
|
|
// right++;
|
|
//
|
|
// if (left == right)
|
|
// return true;
|
|
//
|
|
// if (m_Nonogram->rowNumbers(y)[0] == 0)
|
|
// for (int i = left; i <= right; i++)
|
|
// m_OverlayData[i][y] = MT_CROSSED;
|
|
//
|
|
// foreach (int k, m_Nonogram->rowNumbers(y)) {
|
|
//
|
|
// }
|
|
}
|
|
}
|