Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package chess;
- import java.util.ArrayList;
- public class Rook extends Piece{
- public Rook(String player, int [] currentPosition, Board b){
- super(player, currentPosition, b);
- }
- public String toString(){
- return getPlayer() + "R ";
- }
- public int [][] getMoves(){
- int [] pos = getCurrentPosition();
- ArrayList<int []> moves = new ArrayList<int []>();
- //System.out.println("Current Position: (" + pos[0] + "," + pos[1] + ").");
- // check right side
- for(int i = pos[0]+1; i <= 8; i++){
- if(getBoard().getPlayerAt(i, pos[1]) == null){
- moves.add(new int [] {i,(pos[1])});
- continue;
- }
- if(getBoard().getPlayerAt(i, pos[1]) != this.getPlayer()){
- moves.add(new int [] {i,(pos[1])});
- break;
- }
- if(getBoard().getPlayerAt(i, pos[1]) == this.getPlayer()){
- break;
- }
- }
- // check left side
- for(int i = pos[0]-1; i >= 1; i--){
- if(getBoard().getPlayerAt(i, pos[1]) == null){
- moves.add(new int [] {i, pos[1]});
- continue;
- }
- if(getBoard().getPlayerAt(i, pos[1]) != this.getPlayer()){
- moves.add(new int [] {i,(pos[1])});
- break;
- }
- if(getBoard().getPlayerAt(i, pos[1]) == this.getPlayer()){
- break;
- }
- }
- // check up
- for(int i = pos[1]+1; i <= 8; i++){
- if(getBoard().getPlayerAt(pos[0], i) == null){
- moves.add(new int [] {pos[0], i});
- continue;
- }
- if(getBoard().getPlayerAt(pos[0], i) != this.getPlayer()){
- moves.add(new int [] {pos[0], i});
- break;
- }
- if(getBoard().getPlayerAt(pos[0], i) == this.getPlayer()){
- break;
- }
- }
- // check down
- for(int i = pos[1]-1; i >= 1; i--){
- if(getBoard().getPlayerAt(pos[0], i) == null){
- moves.add(new int [] {pos[0], i});
- continue;
- }
- if(getBoard().getPlayerAt(pos[0], i) != this.getPlayer()){
- moves.add(new int [] {pos[0], i});
- break;
- }
- if(getBoard().getPlayerAt(pos[0], i) == this.getPlayer()){
- break;
- }
- }
- int [][] m = new int [moves.size()][2];
- for(int i = 0; i < moves.size(); i++){
- m[i][0] = moves.get(i)[0];
- m[i][1] = moves.get(i)[1];
- }
- return m;
- }
- }
Add Comment
Please, Sign In to add comment