From 41c9aaf99ee52b584edefd180252bc7953d87377 Mon Sep 17 00:00:00 2001 From: AlexRedDevil99 Date: Tue, 2 Nov 2021 21:02:11 +0200 Subject: [PATCH 1/2] My commit --- _1_basics/src/main/java/code/_3_in_class/HelloWorld.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_1_basics/src/main/java/code/_3_in_class/HelloWorld.java b/_1_basics/src/main/java/code/_3_in_class/HelloWorld.java index ce7a7ffe1..9a872f8a2 100644 --- a/_1_basics/src/main/java/code/_3_in_class/HelloWorld.java +++ b/_1_basics/src/main/java/code/_3_in_class/HelloWorld.java @@ -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"); } From c57a0c029cc851991e1b4131a6369d6a576f68cf Mon Sep 17 00:00:00 2001 From: alex99delicostea Date: Sun, 19 Dec 2021 19:51:23 +0200 Subject: [PATCH 2/2] Project 2 Chess --- .../code/chess/requirements/ChessBoard.java | 26 ++++++++- .../clean/code/chess/requirements/Pawn.java | 51 ++++++------------ .../clean/code/chess/requirements/Piece.java | 45 ++++++++++++++++ .../code/chess/requirements/ChessBoard.class | Bin 0 -> 2046 bytes .../chess/requirements/MovementType.class | Bin 0 -> 1128 bytes .../clean/code/chess/requirements/Pawn.class | Bin 0 -> 2163 bytes .../clean/code/chess/requirements/Piece.class | Bin 0 -> 1502 bytes .../code/chess/requirements/PieceColor.class | Bin 0 -> 1113 bytes .../chess/requirements/ChessBoardTest.class | Bin 0 -> 3100 bytes .../code/chess/requirements/PawnTest.class | Bin 0 -> 2202 bytes .../chess/requirements/ChessBoardTest.java | 2 +- 11 files changed, 86 insertions(+), 38 deletions(-) create mode 100644 clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Piece.java create mode 100644 clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/ChessBoard.class create mode 100644 clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/MovementType.class create mode 100644 clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/Pawn.class create mode 100644 clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/Piece.class create mode 100644 clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/PieceColor.class create mode 100644 clean_code_projects/_1_project_requirements_chess/src/out/test/test/clean/code/chess/requirements/ChessBoardTest.class create mode 100644 clean_code_projects/_1_project_requirements_chess/src/out/test/test/clean/code/chess/requirements/PawnTest.class 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..0eeb28465 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 @@ -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); + } + } 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..ec3336f84 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 @@ -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 diff --git a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Piece.java b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Piece.java new file mode 100644 index 000000000..9482ba1c8 --- /dev/null +++ b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Piece.java @@ -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); +} diff --git a/clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/ChessBoard.class b/clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/ChessBoard.class new file mode 100644 index 0000000000000000000000000000000000000000..26113caa1c9add8056c81d744b4ee8ccdd87d1cd GIT binary patch literal 2046 zcma)7TUQ%Z6#mX6Fi9A0DUm`ZHZ2u$DMYb&DbN}(BqXrxGA1kMy3gL<-rwFkzy1CE1%OF>8G(R+ zh@gZvv@`S^sE^c~sakuvmE8kf^BCHv49oCtGXzrUjW9w8i-<_*fW(l}OkK5dnqAg& z+P?0(IYV zys}tW7tzZwyuDrgZyT%Xx7H+AbV))Vf6{(r=$h_|c#9!M&zm02+BS#lOJ9~Sz$GGz zYinAC-ju_LLl%*c@HVb6^#1E1L)*eku{6(c=?z*VgyE`$YZzkaQ{1Ayr<%U+tF~)+ zhHcUFl%k}!xSe+-409vF^|kx+5u}h7k&%$a4Tfv29cJiqb#F6o+fLcAR8J>ODJ8wZ zHH}HgaW!1xVN-%%y(eKD?=y7L)p>44Q!Rqr6rQXZnUL@SKCEe4v0AtdJGbf>mRIr|T|Jx(;SR&tS#*gnju5>|5k7=2sS-=A*!D|GQCe8K zz$D>2qC#Z2-s%-ESB8%7nwd$vZ)CIz^DacQz?+CaQ+uGf4OF&hr*WBfFA<-6hK@HJfu zB0_Za7mcsb|H^miJ~rwu{Z6XdNVt%Z6ICRiAV)}}@^~U!;*e=^itDAUT*XM11V*!& zD&EZw1gp4tf>>7I=QNC-;-l#8D(*HN8Y5>oh%f<-QnyWDkkG^ltc)A9o4^&^B3JGZ z9g7(99lKe>Qg?z-;Q=;%#|n7pJIl|uXvJwLU>l!Nz__zP2ot>|N&UC(*;gdPr4pGq zpO!H4ikN6WrK6G*p Un4eVq@0}-cErq|JwSb*}0R7;@$p8QV literal 0 HcmV?d00001 diff --git a/clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/MovementType.class b/clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/MovementType.class new file mode 100644 index 0000000000000000000000000000000000000000..cd57e06ea082f3eee09fea5d6c4edbc775301e70 GIT binary patch literal 1128 zcmb7CZEw<07(JJk6>2wL#LeM+*^5fqSjFh4B4Htzm@qNINESbpdSzWo(eje`uaqTj z(P;MBA7y-QSF@V=K}yog^W1Zud+zD^`RnTs045$Qh%ppxms_4;58rabKH{U1;qwm@ z$L9m?jYr1*a2ovUe0PjOGfoZSxZkmQ zE_G`E(4x=dHbb^Kv@N%5`HmPF&XqlDK;yGlJ)*FTj~u#AvhDOeYdrA@Cl&NArJ-WG zp-0sSQ8-zdM^n{gP}{?aZ}aDlxMe1q+gsH0t= zpraVUEu>>7z?9Oeh)yU(hfG}{6aNl&D9s?X z59Jw@_Er4}?4lIXo`tmaZ^X*pmQHc!1X57km4iY#!@U!zLf3^2DhU_145YWjX&P`Labqrtf#Rf>2>Ad?ZON5o5+=i+ z=v&|Nl)Utz&9sDRr|o-xRHwVLjm@+ZGak$5toH2p?YFy<|NiHx!&b(}z-K+l%+1LpNGc zXYRQr%e)BVqCjF%%0kR{V|J-r3<$)QsXo^@Y&;R$biJ5mmi?+HHN3FsY zlJh;=*`hXJMdCUV4Mo?7GW?j=OkPvN)8@LDFDGk^0zKRcYe29{e{9#Z0B9qQEIi^FP{Z_yo6Ae5&IPpYCgM*sb`oM59o&9hsA5 zlZxzmVay6l*D+%2H)AiR_FhcxH4J$&OtT^27Yn9`OxO2Re0C)I(#BJ1`8?k9I_~10 zK=<=zQ3XUs!{@lKBCBHoivs;kW*NtqThgOm-Z6_+xwI)TKt*mzuI`cI_{%yT1o3y9 z@ipYIqGDCY8ooHft07hw^=HZS1#bLLLq2YSswI+YMX$FlwO*PYiUKFHq~Kz;v?09} zbE8O>Xx6pN;+pB%yssM-f7`AITxwT&?hlIX$Y*(~PR=*2Zx_sRBM6U|z*M^~J2Kpv zOkzzyFCBSMFu=M%*moP6grr+!?#)UZW~$}fs%Oc0o3o1qbIx8kPX*|p*9K_11-~!o zx=y>hWMzA|G4>Y182c6K&$R78p02$J(KSr&5oq*zM7x2SJ09ap+R;INAy6=yUQE=3 zR_j3xV;?`cuJ7W3hg}1o$7a?CAd5IxobRWhK=%@WP zV`S9$1?oPgIr$oq0gAxssu)B+hDgC-BrzHgGHS682~EPpIYK5pY!Ee8bTS|r3P>vG z=pUu~7QMD>{F3y`{+$H>@lUj0io5WQTMNxRKJM1TGv=~MCDvh#%b=(ywd}#$i*mr$< zNK~TD`V|BB)Nfbu-wtZaQ`WlzT8kCli`Wo^T<-}1di=>?a<|OWYmUd z?m%E~nLC;SrBgXn8BJ0WcwVa~gvJUWP#i?@QS}m&i$!yCeE-LIb!ZUUWG2}evsP=f zduD8VBTAjaKE=a0V8&1+4>cmuXe8$~^`^RTUQ+`#;Y~26dtWB?j@@`ZPp&Ryv#pr* z55XvO=)0OBUzXWZEMkGZqMWYYRq54L%q;{GcwbM(WT?eI(`?Nlw(=kPHoNoSv zFdNs%eWz0jo3xgYrZrEBI;{n4(Wx@=#zQ=!6RWW*4Jo$qIMTG#8OWGFQ2a(t6S*vz zS(Ifsgd8FnfhX9Bf{)0XfwBx!oWk(?2g($)9s|kVfMiwL46=)Aq!kBQ`%2+)kjg@k zr`Y=sWa}Dh^B|i9vULl{KGmB+o-G8~m`OCZ$*kUGo-70J!FW`7|_ h<7QT7S`(X-No!03Y1|4z4cF)o0SD9tfkV{`>mNYS87Ke% literal 0 HcmV?d00001 diff --git a/clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/PieceColor.class b/clean_code_projects/_1_project_requirements_chess/src/out/production/main/clean/code/chess/requirements/PieceColor.class new file mode 100644 index 0000000000000000000000000000000000000000..4e2a98f7512671dfd98f0a9c5e630ae417d2644e GIT binary patch literal 1113 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 E4WaS^{r~^~ literal 0 HcmV?d00001 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