Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _1_basics/src/main/java/code/_3_in_class/HelloWorld.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package code._3_in_class;

public class HelloWorld {

//niceeeeee
public static void main(String[] args) {
System.out.println("hello world 2");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,39 @@ public class ChessBoard {
public static int MAX_BOARD_HEIGHT = 7;

private Pawn[][] pieces;
private Boolean[][] Isoccupied;

public ChessBoard() {
pieces = new Pawn[MAX_BOARD_WIDTH][MAX_BOARD_HEIGHT];
Isoccupied = new Boolean[MAX_BOARD_WIDTH][MAX_BOARD_HEIGHT];
for(int i = 0; i < MAX_BOARD_WIDTH; i++){
for(int j = 0; j < MAX_BOARD_HEIGHT; j++){
Isoccupied[i][j] = Boolean.FALSE;
}
}

}

public void Add(Pawn pawn, int xCoordinate, int yCoordinate, PieceColor pieceColor) {
throw new UnsupportedOperationException("Need to implement ChessBoard.add()");
if(IsLegalBoardPosition(xCoordinate, yCoordinate)){
this.pieces[xCoordinate][yCoordinate] = pawn;
this.Isoccupied[xCoordinate][yCoordinate] = Boolean.TRUE;
pawn.setXCoordinate(xCoordinate);
pawn.setYCoordinate(yCoordinate);
pawn.setChessBoard(this);
pawn.setPieceColor(pieceColor);
}else{
pawn.setXCoordinate(-1);
pawn.setYCoordinate(-1);
System.out.println("Position is either invalid or already occupied");
}
}

public boolean IsLegalBoardPosition(int xCoordinate, int yCoordinate) {
throw new UnsupportedOperationException("Need to implement ChessBoard.IsLegalBoardPosition()");
return IsOnBoardPosition(xCoordinate, yCoordinate) && !this.Isoccupied[xCoordinate][yCoordinate];
}
public boolean IsOnBoardPosition(int xCoordinate, int yCoordinate){
return (xCoordinate >= 0) && (xCoordinate < MAX_BOARD_WIDTH) && (yCoordinate >= 0) && (yCoordinate < MAX_BOARD_HEIGHT);
}

}
Original file line number Diff line number Diff line change
@@ -1,50 +1,31 @@
package clean.code.chess.requirements;

public class Pawn {
public class Pawn extends Piece {


private ChessBoard chessBoard;
private int xCoordinate;
private int yCoordinate;
private PieceColor pieceColor;

public Pawn(PieceColor pieceColor) {
super(pieceColor);
this.pieceColor = pieceColor;
}

public ChessBoard getChesssBoard() {
return chessBoard;
}

public void setChessBoard(ChessBoard chessBoard) {
this.chessBoard = chessBoard;
}

public int getXCoordinate() {
return xCoordinate;
}

public void setXCoordinate(int value) {
this.xCoordinate = value;
public boolean IsValidMOveForPawn(int newY){
if(this.getPieceColor() == PieceColor.BLACK){
return (this.getYCoordinate() - 1 == newY);
}else{
return (this.getYCoordinate() + 1 == newY);
}
}

public int getYCoordinate() {
return yCoordinate;
}

public void setYCoordinate(int value) {
this.yCoordinate = value;
}

public PieceColor getPieceColor() {
return this.pieceColor;
}

private void setPieceColor(PieceColor value) {
pieceColor = value;
}

public void Move(MovementType movementType, int newX, int newY) {
throw new UnsupportedOperationException("Need to implement Pawn.Move()");
if(movementType == MovementType.CAPTURE){
throw new UnsupportedOperationException("Need to implement Pawn.Move() for capture");
}else{
if(this.getXCoordinate() == newX && IsValidMOveForPawn(newY)){
this.getChesssBoard().Add(this, newX, newY, pieceColor);
}
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package clean.code.chess.requirements;

public abstract class Piece {
protected ChessBoard chessBoard;
protected int xCoordinate;
protected int yCoordinate;
protected PieceColor pieceColor;

public Piece(PieceColor pieceColor){
this.pieceColor = pieceColor;
}

public ChessBoard getChesssBoard() {
return chessBoard;
}

public void setChessBoard(ChessBoard chessBoard) {
this.chessBoard = chessBoard;
}

public int getXCoordinate() {
return xCoordinate;
}

public void setXCoordinate(int value) {
this.xCoordinate = value;
}

public int getYCoordinate() {
return yCoordinate;
}

public void setYCoordinate(int value) {
this.yCoordinate = value;
}

public PieceColor getPieceColor() {
return this.pieceColor;
}

public void setPieceColor(PieceColor value) {
pieceColor = value;
}
public abstract void Move(MovementType movementType, int newX, int newY);
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public void testIsLegalBoardPosition_True_X_equals_5_Y_equals_5() {
@Test
public void testIsLegalBoardPosition_False_X_equals_11_Y_equals_5() {
boolean isValidPosition = testSubject.IsLegalBoardPosition(11, 5);
assertTrue(isValidPosition);
assertFalse(isValidPosition);
}

@Test
Expand Down