[gnome-sudoku] SudokuBoard: Simplify private variables
- From: Parin Porecha <parinporecha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-sudoku] SudokuBoard: Simplify private variables
- Date: Tue, 22 Jul 2014 22:08:02 +0000 (UTC)
commit c50ebede0c8fc3b71c1ea34cac9394c3275c4c6c
Author: Parin Porecha <parinporecha gmail com>
Date: Tue Jul 22 23:47:49 2014 +0200
SudokuBoard: Simplify private variables
lib/sudoku-board.vala | 126 ++++++++++++++++++++----------------------------
1 files changed, 53 insertions(+), 73 deletions(-)
---
diff --git a/lib/sudoku-board.vala b/lib/sudoku-board.vala
index 13cc824..cd159eb 100644
--- a/lib/sudoku-board.vala
+++ b/lib/sudoku-board.vala
@@ -17,32 +17,16 @@ public class SudokuBoard : Object
public double previous_played_time { set; get; default = 0; }
/* Number of rows in one block */
- private int _block_rows;
- public int block_rows
- {
- get { return _block_rows; }
- }
+ public int block_rows { get; private set; }
/* Number of columns in one block */
- private int _block_cols;
- public int block_cols
- {
- get { return _block_cols; }
- }
+ public int block_cols { get; private set; }
/* Number of rows in board */
- private int _rows;
- public int rows
- {
- get { return _rows; }
- }
+ public int rows { get; private set; }
/* Number of columns in board */
- private int _cols;
- public int cols
- {
- get { return _cols; }
- }
+ public int cols { get; private set; }
/* Maximum possible val on board. 9 for 3x3 sudoku*/
public int max_val
@@ -56,23 +40,19 @@ public class SudokuBoard : Object
}
/* the number of filled squares on the board */
- private int _filled;
- public int filled
- {
- get { return _filled; }
- }
+ public int filled { get; private set; }
/* the number of fixed squares on the board */
public int fixed { get; private set; }
public bool complete
{
- get { return _filled == _cols * _rows && !broken; }
+ get { return filled == cols * rows && !broken; }
}
public bool is_empty ()
{
- return _filled == fixed;
+ return filled == fixed;
}
public double difficulty_rating;
@@ -112,19 +92,19 @@ public class SudokuBoard : Object
public SudokuBoard (int block_rows = 3, int block_cols = 3)
{
- _rows = _cols = block_rows * block_cols;
- _block_rows = block_rows;
- _block_cols = block_cols;
- cells = new int[_rows, _cols];
- is_fixed = new bool[_rows, _cols];
- possible_in_row = new bool[_rows, _cols];
- possible_in_col = new bool[_cols, _rows];
- possible_in_block = new bool[_block_rows, _block_cols, _block_rows * _block_cols];
- earmarks = new bool[_rows, _cols, max_val];
-
- for (var l1 = 0; l1 < _rows; l1++)
+ rows = cols = block_rows * block_cols;
+ this.block_rows = block_rows;
+ this.block_cols = block_cols;
+ cells = new int[rows, cols];
+ is_fixed = new bool[rows, cols];
+ possible_in_row = new bool[rows, cols];
+ possible_in_col = new bool[cols, rows];
+ possible_in_block = new bool[block_rows, block_cols, block_rows * block_cols];
+ earmarks = new bool[rows, cols, max_val];
+
+ for (var l1 = 0; l1 < rows; l1++)
{
- for (var l2 = 0; l2 < _cols; l2++)
+ for (var l2 = 0; l2 < cols; l2++)
{
cells[l1, l2] = 0;
is_fixed[l1, l2] = false;
@@ -132,9 +112,9 @@ public class SudokuBoard : Object
possible_in_col[l2, l1] = true;
}
}
- for (var l1 = 0; l1 < _block_rows; l1++)
+ for (var l1 = 0; l1 < block_rows; l1++)
{
- for (var l2 = 0; l2 < _block_cols; l2++)
+ for (var l2 = 0; l2 < block_cols; l2++)
{
for (var l3 = 0; l3 < max_val; l3++)
possible_in_block[l1, l2, l3] = true;
@@ -144,10 +124,10 @@ public class SudokuBoard : Object
broken_coords = new HashSet<Coord?>((HashDataFunc<Coord>) Coord.hash, (EqualDataFunc<Coord>)
Coord.equal);
coords_for_col = new ArrayList<ArrayList<Coord?>> ();
- for (int col = 0; col < _cols; col++)
+ for (int col = 0; col < cols; col++)
{
coords_for_col.add (new ArrayList<Coord?> ((EqualDataFunc<Coord>) Coord.equal));
- for (int row = 0; row < _rows; row++)
+ for (int row = 0; row < rows; row++)
{
coords_for_col.get (col).add (Coord(row, col));
}
@@ -156,10 +136,10 @@ public class SudokuBoard : Object
coords_for_col = coords_for_col.read_only_view;
coords_for_row = new ArrayList<ArrayList<Coord?>> ();
- for (int row = 0; row < _rows; row++)
+ for (int row = 0; row < rows; row++)
{
coords_for_row.add (new ArrayList<Coord?> ((EqualDataFunc<Coord>) Coord.equal));
- for (int col = 0; col < _cols; col++)
+ for (int col = 0; col < cols; col++)
{
coords_for_row.get (row).add (Coord(row, col));
}
@@ -168,23 +148,23 @@ public class SudokuBoard : Object
coords_for_row = coords_for_row.read_only_view;
coords_for_block = new HashMap<Coord?, ArrayList<Coord?>> ((HashDataFunc<Coord>) Coord.hash,
(EqualDataFunc<Coord>) Coord.equal);
- for (int col = 0; col < _block_cols; col++)
+ for (int col = 0; col < block_cols; col++)
{
- for (int row = 0; row < _block_rows; row++)
+ for (int row = 0; row < block_rows; row++)
{
coords_for_block.set (Coord(row, col), new ArrayList<Coord?> ((EqualDataFunc<Coord>)
Coord.equal));
}
}
- for (int col = 0; col < _cols; col++)
+ for (int col = 0; col < cols; col++)
{
- for (int row = 0; row < _rows; row++)
+ for (int row = 0; row < rows; row++)
{
- coords_for_block.get(Coord(row / _block_rows, col / _block_cols)).add(Coord(row, col));
+ coords_for_block.get(Coord(row / block_rows, col / block_cols)).add(Coord(row, col));
}
}
- for (int col = 0; col < _block_cols; col++)
+ for (int col = 0; col < block_cols; col++)
{
- for (int row = 0; row < _block_rows; row++)
+ for (int row = 0; row < block_rows; row++)
{
coords_for_block[Coord(row, col)] = coords_for_block[Coord(row, col)].read_only_view;
}
@@ -194,13 +174,13 @@ public class SudokuBoard : Object
public SudokuBoard clone ()
{
- SudokuBoard board = new SudokuBoard (_block_rows , _block_cols);
+ SudokuBoard board = new SudokuBoard (block_rows , block_cols);
board.cells = cells;
board.is_fixed = is_fixed;
board.possible_in_row = possible_in_row;
board.possible_in_col = possible_in_col;
board.possible_in_block = possible_in_block;
- board._filled = _filled;
+ board.filled = filled;
board.fixed = fixed;
board.broken_coords.add_all (broken_coords);
board.earmarks = earmarks;
@@ -212,7 +192,7 @@ public class SudokuBoard : Object
{
//stdout.printf("Processing %s\n", s);
- int number_of_cells = _cols * _rows;
+ int number_of_cells = cols * rows;
string[] cells = s.split (delimiter, number_of_cells);
@@ -232,7 +212,7 @@ public class SudokuBoard : Object
assert (val >= 1 && val <= max_val);
- insert (i / _cols, i % _cols, val, true);
+ insert (i / cols, i % cols, val, true);
}
}
}
@@ -240,7 +220,7 @@ public class SudokuBoard : Object
public bool is_possible (int row, int col, int val)
{
val--;
- return (possible_in_row[row, val] && possible_in_col[col, val] && possible_in_block [row /
_block_cols, col / _block_rows, val]);
+ return (possible_in_row[row, val] && possible_in_col[col, val] && possible_in_block [row /
block_cols, col / block_rows, val]);
}
public int count_possibilities (int row, int col)
@@ -280,7 +260,7 @@ public class SudokuBoard : Object
public Coord get_block_for(int row, int col)
{
- return Coord(row / _block_rows, col / _block_cols);
+ return Coord(row / block_rows, col / block_cols);
}
public void insert (int row, int col, int val, bool is_fixed = false)
@@ -299,7 +279,7 @@ public class SudokuBoard : Object
cells[row, col] = val;
this.is_fixed[row, col] = is_fixed;
- _filled++;
+ filled++;
if (is_fixed)
fixed++;
@@ -313,16 +293,16 @@ public class SudokuBoard : Object
mark_breakages_for(coords_for_col[col], val); // Mark the breakages
}
- if (!possible_in_block[row / _block_cols, col / _block_rows, val - 1]) // If val was not possible in
this block
+ if (!possible_in_block[row / block_cols, col / block_rows, val - 1]) // If val was not possible in
this block
{
- mark_breakages_for(coords_for_block[Coord(row / _block_cols, col / _block_rows)], val); // Mark
the breakages
+ mark_breakages_for(coords_for_block[Coord(row / block_cols, col / block_rows)], val); // Mark
the breakages
}
// Then just mark it as not possible
val--;
possible_in_row[row, val] = false;
possible_in_col[col, val] = false;
- possible_in_block[row / _block_cols, col / _block_rows, val] = false;
+ possible_in_block[row / block_cols, col / block_rows, val] = false;
if (complete)
completed();
@@ -367,18 +347,18 @@ public class SudokuBoard : Object
// Remove all the related breakages in the related sets of cells
remove_breakages_for(coords_for_row[row], previous_val);
remove_breakages_for(coords_for_col[col], previous_val);
- remove_breakages_for(coords_for_block[Coord(row / _block_rows, col / _block_cols)],
previous_val);
+ remove_breakages_for(coords_for_block[Coord(row / block_rows, col / block_cols)], previous_val);
broken_coords.remove(Coord(row, col));
// Re-mark all the breakages,
mark_breakages_for(coords_for_row[row], previous_val);
mark_breakages_for(coords_for_col[col], previous_val);
- mark_breakages_for(coords_for_block[Coord(row / _block_rows, col / _block_cols)], previous_val);
+ mark_breakages_for(coords_for_block[Coord(row / block_rows, col / block_cols)], previous_val);
// and update the possibilities accordingly
possible_in_row[row, previous_val - 1] = get_occurances(coords_for_row[row], previous_val).size
== 0;
possible_in_col[col, previous_val - 1] = get_occurances(coords_for_col[col], previous_val).size
== 0;
- possible_in_block[row / _block_cols, col / _block_rows, previous_val - 1] =
get_occurances(coords_for_block[Coord(row / _block_rows, col / _block_cols)], previous_val).size == 0;
+ possible_in_block[row / block_cols, col / block_rows, previous_val - 1] =
get_occurances(coords_for_block[Coord(row / block_rows, col / block_cols)], previous_val).size == 0;
}
else // Not previously broken, so just mark as a possible value
{
@@ -386,10 +366,10 @@ public class SudokuBoard : Object
possible_in_row[row, previous_val] = true;
possible_in_col[col, previous_val] = true;
- possible_in_block[row / _block_cols, col / _block_rows, previous_val] = true;
+ possible_in_block[row / block_cols, col / block_rows, previous_val] = true;
}
- _filled--;
+ filled--;
}
public Set<Coord?> get_occurances(Gee.List<Coord?> coords, int val)
@@ -441,9 +421,9 @@ public class SudokuBoard : Object
public void to_initial_state ()
{
- for (var l1 = 0; l1 < _rows; l1++)
+ for (var l1 = 0; l1 < rows; l1++)
{
- for (var l2 = 0; l2 < _cols; l2++)
+ for (var l2 = 0; l2 < cols; l2++)
{
if (!is_fixed[l1, l2])
remove (l1, l2);
@@ -491,9 +471,9 @@ public class SudokuBoard : Object
public string to_string (bool get_original_state = false)
{
var board_string = "";
- for (var i = 0; i < _rows; i++)
+ for (var i = 0; i < rows; i++)
{
- for (var j = 0; j < _cols; j++)
+ for (var j = 0; j < cols; j++)
{
if (is_fixed[i, j])
board_string += cells[i, j].to_string ();
@@ -511,9 +491,9 @@ public class SudokuBoard : Object
public HashMap<Coord?, ArrayList<int>> calculate_open_squares () {
var possibilities = new HashMap<Coord?, ArrayList<int>> ((HashDataFunc<Coord>) Coord.hash,
(EqualDataFunc<Coord>) Coord.equal);
- for (var l1 = 0; l1 < _rows; l1++)
+ for (var l1 = 0; l1 < rows; l1++)
{
- for (var l2 = 0; l2 < _cols; l2++)
+ for (var l2 = 0; l2 < cols; l2++)
{
if (cells[l1, l2] == 0)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]