Skip to content

Commit 8c52645

Browse files
committed
docs: Update README.md
1 parent e477ce2 commit 8c52645

File tree

3 files changed

+25
-7
lines changed

3 files changed

+25
-7
lines changed

Algorithms.Tests/Problems/KnightTour/OpenKnightTourTests.cs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ private static bool IsKnightMove((int r, int c) a, (int r, int c) b)
2121
for (var c = 0; c < n; c++)
2222
{
2323
var v = board[r, c];
24-
if (v <= 0) continue; // ignore zeros in partial/invalid boards
24+
if (v <= 0)
25+
{
26+
continue;
27+
}
28+
// ignore zeros in partial/invalid boards
2529
if (!map.TryAdd(v, (r, c)))
2630
{
2731
throw new AssertionException($"Duplicate visit number detected: {v}.");
@@ -37,7 +41,9 @@ private static void AssertIsValidTour(int[,] board)
3741
Assert.That(board.GetLength(1), Is.EqualTo(n), "Board must be square.");
3842

3943
// 1) All cells visited and within [1..n*n]
40-
int min = int.MaxValue, max = int.MinValue;
44+
int min = int.MaxValue;
45+
int max = int.MinValue;
46+
4147
var seen = new bool[n * n + 1]; // 1..n*n
4248
for (var r = 0; r < n; r++)
4349
{
@@ -48,8 +54,15 @@ private static void AssertIsValidTour(int[,] board)
4854
$"Cell [{r},{c}] has out-of-range value {v}.");
4955
Assert.That(seen[v], Is.False, $"Duplicate value {v} found.");
5056
seen[v] = true;
51-
if (v < min) min = v;
52-
if (v > max) max = v;
57+
if (v < min)
58+
{
59+
min = v;
60+
}
61+
62+
if (v > max)
63+
{
64+
max = v;
65+
}
5366
}
5467
}
5568
Assert.That(min, Is.EqualTo(1), "Tour must start at 1.");
@@ -82,7 +95,7 @@ public void Tour_Throws_On_NonPositiveN()
8295
public void Tour_Throws_On_Unsolvable_N_2_3_4(int n)
8396
{
8497
var solver = new OpenKnightTour();
85-
var ex = Assert.Throws<ArgumentException>(() => solver.Tour(n));
98+
Assert.Throws<ArgumentException>(() => solver.Tour(n));
8699
}
87100

88101
[Test]

Algorithms/Problems/KnightTour/OpenKnightTour.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ private bool KnightTourHelper(int[,] board, (int Row, int Col) pos, int current)
129129
/// </remarks>
130130
private IEnumerable<(int R, int C)> GetValidMoves((int R, int C) position, int n)
131131
{
132-
int r = position.R, c = position.C;
132+
var r = position.R;
133+
var c = position.C;
133134

134135
var candidates = new (int Dr, int Dc)[]
135136
{
@@ -139,7 +140,9 @@ private bool KnightTourHelper(int[,] board, (int Row, int Col) pos, int current)
139140

140141
foreach (var (dr, dc) in candidates)
141142
{
142-
int nr = r + dr, nc = c + dc;
143+
var nr = r + dr;
144+
var nc = c + dc;
145+
143146
if (nr >= 0 && nr < n && nc >= 0 && nc < n)
144147
{
145148
yield return (nr, nc);

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ find more than one implementation for the same objective but using different alg
246246
* [Proposer](./Algorithms/Problems/StableMarriage/Proposer.cs)
247247
* [N-Queens](./Algorithms/Problems/NQueens)
248248
* [Backtracking](./Algorithms/Problems/NQueens/BacktrackingNQueensSolver.cs)
249+
* [Knight Tour](./Algorithms/Problems/KnightTour/)
250+
* [Open Knight Tour](./Algorithms/Problems/KnightTour/OpenKnightTour.cs)
249251
* [Dynamic Programming](./Algorithms/Problems/DynamicProgramming)
250252
* [Coin Change](./Algorithms/Problems/DynamicProgramming/CoinChange/DynamicCoinChangeSolver.cs)
251253
* [Levenshtein Distance](./Algorithms/Problems/DynamicProgramming/LevenshteinDistance/LevenshteinDistance.cs)

0 commit comments

Comments
 (0)