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
9dfb84e8
Commit
9dfb84e8
authored
5 years ago
by
kimia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
logic with checkMate
parent
c7036982
master
No related merge requests found
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
376 additions
and
194 deletions
+376
-194
Bishop.java
src/Bishop.java
+16
-3
Cell.java
src/Cell.java
+1
-2
King.java
src/King.java
+15
-4
Knight.java
src/Knight.java
+22
-2
Main.java
src/Main.java
+161
-122
Pawn.java
src/Pawn.java
+60
-47
Piece.java
src/Piece.java
+2
-2
Queen.java
src/Queen.java
+78
-10
Rook.java
src/Rook.java
+21
-2
No files found.
src/Bishop.java
View file @
9dfb84e8
public
class
Bishop
extends
Piece
{
public
Bishop
(
Cell
cell
,
Color
color
)
{
super
(
cell
,
color
)
;
}
@Override
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][])
{
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
{
if
(
super
.
isDeleted
())
return
false
;
int
sw
=
0
;
if
(
super
.
getColor
()
==
Color
.
BLACK
)
{
for
(
Piece
p:
pw
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
else
{
for
(
Piece
p:
pb
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
if
(
(
(
Math
.
abs
(
this
.
getCell
().
getCol
()-
c
.
getCol
())
==
Math
.
abs
(
this
.
getCell
().
getRow
()-
c
.
getRow
()))
)
&&
c
.
isEmpty
(
)
)
{
)
&&
(
c
.
isEmpty
()
||
(!
c
.
isEmpty
()
&&
sw
==
1
)
)
)
{
if
(
this
.
getCell
().
getCol
()
<
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
<
c
.
getRow
())
{
for
(
int
i
=-
1
;
i
>-
8
;
--
i
)
{
if
(!
board
[
this
.
getCell
().
getRow
()-
i
][
this
.
getCell
().
getCol
()-
i
].
isEmpty
())
return
false
;
...
...
This diff is collapsed.
Click to expand it.
src/Cell.java
View file @
9dfb84e8
public
class
Cell
{
class
Cell
{
private
int
row
,
col
;
private
boolean
empty
;
...
...
This diff is collapsed.
Click to expand it.
src/King.java
View file @
9dfb84e8
...
...
@@ -4,13 +4,24 @@ public class King extends Piece {
}
@Override
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][])
{
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
{
if
(
super
.
isDeleted
())
return
false
;
int
sw
=
0
;
if
(
super
.
getColor
()
==
Color
.
BLACK
)
{
for
(
Piece
p:
pw
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
else
{
for
(
Piece
p:
pb
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
return
(
(
(
this
.
getCell
().
getCol
()
==
c
.
getCol
()
&&
Math
.
abs
(
this
.
getCell
().
getRow
()
-
c
.
getRow
())
==
1
)
||
(
this
.
getCell
().
getRow
()
==
c
.
getRow
()
&&
Math
.
abs
(
this
.
getCell
().
getCol
()
-
c
.
getCol
())
==
1
)
||
(
Math
.
abs
(
this
.
getCell
().
getCol
()-
c
.
getCol
())==
1
&&
Math
.
abs
(
this
.
getCell
().
getRow
()-
c
.
getRow
())==
1
)
)
&&
c
.
isEmpty
()
)
&&
(
c
.
isEmpty
()
||
(!
c
.
isEmpty
()
&&
sw
==
1
))
)
;
}
}
This diff is collapsed.
Click to expand it.
src/Knight.java
View file @
9dfb84e8
/**
* knight class show the knight's moves that is like L
*@author kimiadorani
*@version 1.0
*@since 2019-5-7
*/
public
class
Knight
extends
Piece
{
...
...
@@ -6,13 +13,26 @@ public class Knight extends Piece {
}
@Override
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][])
{
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
{
if
(
super
.
isDeleted
())
return
false
;
int
sw
=
0
;
if
(
super
.
getColor
()
==
Color
.
BLACK
)
{
for
(
Piece
p:
pw
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
else
{
for
(
Piece
p:
pb
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
return
(
(
(
Math
.
abs
(
this
.
getCell
().
getCol
()-
c
.
getCol
())
+
Math
.
abs
(
this
.
getCell
().
getRow
()
-
c
.
getRow
())
==
3
)
&&
(
Math
.
abs
(
this
.
getCell
().
getCol
()-
c
.
getCol
())
!=
0
&&
Math
.
abs
(
this
.
getCell
().
getRow
()
-
c
.
getRow
())
!=
0
)
)
&&
c
.
isEmpty
(
)
&&
(
c
.
isEmpty
()
||
(!
c
.
isEmpty
()
&&
sw
==
1
)
)
)
;
}
}
This diff is collapsed.
Click to expand it.
src/Main.java
View file @
9dfb84e8
import
java.util.Scanner
;
public
class
Main
{
/**
*prints board and control the moves of the pieces
*@author kimiadorani
*@version 1.0
*@since 2019-5-7
*/
private
static
char
boardChar
[][]
=
new
char
[
8
][
8
]
;
private
static
char
boardChar
[][]
=
new
char
[
8
][
8
]
;
private
static
void
printBoard
()
{
private
static
void
printBoard
()
{
for
(
int
i
=
1
;
i
<
9
;
++
i
)
{
System
.
out
.
print
(
" "
+
i
)
;
}
...
...
@@ -24,7 +28,7 @@ public class Main{
}
}
private
static
void
updateBoard
(
Piece
pw
[],
Piece
pb
[])
{
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
]
=
' '
;
...
...
@@ -50,7 +54,32 @@ public class Main{
}
}
public
static
void
main
(
String
[]
args
)
{
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
)
;
...
...
@@ -81,7 +110,7 @@ public class Main{
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
))
{
if
(
p
.
isValidMove
(
board
[
i
][
j
],
board
,
pw
,
pb
))
{
System
.
out
.
print
(
(
char
)((
int
)
'a'
+
i
)
)
;
System
.
out
.
println
(
j
+
1
)
;
}
...
...
@@ -95,7 +124,7 @@ public class Main{
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
))
{
if
(
p
.
isValidMove
(
board
[
i
][
j
],
board
,
pw
,
pb
))
{
System
.
out
.
print
(
(
char
)((
int
)
'a'
+
i
)
)
;
System
.
out
.
println
(
j
+
1
)
;
}
...
...
@@ -109,11 +138,16 @@ public class Main{
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
))
{
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
)
;
...
...
@@ -129,11 +163,16 @@ public class Main{
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
)
)
{
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
)
;
...
...
@@ -145,6 +184,7 @@ public class Main{
}
}
}
checkCondition
(
board
,
pw
,
pb
)
;
updateBoard
(
pw
,
pb
)
;
printBoard
()
;
}
...
...
@@ -154,6 +194,5 @@ public class Main{
}
}
}
This diff is collapsed.
Click to expand it.
src/Pawn.java
View file @
9dfb84e8
public
class
Pawn
extends
Piece
{
boolean
once
,
end
;
private
boolean
once
,
end
;
public
Pawn
(
Cell
cell
,
Color
color
)
{
public
Pawn
(
Cell
cell
,
Color
color
)
{
super
(
cell
,
color
)
;
this
.
once
=
true
;
this
.
end
=
false
;
}
public
void
setOnce
(
boolean
once
)
{
public
void
setOnce
(
boolean
once
)
{
this
.
once
=
once
;
}
public
void
setEnd
(
boolean
end
)
{
public
void
setEnd
(
boolean
end
)
{
this
.
end
=
end
;
}
@Override
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][])
{
@Override
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
{
if
(
super
.
isDeleted
())
return
false
;
if
(
super
.
getColor
()==
Color
.
BLACK
&&
super
.
getCell
().
getRow
()==
0
)
end
=
true
;
if
(
super
.
getColor
()==
Color
.
WHITE
&&
super
.
getCell
().
getRow
()==
7
)
end
=
true
;
int
sw
=
0
;
if
(
super
.
getColor
()
==
Color
.
BLACK
)
{
for
(
Piece
p:
pw
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
else
{
for
(
Piece
p:
pb
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
if
(
once
)
{
//once = false ;
//System.out.println("row: " + this.getCell().getRow()) ;
...
...
@@ -36,7 +49,7 @@ public boolean isValidMove(Cell c, Cell board[][]) {
((
this
.
getCell
().
getCol
()
==
c
.
getCol
())
&&
(
Math
.
abs
(
this
.
getCell
().
getRow
()-
c
.
getRow
())==
1
))
||
(
Math
.
abs
(
this
.
getCell
().
getCol
()-
c
.
getCol
())==
Math
.
abs
(
this
.
getCell
().
getRow
()-
c
.
getRow
())
&&
this
.
getCell
().
getRow
()-
c
.
getRow
()
==
1
)
Math
.
abs
(
this
.
getCell
().
getCol
()-
c
.
getCol
())==
1
&&
sw
==
1
)
)
return
true
;
else
return
false
;
}
...
...
@@ -47,11 +60,11 @@ public boolean isValidMove(Cell c, Cell board[][]) {
(
this
.
getCell
().
getRow
()-
c
.
getRow
()==-
1
&&
super
.
getColor
()==
Color
.
WHITE
))
)
||
(
Math
.
abs
(
this
.
getCell
().
getCol
()-
c
.
getCol
())==
Math
.
abs
(
this
.
getCell
().
getRow
()-
c
.
getRow
())
&&
((
this
.
getCell
().
getRow
()-
c
.
getRow
()==
1
&&
super
.
getColor
()==
Color
.
BLACK
)
||
(
this
.
getCell
().
getRow
()-
c
.
getRow
()==-
1
&&
super
.
getColor
()==
Color
.
WHITE
))
)
((
this
.
getCell
().
getRow
()-
c
.
getRow
()==
1
&&
super
.
getColor
()==
Color
.
BLACK
&&
sw
==
1
)
||
(
this
.
getCell
().
getRow
()-
c
.
getRow
()==-
1
&&
super
.
getColor
()==
Color
.
WHITE
&&
sw
==
1
))
)
)
return
true
;
else
return
false
;
}
}
}
}
}
This diff is collapsed.
Click to expand it.
src/Piece.java
View file @
9dfb84e8
...
...
@@ -11,7 +11,7 @@ public abstract class Piece {
this
.
deleted
=
false
;
}
public
abstract
boolean
isValidMove
(
Cell
cell
,
Cell
board
[]
[])
;
public
abstract
boolean
isValidMove
(
Cell
c
,
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
;
public
Cell
getCell
()
{
return
cell
;
...
...
This diff is collapsed.
Click to expand it.
src/Queen.java
View file @
9dfb84e8
...
...
@@ -2,18 +2,86 @@
public
class
Queen
extends
Piece
{
public
Queen
(
Cell
cell
,
Color
color
)
{
super
(
cell
,
color
)
;
super
(
cell
,
color
)
;
}
@Override
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][])
{
return
((
(
this
.
getCell
().
getCol
()
==
c
.
getCol
())
||
(
this
.
getCell
().
getRow
()
==
c
.
getRow
())
||
(
Math
.
abs
(
this
.
getCell
().
getCol
()
-
c
.
getCol
())
==
Math
.
abs
(
this
.
getCell
().
getRow
()
-
c
.
getRow
()))
)
&&
c
.
isEmpty
()
);
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
{
if
(
super
.
isDeleted
())
return
false
;
int
sw
=
0
;
if
(
super
.
getColor
()
==
Color
.
BLACK
)
{
for
(
Piece
p:
pw
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
else
{
for
(
Piece
p:
pb
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
if
(
(
(
this
.
getCell
().
getCol
()
==
c
.
getCol
())
||
(
this
.
getCell
().
getRow
()
==
c
.
getRow
()
)
||
(
Math
.
abs
(
this
.
getCell
().
getCol
()-
c
.
getCol
())
==
Math
.
abs
(
this
.
getCell
().
getRow
()-
c
.
getRow
()))
)
&&
(
c
.
isEmpty
()
||
(!
c
.
isEmpty
()
&&
sw
==
1
))
)
{
if
(
this
.
getCell
().
getCol
()
<
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
<
c
.
getRow
())
{
for
(
int
i
=-
1
;
i
>-
8
;
--
i
)
{
if
(!
board
[
this
.
getCell
().
getRow
()-
i
][
this
.
getCell
().
getCol
()-
i
].
isEmpty
())
return
false
;
if
(
this
.
getCell
().
getRow
()-
i
==
c
.
getRow
())
break
;
}
}
if
(
this
.
getCell
().
getCol
()
<
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
>
c
.
getRow
())
{
for
(
int
i
=-
1
;
i
>-
8
;
--
i
)
{
if
(!
board
[
this
.
getCell
().
getRow
()+
i
][
this
.
getCell
().
getCol
()-
i
].
isEmpty
())
{
//System.out.println("294 294") ;
return
false
;
}
if
(
this
.
getCell
().
getRow
()+
i
==
c
.
getRow
())
break
;
}
}
if
(
this
.
getCell
().
getCol
()
>
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
<
c
.
getRow
())
{
for
(
int
i
=
1
;
i
<
8
;
++
i
)
{
if
(!
board
[
this
.
getCell
().
getRow
()+
i
][
this
.
getCell
().
getCol
()-
i
].
isEmpty
())
return
false
;
if
(
this
.
getCell
().
getCol
()-
i
==
c
.
getCol
())
break
;
}
}
if
(
this
.
getCell
().
getCol
()
>
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
>
c
.
getRow
())
{
for
(
int
i
=-
1
;
i
>-
8
;
--
i
)
{
if
(!
board
[
this
.
getCell
().
getRow
()+
i
][
this
.
getCell
().
getCol
()+
i
].
isEmpty
())
return
false
;
if
(
this
.
getCell
().
getCol
()+
i
==
c
.
getCol
())
break
;
}
}
if
(
this
.
getCell
().
getCol
()
==
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
<
c
.
getRow
())
{
for
(
int
i
=
1
;
i
<
8
;
++
i
)
{
if
(!
board
[
this
.
getCell
().
getRow
()+
i
][
c
.
getCol
()].
isEmpty
())
return
false
;
if
(
this
.
getCell
().
getRow
()+
i
==
c
.
getRow
())
break
;
}
}
if
(
this
.
getCell
().
getCol
()
==
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
>
c
.
getRow
())
{
for
(
int
i
=-
1
;
i
>-
8
;
--
i
)
{
if
(!
board
[
this
.
getCell
().
getRow
()+
i
][
c
.
getCol
()].
isEmpty
())
{
//System.out.println("294 294") ;
return
false
;
}
if
(
this
.
getCell
().
getRow
()+
i
==
c
.
getRow
())
break
;
}
}
if
(
this
.
getCell
().
getCol
()
<
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
==
c
.
getRow
())
{
for
(
int
i
=
1
;
i
<
8
;
++
i
)
{
if
(!
board
[
c
.
getRow
()][
this
.
getCell
().
getCol
()+
i
].
isEmpty
())
return
false
;
if
(
this
.
getCell
().
getCol
()+
i
==
c
.
getCol
())
break
;
}
}
if
(
this
.
getCell
().
getCol
()
>
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
==
c
.
getRow
())
{
for
(
int
i
=-
1
;
i
>-
8
;
--
i
)
{
if
(!
board
[
c
.
getRow
()][
this
.
getCell
().
getCol
()+
i
].
isEmpty
())
return
false
;
if
(
this
.
getCell
().
getCol
()+
i
==
c
.
getCol
())
break
;
}
}
return
true
;
}
else
return
false
;
}
}
This diff is collapsed.
Click to expand it.
src/Rook.java
View file @
9dfb84e8
/**
* shows the moves of the rook , it can move straight
* @author kimiadorani
* @version 1.0
*/
public
class
Rook
extends
Piece
{
public
Rook
(
Cell
cell
,
Color
color
)
{
super
(
cell
,
color
)
;
}
@Override
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][])
{
public
boolean
isValidMove
(
Cell
c
,
Cell
board
[][],
Piece
pw
[],
Piece
pb
[])
{
if
(
super
.
isDeleted
())
return
false
;
int
sw
=
0
;
if
(
super
.
getColor
()
==
Color
.
BLACK
)
{
for
(
Piece
p:
pw
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
else
{
for
(
Piece
p:
pb
)
{
if
(!
p
.
isDeleted
()
&&
p
.
getCell
().
getRow
()==
c
.
getRow
()
&&
p
.
getCell
().
getCol
()==
c
.
getCol
())
sw
=
1
;
}
}
if
(
(
(
this
.
getCell
().
getCol
()
==
c
.
getCol
())
||
(
this
.
getCell
().
getRow
()
==
c
.
getRow
())
)
&&
c
.
isEmpty
(
)
)
&&
(
c
.
isEmpty
()
||
(!
c
.
isEmpty
()
&&
sw
==
1
)
)
)
{
if
(
this
.
getCell
().
getCol
()
==
c
.
getCol
()
&&
this
.
getCell
().
getRow
()
<
c
.
getRow
())
{
for
(
int
i
=
1
;
i
<
8
;
++
i
)
{
...
...
@@ -42,4 +60,5 @@ public class Rook extends Piece {
}
else
return
false
;
}
}
\ No newline at end of file
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