From 43d974eb1c29b03eddf6165d4aa85862c1c35166 Mon Sep 17 00:00:00 2001 From: Lorena Andra Date: Wed, 3 Nov 2021 18:10:54 +0200 Subject: [PATCH 1/3] testtesttest --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d4679c54..142ed1129 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +# Hello this is my personal java repo # java-training # 1 basics From 15414858a498a850329c3c987a40b612cacd7cc7 Mon Sep 17 00:00:00 2001 From: Lorena Andra Date: Sun, 28 Nov 2021 23:53:02 +0200 Subject: [PATCH 2/3] Added design patterns project --- Hospital Simulator | 1 + .../src/main/java/code/_2_challenge/_1_fizzbuzz/FizzBuzz.java | 2 ++ 2 files changed, 3 insertions(+) create mode 160000 Hospital Simulator diff --git a/Hospital Simulator b/Hospital Simulator new file mode 160000 index 000000000..236bec370 --- /dev/null +++ b/Hospital Simulator @@ -0,0 +1 @@ +Subproject commit 236bec370c1baed8c76bb8745156373a432250db diff --git a/_1_basics/src/main/java/code/_2_challenge/_1_fizzbuzz/FizzBuzz.java b/_1_basics/src/main/java/code/_2_challenge/_1_fizzbuzz/FizzBuzz.java index 47838aba3..4c212ea5a 100644 --- a/_1_basics/src/main/java/code/_2_challenge/_1_fizzbuzz/FizzBuzz.java +++ b/_1_basics/src/main/java/code/_2_challenge/_1_fizzbuzz/FizzBuzz.java @@ -9,7 +9,9 @@ public String fizzBuzz(int i) { new NumberWordCorrelation(3, "Fizz"), new NumberWordCorrelation(5, "Buzz"), }; + boolean isDivisible = false; + for (NumberWordCorrelation correlation : correlations) { if (i % correlation.getNumber() == 0) { isDivisible = true; From 029c6da2494b2273e31886dff44e078090d8539c Mon Sep 17 00:00:00 2001 From: Lorena Andra Date: Sun, 19 Dec 2021 20:06:21 +0200 Subject: [PATCH 3/3] Chess Project --- .../code/chess/requirements/ChessBoard.java | 47 +++++++++++++++++-- .../clean/code/chess/requirements/Pawn.java | 25 +++++++++- .../code/chess/requirements/PawnPosition.java | 35 ++++++++++++++ .../chess/requirements/ChessBoardTest.java | 2 +- 4 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/PawnPosition.java diff --git a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/ChessBoard.java b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/ChessBoard.java index 1e40d959f..84b381476 100644 --- a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/ChessBoard.java +++ b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/ChessBoard.java @@ -1,22 +1,63 @@ package clean.code.chess.requirements; +import java.util.HashMap; +import java.util.Map; + public class ChessBoard { public static int MAX_BOARD_WIDTH = 7; public static int MAX_BOARD_HEIGHT = 7; + private Map mapOfPositionAndPawn; + private Map mapOfPawnAndPosition; + + + private Pawn[][] pieces; public ChessBoard() { pieces = new Pawn[MAX_BOARD_WIDTH][MAX_BOARD_HEIGHT]; - + this.mapOfPawnAndPosition = new HashMap<>(MAX_BOARD_WIDTH * MAX_BOARD_HEIGHT); + this.mapOfPositionAndPawn = new HashMap<>(MAX_BOARD_WIDTH * MAX_BOARD_HEIGHT); } public void Add(Pawn pawn, int xCoordinate, int yCoordinate, PieceColor pieceColor) { - throw new UnsupportedOperationException("Need to implement ChessBoard.add()"); + boolean isValid = false; + if (pieceColor == PieceColor.WHITE) { + isValid = ((xCoordinate == 0 || xCoordinate == 1) && (getPawn(new PawnPosition(xCoordinate, yCoordinate)) == null)); + } else if (pieceColor == PieceColor.BLACK) { + isValid = ((xCoordinate == MAX_BOARD_HEIGHT - 1 || xCoordinate == MAX_BOARD_HEIGHT) && (getPawn(new PawnPosition(xCoordinate, yCoordinate)) == null)); + } + + if (isValid) { + pawn.addPawnOnChessboard(this, xCoordinate, yCoordinate); + } } + public Pawn getPawn(PawnPosition position) { + return this.mapOfPositionAndPawn.get(position); + } + + public void updatePawnPositionOnChessBoard(Pawn pawn, int xCoordinate, int yCoordinate) { + PawnPosition newPosition; + if (IsLegalBoardPosition(xCoordinate, yCoordinate)) { + newPosition = new PawnPosition(xCoordinate, yCoordinate); + pawn.setXCoordinate(xCoordinate); + pawn.setYCoordinate(yCoordinate); + } + else { + newPosition = new PawnPosition(-1, -1); + pawn.setXCoordinate(-1); + pawn.setYCoordinate(-1); + } + + this.mapOfPawnAndPosition.put(pawn, newPosition); + this.mapOfPositionAndPawn.put(newPosition, pawn); + } + + public boolean IsLegalBoardPosition(int xCoordinate, int yCoordinate) { - throw new UnsupportedOperationException("Need to implement ChessBoard.IsLegalBoardPosition()"); + return (getPawn(new PawnPosition(xCoordinate, yCoordinate)) == null) && + ((xCoordinate >= 0 && xCoordinate < MAX_BOARD_WIDTH) && (yCoordinate >= 0 && yCoordinate < MAX_BOARD_HEIGHT)); } } diff --git a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Pawn.java b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Pawn.java index e589abeb7..14b219714 100644 --- a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Pawn.java +++ b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Pawn.java @@ -11,7 +11,7 @@ public Pawn(PieceColor pieceColor) { this.pieceColor = pieceColor; } - public ChessBoard getChesssBoard() { + public ChessBoard getChessBoard() { return chessBoard; } @@ -35,6 +35,17 @@ public void setYCoordinate(int value) { this.yCoordinate = value; } + public PieceColor getColor() { + return this.pieceColor; + } + + private int getMovingDirection() { + if (getColor() == PieceColor.BLACK) { + return -1; + } + return +1; + } + public PieceColor getPieceColor() { return this.pieceColor; } @@ -44,7 +55,17 @@ private void setPieceColor(PieceColor value) { } public void Move(MovementType movementType, int newX, int newY) { - throw new UnsupportedOperationException("Need to implement Pawn.Move()"); + // check if x coordinate is valid + is y coordinate is valid + if ((newX == getXCoordinate() || + newX == getXCoordinate() + getMovingDirection()) && + (newY == getYCoordinate() - 1 || newY == getYCoordinate() || + newY == getYCoordinate() + 1)) + this.chessBoard.updatePawnPositionOnChessBoard(this, newX, newY); + } + + public void addPawnOnChessboard(ChessBoard chessBoard, int xCoordinate, int yCoordinate) { + this.chessBoard = chessBoard; + this.chessBoard.updatePawnPositionOnChessBoard(this, xCoordinate, yCoordinate); } @Override diff --git a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/PawnPosition.java b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/PawnPosition.java new file mode 100644 index 000000000..d83d3766e --- /dev/null +++ b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/PawnPosition.java @@ -0,0 +1,35 @@ +package clean.code.chess.requirements; + +import java.util.Objects; + +public class PawnPosition { + private final int x; + private final int y; + + public PawnPosition(int x, int y) { + this.x = x; + this.y = y; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PawnPosition that = (PawnPosition) o; + return x == that.x && + y == that.y; + } + + @Override + public int hashCode() { + return Objects.hash(x, y); + } +} diff --git a/clean_code_projects/_1_project_requirements_chess/src/test/java/clean/code/chess/requirements/ChessBoardTest.java b/clean_code_projects/_1_project_requirements_chess/src/test/java/clean/code/chess/requirements/ChessBoardTest.java index 5b8ca4079..681e666cd 100644 --- a/clean_code_projects/_1_project_requirements_chess/src/test/java/clean/code/chess/requirements/ChessBoardTest.java +++ b/clean_code_projects/_1_project_requirements_chess/src/test/java/clean/code/chess/requirements/ChessBoardTest.java @@ -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