Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
agile-java
/
ChessAndroid
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
59a9a544
authored
6 years ago
by
Paktalin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Lesson 5 Exercise 7 half done
parent
e73c7a32
master
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
91 additions
and
32 deletions
app/src/main/java/com/example/paktalin/agilejava_exercises/Board.java
app/src/main/java/com/example/paktalin/agilejava_exercises/Piece.java
app/src/test/java/com/example/paktalin/agilejava_exercises/BoardTest.java
app/src/test/java/com/example/paktalin/agilejava_exercises/PieceTest.java
app/src/main/java/com/example/paktalin/agilejava_exercises/Board.java
View file @
59a9a544
...
...
@@ -47,6 +47,14 @@ class Board {
placePiece
(
piece
,
retrieveRow
(
position
),
retrieveColumn
(
position
));
}
private
int
retrieveRow
(
String
position
)
{
return
ROW_COUNT
-
Integer
.
parseInt
(
position
.
split
(
""
)[
1
]);
}
private
int
retrieveColumn
(
String
position
)
{
return
fileToColumn
(
position
.
toCharArray
()[
0
]);
}
int
pieceCount
()
{
int
count
=
0
;
for
(
int
i
=
0
;
i
<
ROW_COUNT
;
i
++)
...
...
@@ -89,8 +97,9 @@ class Board {
else
buffer
.
append
(
board
[
i
][
j
].
getRepresentation
());
}
buffer
.
append
(
NEW_LINE
);
buffer
.
append
(
" "
+
(
ROW_COUNT
-
i
)
+
NEW_LINE
);
}
buffer
.
append
(
"abcdefgh"
);
return
buffer
.
toString
();
}
...
...
@@ -99,18 +108,30 @@ class Board {
return
(
int
)
file
-
(
int
)
firstColumnLetter
;
}
private
int
retrieveRow
(
String
positio
n
)
{
return
Integer
.
parseInt
(
position
.
split
(
""
)[
1
])
-
1
;
Piece
getPieceAtPosition
(
int
row
,
int
colum
n
)
{
return
board
[
row
][
column
]
;
}
private
int
retrieveColum
n
(
String
position
)
{
return
fileToColumn
(
position
.
toCharArray
()[
0
]
);
Piece
getPieceAtPositio
n
(
String
position
)
{
return
getPieceAtPosition
(
retrieveRow
(
position
),
retrieveColumn
(
position
)
);
}
Piece
getPieceAtPosition
(
String
position
)
{
int
row
=
retrieveRow
(
position
);
int
column
=
retrieveColumn
(
position
);
double
getStrength
(
Piece
.
Color
color
)
{
double
strength
=
0
;
for
(
int
i
=
0
;
i
<
ROW_COUNT
;
i
++)
{
for
(
int
j
=
0
;
j
<
COLUMN_COUNT
;
j
++)
{
Piece
piece
=
getPieceAtPosition
(
i
,
j
);
if
(
piece
!=
null
&&
piece
.
getColor
()
==
color
)
strength
+=
piece
.
getStrength
();
}
}
return
strength
;
}
return
board
[
row
][
column
];
double
getBlackStrength
()
{
return
getStrength
(
Piece
.
Color
.
Black
);
}
double
getWhiteStrength
()
{
return
getStrength
(
Piece
.
Color
.
White
);
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/java/com/example/paktalin/agilejava_exercises/Piece.java
View file @
59a9a544
...
...
@@ -46,14 +46,26 @@ public class Piece {
return
representation
;
}
double
getStrength
()
{
if
(
type
==
Type
.
Queen
)
return
9
;
if
(
type
==
Type
.
Rook
)
return
5
;
if
(
type
==
Type
.
Bishop
)
return
3
;
if
(
type
==
Type
.
Knight
)
return
2.5
;
if
(
type
==
Type
.
Pawn
)
return
0.5
;
return
0
;
}
boolean
isWhite
()
{
return
this
.
color
==
Color
.
White
;
}
boolean
isBlack
()
{
return
this
.
color
==
Color
.
Black
;
}
boolean
isType
(
Piece
.
Type
type
)
{
return
this
.
getType
()
==
type
;
}
...
...
This diff is collapsed.
Click to expand it.
app/src/test/java/com/example/paktalin/agilejava_exercises/BoardTest.java
View file @
59a9a544
...
...
@@ -20,16 +20,8 @@ public class BoardTest extends TestCase {
public
void
testCreate
()
{
board
.
initialize
();
assertEquals
(
32
,
board
.
pieceCount
());
String
blankRank
=
StringUtil
.
appendNewLine
(
"........"
);
assertEquals
(
StringUtil
.
appendNewLine
(
"RNBQKBNR"
)
+
StringUtil
.
appendNewLine
(
"PPPPPPPP"
)
+
blankRank
+
blankRank
+
blankRank
+
blankRank
+
StringUtil
.
appendNewLine
(
"pppppppp"
)
+
StringUtil
.
appendNewLine
(
"rnbqkbnr"
),
board
.
print
());
assertEquals
(
32
,
board
.
pieceCount
());
assertEquals
(
16
,
board
.
pieceCount
(
Black
));
assertEquals
(
16
,
board
.
pieceCount
(
White
));
...
...
@@ -52,11 +44,11 @@ public class BoardTest extends TestCase {
Piece
piece
=
board
.
getPieceAtPosition
(
"a8"
);
assertEquals
(
Rook
,
piece
.
getType
());
assertEquals
(
White
,
piece
.
getColor
());
assertEquals
(
Black
,
piece
.
getColor
());
piece
=
board
.
getPieceAtPosition
(
"e1"
);
assertEquals
(
King
,
piece
.
getType
());
assertEquals
(
Black
,
piece
.
getColor
());
assertEquals
(
White
,
piece
.
getColor
());
}
public
void
testPlacePieces
()
{
...
...
@@ -67,4 +59,47 @@ public class BoardTest extends TestCase {
assertEquals
(
Bishop
,
bishop
.
getType
());
assertEquals
(
Black
,
bishop
.
getColor
());
}
public
void
testOverallStrength
()
{
verifyStrength
(
Piece
.
createQueen
(
Black
),
"e6"
,
9.0
,
0.0
);
verifyStrength
(
Piece
.
createQueen
(
White
),
"g4"
,
9.0
,
9.0
);
verifyStrength
(
Piece
.
createKing
(
Black
),
"b8"
,
9.0
,
9.0
);
verifyStrength
(
Piece
.
createKing
(
White
),
"f1"
,
9.0
,
9.0
);
verifyStrength
(
Piece
.
createRook
(
Black
),
"c8"
,
14.0
,
9.0
);
verifyStrength
(
Piece
.
createRook
(
White
),
"e1"
,
14.0
,
14.0
);
verifyStrength
(
Piece
.
createPawn
(
Black
),
"a7"
,
15.0
,
14.0
);
verifyStrength
(
Piece
.
createPawn
(
White
),
"f2"
,
15.0
,
14.5
);
verifyStrength
(
Piece
.
createPawn
(
Black
),
"c7"
,
16.0
,
14.5
);
verifyStrength
(
Piece
.
createPawn
(
White
),
"g2"
,
16.0
,
15.0
);
verifyStrength
(
Piece
.
createBishop
(
Black
),
"d7"
,
19.0
,
15.0
);
verifyStrength
(
Piece
.
createPawn
(
White
),
"f3"
,
19.0
,
15.5
);
verifyStrength
(
Piece
.
createPawn
(
Black
),
"b6"
,
20.0
,
15.5
);
verifyStrength
(
Piece
.
createPawn
(
White
),
"h3"
,
18.5
,
16.0
);
verifyStrength
(
Piece
.
createKnight
(
White
),
"f4"
,
18.5
,
18.5
);
assertEquals
(
".KR..... 8\n"
+
"P.PB.... 7\n"
+
".P..Q... 6\n"
+
"........ 5\n"
+
".....nq. 4\n"
+
".....p.p 3\n"
+
".....pp. 2\n"
+
"....rk.. 1\n"
+
"abcdefgh"
,
board
.
print
());
}
private
void
verifyStrength
(
Piece
piece
,
String
position
,
double
blackStrength
,
double
whiteStrength
)
{
board
.
placePiece
(
piece
,
position
);
assertEquals
(
blackStrength
,
board
.
getBlackStrength
());
assertEquals
(
whiteStrength
,
board
.
getWhiteStrength
());
}
}
This diff is collapsed.
Click to expand it.
app/src/test/java/com/example/paktalin/agilejava_exercises/PieceTest.java
View file @
59a9a544
...
...
@@ -29,14 +29,4 @@ public class PieceTest extends TestCase {
assertEquals
(
type
,
blackPiece
.
getType
());
assertEquals
(
Character
.
toUpperCase
(
representation
),
blackPiece
.
getRepresentation
());
}
public
void
testLanguage
()
{
assertEquals
(
8
,
Integer
.
parseInt
(
"a8"
.
split
(
""
)[
1
]));
assertEquals
(
0
,
fileToColumn
(
"a8"
.
toCharArray
()[
0
]));
}
private
int
fileToColumn
(
char
file
)
{
char
firstColumnLetter
=
'a'
;
return
(
int
)
file
-
(
int
)
firstColumnLetter
;
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment