1
0

Fixed switched row/col and wording.

This commit is contained in:
Markus Birth 2014-01-26 15:40:36 +01:00
parent ab4a6e96e2
commit e947dc9eed
2 changed files with 32 additions and 32 deletions

View File

@ -34,55 +34,55 @@ class @SudokuSolver
@getSquareColCells: (board, squareid, squarecol) ->
result = []
rb = Math.floor(squareid / board.dim) * board.dim # base row for square
cx = squareid % board.dim * board.dim + squarecol # x for column
c = squareid % board.dim * board.dim + squarecol # column
for i in [0...board.dim] by 1
result.push(board.cellAt(cx, rb + i))
result.push(board.cellAt(rb + i, c))
return result
@getSquareNonColCells: (board, squareid, squarecol) ->
result = []
rb = Math.floor(squareid / board.dim) * board.dim # base row for square
cx = squareid % board.dim * board.dim # base x for column
c = squareid % board.dim * board.dim # base column
for i in [0...board.dim] by 1
continue if i is squarecol
for j in [0...board.dim] by 1
result.push(board.cellAt(cx + i, rb + j))
result.push(board.cellAt(rb + j, c + i))
return result
@getNonSquareColCells: (board, squareid, squarecol) ->
result = []
rb = Math.floor(squareid / board.dim) * board.dim # base row for square
cx = squareid % board.dim * board.dim + squarecol # x for column
c = squareid % board.dim * board.dim + squarecol # column
for i in [0...board.dim2] by 1
continue if i in [rb...rb+board.dim]
result.push(board.cellAt(cx, i))
result.push(board.cellAt(i, c))
return result
@getSquareRowCells: (board, squareid, squarerow) ->
result = []
r = Math.floor(squareid / board.dim) * board.dim + squarerow # row
cb = squareid % board.dim * board.dim # base col for square
ry = Math.floor(squareid / board.dim) * board.dim + squarerow # y for row
for i in [0...board.dim] by 1
result.push(board.cellAt(cb + i, ry))
result.push(board.cellAt(r, cb + i))
return result
@getSquareNonRowCells: (board, squareid, squarerow) ->
result = []
r = Math.floor(squareid / board.dim) * board.dim # base row
cb = squareid % board.dim * board.dim # base column for square
ry = Math.floor(squareid / board.dim) * board.dim # base y for row
for i in [0...board.dim] by 1
continue if i is squarerow
for j in [0...board.dim] by 1
result.push(board.cellAt(cb + j, ry + i))
result.push(board.cellAt(r + i, cb + j))
return result
@getNonSquareRowCells: (board, squareid, squarerow) ->
result = []
r = Math.floor(squareid / board.dim) * board.dim + squarerow # row
cb = squareid % board.dim * board.dim # base col for square
ry = Math.floor(squareid / board.dim) * board.dim + squarerow # y for row
for i in [0...board.dim2] by 1
continue if i in [cb...cb+board.dim]
result.push(board.cellAt(i, ry))
result.push(board.cellAt(r, i))
return result
@runAllRows: (board, func) ->
@ -162,8 +162,8 @@ class @SudokuSolver
'twoValPlacesColumn': 'Only two possible places for pair in column.'
'twoValPlacesDiag': 'Only two possible places for pair in diagonale.'
'oneUnknownAll': 'Only one possible value left.'
'oneColumnForValue': 'Only one possible column for value.'
'oneRowForValue': 'Only one possible row for value.'
'oneColumnForValue': 'Only one possible column in block for value.'
'oneRowForValue': 'Only one possible row in block for value.'
i = 1
while true

View File

@ -53,37 +53,37 @@
};
SudokuSolver.getSquareColCells = function(board, squareid, squarecol) {
var cx, i, rb, result, _i, _ref;
var c, i, rb, result, _i, _ref;
result = [];
rb = Math.floor(squareid / board.dim) * board.dim;
cx = squareid % board.dim * board.dim + squarecol;
c = squareid % board.dim * board.dim + squarecol;
for (i = _i = 0, _ref = board.dim; _i < _ref; i = _i += 1) {
result.push(board.cellAt(cx, rb + i));
result.push(board.cellAt(rb + i, c));
}
return result;
};
SudokuSolver.getSquareNonColCells = function(board, squareid, squarecol) {
var cx, i, j, rb, result, _i, _j, _ref, _ref1;
var c, i, j, rb, result, _i, _j, _ref, _ref1;
result = [];
rb = Math.floor(squareid / board.dim) * board.dim;
cx = squareid % board.dim * board.dim;
c = squareid % board.dim * board.dim;
for (i = _i = 0, _ref = board.dim; _i < _ref; i = _i += 1) {
if (i === squarecol) {
continue;
}
for (j = _j = 0, _ref1 = board.dim; _j < _ref1; j = _j += 1) {
result.push(board.cellAt(cx + i, rb + j));
result.push(board.cellAt(rb + j, c + i));
}
}
return result;
};
SudokuSolver.getNonSquareColCells = function(board, squareid, squarecol) {
var cx, i, rb, result, _i, _j, _ref, _ref1, _results;
var c, i, rb, result, _i, _j, _ref, _ref1, _results;
result = [];
rb = Math.floor(squareid / board.dim) * board.dim;
cx = squareid % board.dim * board.dim + squarecol;
c = squareid % board.dim * board.dim + squarecol;
for (i = _i = 0, _ref = board.dim2; _i < _ref; i = _i += 1) {
if (__indexOf.call((function() {
_results = [];
@ -92,43 +92,43 @@
}).apply(this), i) >= 0) {
continue;
}
result.push(board.cellAt(cx, i));
result.push(board.cellAt(i, c));
}
return result;
};
SudokuSolver.getSquareRowCells = function(board, squareid, squarerow) {
var cb, i, result, ry, _i, _ref;
var cb, i, r, result, _i, _ref;
result = [];
r = Math.floor(squareid / board.dim) * board.dim + squarerow;
cb = squareid % board.dim * board.dim;
ry = Math.floor(squareid / board.dim) * board.dim + squarerow;
for (i = _i = 0, _ref = board.dim; _i < _ref; i = _i += 1) {
result.push(board.cellAt(cb + i, ry));
result.push(board.cellAt(r, cb + i));
}
return result;
};
SudokuSolver.getSquareNonRowCells = function(board, squareid, squarerow) {
var cb, i, j, result, ry, _i, _j, _ref, _ref1;
var cb, i, j, r, result, _i, _j, _ref, _ref1;
result = [];
r = Math.floor(squareid / board.dim) * board.dim;
cb = squareid % board.dim * board.dim;
ry = Math.floor(squareid / board.dim) * board.dim;
for (i = _i = 0, _ref = board.dim; _i < _ref; i = _i += 1) {
if (i === squarerow) {
continue;
}
for (j = _j = 0, _ref1 = board.dim; _j < _ref1; j = _j += 1) {
result.push(board.cellAt(cb + j, ry + i));
result.push(board.cellAt(r + i, cb + j));
}
}
return result;
};
SudokuSolver.getNonSquareRowCells = function(board, squareid, squarerow) {
var cb, i, result, ry, _i, _j, _ref, _ref1, _results;
var cb, i, r, result, _i, _j, _ref, _ref1, _results;
result = [];
r = Math.floor(squareid / board.dim) * board.dim + squarerow;
cb = squareid % board.dim * board.dim;
ry = Math.floor(squareid / board.dim) * board.dim + squarerow;
for (i = _i = 0, _ref = board.dim2; _i < _ref; i = _i += 1) {
if (__indexOf.call((function() {
_results = [];
@ -137,7 +137,7 @@
}).apply(this), i) >= 0) {
continue;
}
result.push(board.cellAt(i, ry));
result.push(board.cellAt(r, i));
}
return result;
};