Lines Matching defs:field
35 SudokuGenerator::_HasOnlyOneSolution(SudokuField& field)
37 SudokuSolver solver(&field);
60 // first step: generate a solved field - random brute force style
62 SudokuField field(target->BlockSize());
63 uint32 inputCount = field.Size() * field.Size() / 3;
64 _Progress(progress, B_TRANSLATE("Creating solvable field"), 5.f);
67 field.Reset();
69 // generate input field
77 x = rand() % field.Size();
78 y = rand() % field.Size();
79 } while (!*quit && field.ValueAt(x, y) != 0);
81 validMask = field.ValidMaskAt(x, y);
87 value = rand() % field.Size();
90 field.SetValueAt(x, y, value + 1);
98 SudokuSolver solver(&field);
102 field.SetTo(solver.SolutionAt(rand() % solver.CountSolutions()));
113 int32 removeCount = field.Size() * field.Size() - fieldsLeft;
114 bool tried[field.Size() * field.Size()];
115 int32 tries = field.Size() * field.Size() * 3 / 4;
120 SudokuField copy(field);
124 x = rand() % field.Size();
125 y = rand() % field.Size();
126 } while (copy.ValueAt(x, y) == 0 || tried[x + y * field.Size()]);
128 tried[x + y * field.Size()] = true;
133 field.SetTo(©);
143 for (uint32 y = 0; y < field.Size(); y++) {
144 for (uint32 x = 0; x < field.Size(); x++) {
145 if (tried[x + y * field.Size()])
148 SudokuField copy(field);
154 field.SetTo(©);
169 for (uint32 y = 0; y < field.Size(); y++) {
170 for (uint32 x = 0; x < field.Size(); x++) {
171 if (field.ValueAt(x, y))
172 field.SetFlagsAt(x, y, kInitialValue);
179 target->SetTo(&field);