Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
Chess
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
9631408
Chess
Commits
633367f9
Commit
633367f9
authored
May 16, 2019
by
kimia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
who's turn?
parent
9dfb84e8
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
193 additions
and
176 deletions
+193
-176
Main.java
src/Main.java
+193
-176
No files found.
src/Main.java
View file @
633367f9
...
...
@@ -6,193 +6,210 @@ public class Main{
*@version 1.0
*@since 2019-5-7
*/
private
static
char
boardChar
[][]
=
new
char
[
8
][
8
]
;
private
static
void
printBoard
()
{
for
(
int
i
=
1
;
i
<
9
;
++
i
)
{
System
.
out
.
print
(
" "
+
i
)
;
}
System
.
out
.
print
(
"\n "
)
;
for
(
int
i
=
0
;
i
<
8
;
++
i
)
System
.
out
.
print
(
"+---"
)
;
System
.
out
.
print
(
"+\n"
)
;
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
System
.
out
.
print
(
(
char
)(
i
+
'a'
)
)
;
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
System
.
out
.
print
(
"| "
+
boardChar
[
i
][
j
]
+
" "
)
;
}
System
.
out
.
print
(
"|\n "
)
;
for
(
int
i2
=
0
;
i2
<
8
;
++
i2
)
System
.
out
.
print
(
"+---"
)
;
System
.
out
.
print
(
"+\n"
)
;
}
private
static
void
printBoard
()
{
for
(
int
i
=
1
;
i
<
9
;
++
i
)
{
System
.
out
.
print
(
" "
+
i
)
;
}
System
.
out
.
print
(
"\n "
)
;
for
(
int
i
=
0
;
i
<
8
;
++
i
)
System
.
out
.
print
(
"+---"
)
;
System
.
out
.
print
(
"+\n"
)
;
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
System
.
out
.
print
(
(
char
)(
i
+
'a'
)
)
;
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
System
.
out
.
print
(
"| "
+
boardChar
[
i
][
j
]
+
" "
)
;
}
System
.
out
.
print
(
"|\n "
)
;
for
(
int
i2
=
0
;
i2
<
8
;
++
i2
)
System
.
out
.
print
(
"+---"
)
;
System
.
out
.
print
(
"+\n"
)
;
}
}
private
static
void
updateBoard
(
Piece
pw
[],
Piece
pb
[])
{
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
boardChar
[
i
][
j
]
=
' '
;
}
}
for
(
Piece
p:
pw
)
{
if
(
p
.
isDeleted
())
continue
;
if
(
p
instanceof
Pawn
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'P'
;
if
(
p
instanceof
Bishop
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'B'
;
if
(
p
instanceof
Queen
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'Q'
;
if
(
p
instanceof
King
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'$'
;
if
(
p
instanceof
Rook
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'R'
;
if
(
p
instanceof
Knight
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'K'
;
}
for
(
Piece
p:
pb
)
{
if
(
p
.
isDeleted
())
continue
;
if
(
p
instanceof
Pawn
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'P'
;
if
(
p
instanceof
Bishop
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'B'
;
if
(
p
instanceof
Queen
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'Q'
;
if
(
p
instanceof
King
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'$'
;
if
(
p
instanceof
Rook
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'R'
;
if
(
p
instanceof
Knight
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'K'
;
}
private
static
void
updateBoard
(
Piece
pw
[],
Piece
pb
[])
{
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
boardChar
[
i
][
j
]
=
' '
;
}
}
for
(
Piece
p:
pw
)
{
if
(
p
.
isDeleted
())
continue
;
if
(
p
instanceof
Pawn
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'P'
;
if
(
p
instanceof
Bishop
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'B'
;
if
(
p
instanceof
Queen
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'Q'
;
if
(
p
instanceof
King
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'$'
;
if
(
p
instanceof
Rook
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'R'
;
if
(
p
instanceof
Knight
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'K'
;
}
for
(
Piece
p:
pb
)
{
if
(
p
.
isDeleted
())
continue
;
if
(
p
instanceof
Pawn
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'P'
;
if
(
p
instanceof
Bishop
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'B'
;
if
(
p
instanceof
Queen
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'Q'
;
if
(
p
instanceof
King
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'$'
;
if
(
p
instanceof
Rook
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'R'
;
if
(
p
instanceof
Knight
)
boardChar
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
'K'
;
}
}
private
static
void
checkCondition
(
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
{
for
(
Piece
p:
pw
)
{
if
(
p
instanceof
King
)
{
int
sw1
=
0
;
for
(
Piece
p1:
pb
)
{
if
(
p1
.
isValidMove
(
p
.
getCell
(),
board
,
pw
,
pb
))
{
sw1
=
1
;
}
}
if
(
sw1
==
1
)
System
.
out
.
println
(
"Check condition for White player!!"
)
;
}
}
for
(
Piece
p:
pb
)
{
if
(
p
instanceof
King
)
{
int
sw1
=
0
;
for
(
Piece
p1:
pw
)
{
if
(
p1
.
isValidMove
(
p
.
getCell
(),
board
,
pw
,
pb
))
{
sw1
=
1
;
}
}
if
(
sw1
==
1
)
System
.
out
.
println
(
"Check condition for Balck player!!"
)
;
}
}
private
static
void
checkCondition
(
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
{
for
(
Piece
p:
pw
)
{
if
(
p
instanceof
King
)
{
int
sw1
=
0
;
for
(
Piece
p1:
pb
)
{
if
(
p1
.
isValidMove
(
p
.
getCell
(),
board
,
pw
,
pb
))
{
sw1
=
1
;
}
}
if
(
sw1
==
1
)
System
.
out
.
println
(
"Check condition for White player!!"
)
;
}
}
for
(
Piece
p:
pb
)
{
if
(
p
instanceof
King
)
{
int
sw1
=
0
;
for
(
Piece
p1:
pw
)
{
if
(
p1
.
isValidMove
(
p
.
getCell
(),
board
,
pw
,
pb
))
{
sw1
=
1
;
}
}
if
(
sw1
==
1
)
System
.
out
.
println
(
"Check condition for Balck player!!"
)
;
}
}
}
public
static
void
main
(
String
[]
args
)
{
Scanner
in
=
new
Scanner
(
System
.
in
)
;
Player
white
=
new
Player
(
Color
.
WHITE
)
;
Player
black
=
new
Player
(
Color
.
BLACK
)
;
Piece
pw
[]
=
white
.
getPieces
()
;
Piece
pb
[]
=
black
.
getPieces
()
;
Cell
board
[][]
=
new
Cell
[
8
][
8
]
;
public
static
void
main
(
String
[]
args
)
{
Scanner
in
=
new
Scanner
(
System
.
in
)
;
Player
white
=
new
Player
(
Color
.
WHITE
)
;
Player
black
=
new
Player
(
Color
.
BLACK
)
;
Piece
pw
[]
=
white
.
getPieces
()
;
Piece
pb
[]
=
black
.
getPieces
()
;
Cell
board
[][]
=
new
Cell
[
8
][
8
]
;
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
board
[
i
][
j
]
=
new
Cell
(
i
,
j
)
;
}
}
for
(
Piece
p:
pw
)
{
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
p
.
getCell
()
;
}
for
(
Piece
p:
pb
)
{
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
p
.
getCell
()
;
}
int
wORb
=
0
;
updateBoard
(
pw
,
pb
)
;
printBoard
()
;
while
(
true
)
{
wORb
++
;
String
s
=
in
.
nextLine
()
;
if
(
s
.
length
()==
2
)
{
for
(
Piece
p:
pw
)
{
if
(
p
.
getCell
().
getRow
()==
s
.
charAt
(
0
)-
'a'
&&
p
.
getCell
().
getCol
()+
1
==
s
.
charAt
(
1
)-
'0'
)
{
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
if
(
p
.
isValidMove
(
board
[
i
][
j
],
board
,
pw
,
pb
))
{
System
.
out
.
print
(
(
char
)((
int
)
'a'
+
i
)
)
;
System
.
out
.
println
(
j
+
1
)
;
}
}
}
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
board
[
i
][
j
]
=
new
Cell
(
i
,
j
)
;
}
}
for
(
Piece
p:
pw
)
{
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
p
.
getCell
()
;
}
for
(
Piece
p:
pb
)
{
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()]
=
p
.
getCell
()
;
}
int
wORb
=
0
;
updateBoard
(
pw
,
pb
)
;
printBoard
()
;
while
(
true
)
{
if
(
wORb
%
2
==
0
)
System
.
out
.
println
(
"White player turn"
)
;
else
System
.
out
.
println
(
"Black player turn"
)
;
String
s
=
in
.
nextLine
()
;
if
(
s
.
length
()==
2
)
{
for
(
Piece
p:
pw
)
{
if
(
p
.
getCell
().
getRow
()==
s
.
charAt
(
0
)-
'a'
&&
p
.
getCell
().
getCol
()+
1
==
s
.
charAt
(
1
)-
'0'
)
{
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
if
(
p
.
isValidMove
(
board
[
i
][
j
],
board
,
pw
,
pb
))
{
System
.
out
.
print
(
(
char
)((
int
)
'a'
+
i
)
)
;
System
.
out
.
println
(
j
+
1
)
;
}
}
}
}
}
for
(
Piece
p:
pb
)
{
if
(
p
.
getCell
().
getRow
()==
s
.
charAt
(
0
)-
'a'
&&
p
.
getCell
().
getCol
()+
1
==
s
.
charAt
(
1
)-
'0'
)
{
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
if
(
p
.
isValidMove
(
board
[
i
][
j
],
board
,
pw
,
pb
))
{
System
.
out
.
print
(
(
char
)((
int
)
'a'
+
i
)
)
;
System
.
out
.
println
(
j
+
1
)
;
}
}
}
}
}
for
(
Piece
p:
pb
)
{
if
(
p
.
getCell
().
getRow
()==
s
.
charAt
(
0
)-
'a'
&&
p
.
getCell
().
getCol
()+
1
==
s
.
charAt
(
1
)-
'0'
)
{
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
for
(
int
j
=
0
;
j
<
8
;
++
j
)
{
if
(
p
.
isValidMove
(
board
[
i
][
j
],
board
,
pw
,
pb
))
{
System
.
out
.
print
(
(
char
)((
int
)
'a'
+
i
)
)
;
System
.
out
.
println
(
j
+
1
)
;
}
}
}
}
}
}
else
if
(
s
.
length
()==
5
)
{
for
(
Piece
p:
pw
)
{
if
(
p
.
getCell
().
getRow
()==
s
.
charAt
(
0
)-
'a'
&&
p
.
getCell
().
getCol
()+
1
==
s
.
charAt
(
1
)-
'0'
)
{
if
(
p
.
isValidMove
(
new
Cell
(
s
.
charAt
(
3
)-
'a'
,
s
.
charAt
(
4
)-
'1'
),
board
,
pw
,
pb
))
{
Cell
tmp
=
new
Cell
(
s
.
charAt
(
3
)-
'a'
,
s
.
charAt
(
4
)-
'1'
)
;
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()].
setEmpty
(
true
)
;
p
.
setCell
(
tmp
)
;
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()].
setEmpty
(
false
)
;
for
(
Piece
p1:
pb
)
{
if
(
p1
.
getCell
().
getRow
()==
tmp
.
getRow
()
&&
p1
.
getCell
().
getCol
()==
tmp
.
getCol
())
{
p1
.
setDeleted
(
true
)
;
}
}
if
(
p
instanceof
Pawn
)
{
Pawn
myPawn
=
(
Pawn
)
p
;
myPawn
.
setOnce
(
false
)
;
}
for
(
Piece
blackPiece:
pb
)
{
if
(
blackPiece
.
getCell
().
getRow
()==
tmp
.
getRow
()
&&
blackPiece
.
getCell
().
getCol
()==
tmp
.
getCol
())
blackPiece
.
setDeleted
(
true
)
;
}
}
}
}
for
(
Piece
p:
pb
)
{
if
(
p
.
getCell
().
getRow
()==
s
.
charAt
(
0
)-
'a'
&&
p
.
getCell
().
getCol
()+
1
==
s
.
charAt
(
1
)-
'0'
)
if
(
p
.
isValidMove
(
new
Cell
(
s
.
charAt
(
3
)-
'a'
,
s
.
charAt
(
4
)-
'1'
),
board
,
pw
,
pb
)
)
{
Cell
tmp
=
new
Cell
(
s
.
charAt
(
3
)-
'a'
,
s
.
charAt
(
4
)-
'1'
)
;
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()].
setEmpty
(
true
)
;
p
.
setCell
(
tmp
)
;
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()].
setEmpty
(
false
)
;
for
(
Piece
p1:
pw
)
{
if
(
p1
.
getCell
().
getRow
()==
tmp
.
getRow
()
&&
p1
.
getCell
().
getCol
()==
tmp
.
getCol
())
{
p1
.
setDeleted
(
true
)
;
}
}
if
(
p
instanceof
Pawn
)
{
Pawn
myPawn
=
(
Pawn
)
p
;
myPawn
.
setOnce
(
false
)
;
}
for
(
Piece
whitePiece:
pw
)
{
if
(
whitePiece
.
getCell
().
getRow
()==
tmp
.
getRow
()
&&
whitePiece
.
getCell
().
getCol
()==
tmp
.
getCol
())
whitePiece
.
setDeleted
(
true
)
;
}
}
}
checkCondition
(
board
,
pw
,
pb
)
;
updateBoard
(
pw
,
pb
)
;
printBoard
()
;
}
else
{
System
.
out
.
println
(
"Please enter a valid input!"
)
;
}
}
}
}
}
else
if
(
s
.
length
()==
5
)
{
if
(
wORb
%
2
==
0
)
{
for
(
Piece
p:
pw
)
{
if
(
p
.
getCell
().
getRow
()==
s
.
charAt
(
0
)-
'a'
&&
p
.
getCell
().
getCol
()+
1
==
s
.
charAt
(
1
)-
'0'
)
{
if
(
p
.
isValidMove
(
new
Cell
(
s
.
charAt
(
3
)-
'a'
,
s
.
charAt
(
4
)-
'1'
),
board
,
pw
,
pb
))
{
wORb
++
;
Cell
tmp
=
new
Cell
(
s
.
charAt
(
3
)-
'a'
,
s
.
charAt
(
4
)-
'1'
)
;
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()].
setEmpty
(
true
)
;
p
.
setCell
(
tmp
)
;
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()].
setEmpty
(
false
)
;
for
(
Piece
p1:
pb
)
{
if
(
p1
.
getCell
().
getRow
()==
tmp
.
getRow
()
&&
p1
.
getCell
().
getCol
()==
tmp
.
getCol
())
{
p1
.
setDeleted
(
true
)
;
}
}
if
(
p
instanceof
Pawn
)
{
Pawn
myPawn
=
(
Pawn
)
p
;
myPawn
.
setOnce
(
false
)
;
}
for
(
Piece
blackPiece:
pb
)
{
if
(
blackPiece
.
getCell
().
getRow
()==
tmp
.
getRow
()
&&
blackPiece
.
getCell
().
getCol
()==
tmp
.
getCol
())
blackPiece
.
setDeleted
(
true
)
;
}
}
}
}
if
(
wORb
%
2
==
0
)
System
.
out
.
println
(
"please enter a valid move!"
)
;
else
{
checkCondition
(
board
,
pw
,
pb
)
;
updateBoard
(
pw
,
pb
)
;
printBoard
()
;
}
}
else
{
for
(
Piece
p:
pb
)
{
if
(
p
.
getCell
().
getRow
()==
s
.
charAt
(
0
)-
'a'
&&
p
.
getCell
().
getCol
()+
1
==
s
.
charAt
(
1
)-
'0'
)
if
(
p
.
isValidMove
(
new
Cell
(
s
.
charAt
(
3
)-
'a'
,
s
.
charAt
(
4
)-
'1'
),
board
,
pw
,
pb
)
)
{
wORb
++
;
Cell
tmp
=
new
Cell
(
s
.
charAt
(
3
)-
'a'
,
s
.
charAt
(
4
)-
'1'
)
;
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()].
setEmpty
(
true
)
;
p
.
setCell
(
tmp
)
;
board
[
p
.
getCell
().
getRow
()][
p
.
getCell
().
getCol
()].
setEmpty
(
false
)
;
for
(
Piece
p1:
pw
)
{
if
(
p1
.
getCell
().
getRow
()==
tmp
.
getRow
()
&&
p1
.
getCell
().
getCol
()==
tmp
.
getCol
())
{
p1
.
setDeleted
(
true
)
;
}
}
if
(
p
instanceof
Pawn
)
{
Pawn
myPawn
=
(
Pawn
)
p
;
myPawn
.
setOnce
(
false
)
;
}
for
(
Piece
whitePiece:
pw
)
{
if
(
whitePiece
.
getCell
().
getRow
()==
tmp
.
getRow
()
&&
whitePiece
.
getCell
().
getCol
()==
tmp
.
getCol
())
whitePiece
.
setDeleted
(
true
)
;
}
}
}
if
(
wORb
%
2
==
1
)
System
.
out
.
println
(
"please enter a valid move!"
)
;
else
{
checkCondition
(
board
,
pw
,
pb
)
;
updateBoard
(
pw
,
pb
)
;
printBoard
()
;
}
}
}
else
{
System
.
out
.
println
(
"Please enter a valid input!"
)
;
}
}
}
}
}
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