Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Chess.ChessPieces;
- public class Rook extends ChessPiece {
- public Rook(int newY, int newX, char Color) {
- super(newY, newX, Color);
- }
- @Override
- public boolean checkMove(int newY, int newX, ChessPiece[][] board) {
- if (newX == x) { // Om det är samma x-koordinat.
- int pos = newY - y;
- pos = pos > 0 ? --pos : ++pos; // Minskar med ett steg för att inte kolla slutpositionen i loopen.
- while (pos != 0) { // Loopar över alla rutor mellan sig själv och dit man vill flytta.
- if (board[y+pos][x] != null) {
- return false;
- }
- pos = pos > 0 ? --pos : ++pos;
- }
- }
- else if (newY == y) { // Om det är samma y-koordinat.
- int pos = newX - x;
- pos = pos > 0 ? --pos : ++pos; // Minskar med ett steg för att inte kolla slutpositionen i loopen.
- while (pos != 0) { // Loopar över alla rutor mellan sig själv och dit man vill flytta.
- if (board[y][x+pos] != null) {
- return false;
- }
- pos = pos > 0 ? --pos : ++pos;
- }
- }
- else { // Om det inte är horisontellt eller vertikalt.
- return false;
- }
- if (board[newY][newX] == null) { // Om det är tomt.
- return true;
- }
- else if (board[newY][newX].white != this.white) { // Om man försöker flytta dit motståndaren är.
- return true;
- }
- return false;
- }
- @Override
- public String toString() {
- return (white ? 'W' : 'B') + " " + 'R';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement