Skip to content

Commit 1abdf98

Browse files
add LearningChess solution
1 parent a9f1489 commit 1abdf98

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

easy200/LearningChess.java

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package easy200;
2+
3+
import java.util.Arrays;
4+
5+
public class LearningChess {
6+
public int numberOfMoves(String knight, String[] pieces) {
7+
8+
boolean[][] visited = new boolean[8][8];
9+
10+
for (int i = 0; i < pieces.length; i++) {
11+
int row = Integer.parseInt(String.valueOf(pieces[i].charAt(1))) - 1;
12+
int col = Integer.parseInt(String.valueOf(pieces[i].charAt(0) - 'a'));
13+
if (pieces[i].charAt(2) == knight.charAt(2))
14+
visited[row][col] = true;
15+
}
16+
17+
int kr = Integer.parseInt(String.valueOf(knight.charAt(1))) - 1;
18+
int kc = Integer.parseInt(String.valueOf(knight.charAt(0) - 'a'));
19+
20+
int ret = 0;
21+
if (kr - 2 >= 0 && kc + 1 < 8 && !visited[kr - 2][kc + 1])
22+
ret++;
23+
if (kr - 2 >= 0 && kc - 1 >= 0 && !visited[kr - 2][kc - 1])
24+
ret++;
25+
if (kr - 1 >= 0 && kc + 2 < 8 && !visited[kr - 1][kc + 2])
26+
ret++;
27+
if (kr - 1 >= 0 && kc - 2 >= 0 && !visited[kr - 1][kc - 2])
28+
ret++;
29+
if (kr + 1 < 8 && kc + 2 < 8 && !visited[kr + 1][kc + 2])
30+
ret++;
31+
if (kr + 1 < 8 && kc - 2 >= 0 && !visited[kr + 1][kc - 2])
32+
ret++;
33+
if (kr + 2 < 8 && kc + 1 < 8 && !visited[kr + 2][kc + 1])
34+
ret++;
35+
if (kr + 2 < 8 && kc - 1 >= 0 && !visited[kr + 2][kc - 1])
36+
ret++;
37+
38+
return ret;
39+
}
40+
41+
public static void main(String[] args) {
42+
LearningChess l = new LearningChess();
43+
System.out.println(l.numberOfMoves("g8b", new String[] { "a3w", "f4w", "e3b" }));
44+
}
45+
}

0 commit comments

Comments
 (0)