From 56fbabae6b0fd6861d3e3f26263d448c42678740 Mon Sep 17 00:00:00 2001 From: Nimrod Abramovich <grumpydormin@gmail.com> Date: Fri, 28 Feb 2020 00:51:13 +0000 Subject: [PATCH] added number buttons that enter into selected cell --- bin/coursework/Cage.class | Bin 2486 -> 2496 bytes bin/coursework/Main.class | Bin 12792 -> 13673 bytes src/coursework/Cage.java | 11 +++--- src/coursework/Main.java | 76 ++++++++++++++++++++++++-------------- 4 files changed, 54 insertions(+), 33 deletions(-) diff --git a/bin/coursework/Cage.class b/bin/coursework/Cage.class index 870cdad95fc9207280743efe057850ed5f5306a1..35378411b02a029b9347a545d98c2226b59dd351 100644 GIT binary patch delta 524 zcmdlcd_Z_Y6Qjt)mb1)a8k(C!8PBjdhcd7*@G~$l3TbU&5Z%YJfPrNrh!ttYvd@m$ zb~(d$NfsGB8;B6cJ~MV^Gq&XnHzYYk+4Rg<rA1liGn|;5!lqlVD#|m9K|yN^gQ6rS zvz`E3h9oD8UV@PbgZU-~%WVwy%NZ&}xmgx45K!m3oFPDzdlrM5C=b&DJmz^UXV3tt zQx@f6S->ExrH#vC?-n*jQ8rQbh5yxCm>6Yb7yjp(tj{h{FUKIuAkSdJpuk|opvd6B zpv2(Lpu!Nupvn--pw5uQpvjQSpvBP6pv}<5pu;egL6>1YgC4^s27QLT3<eC>84MY2 zF&HsCWiV#=&mhmp$sorl$Y8->z`(!|#J~XxPX<E<BL)TrS%x<ZeheH8j0`3Wry2Yi zI2c$N92oX%Fa$8LF>o@tGwfgpWME_9VhCbb3)afb5X-QLA((-KfrlZ9VeaI2?B+@_ z41DYijEszo><r-$lAR$O%w}d_P*?xYpfcH=W3Qw&11EzGg8+jqgE)g7gFS;iLpp;4 aLotKnWLeGxP8SAN23H0y2Diy=oCW}_Phe{R delta 495 zcmX>gyiIsQ6O(B4#OAXs;u@OKn}Zq8uqb*murTm5Ffg)dZDA1I$FhKdWh00cX~nY7 zj@foO!|TZoY$AMTBsoOc^vqbLMOo)F?3tXzrdzKh$}@{WR%;7`q9iA?o{=Oci=L4P zgZU-~%WVwy%Ng=Txmgx4;8WzfoWV<!dlrMTC=b&DTqb!eXHW$xQV``~S->ELu&y52 zKJOMbMo~6V_J#kATbLMSWEcJy+sMGcz|5e}z`&5iAi==EAkDzZAj81LAj=@jAje?B zAkSdMpuph3pvd6Ppv(}&pu!N#pvI8Ipuv#Kpvlm}pvBP6pv^FeL5E=_gD%4w20e!D z4EhY`7z`LLG8i)4VTd<k_{<>3@RvcBk(I%m!GM8*A&7wk6p##t3`PtL46+Ol82lJG z7#JB$81^&xGjK4lGB_}7W(Z(lW8h?PXIR4!$iT+H#Sp}>5Ui7%A(mkpLofpe0}n$I z!^Fuy*v%OuCmV3cu&Sv1XHc9R$gx+_ih+~Cnn8fUhC!UcmcgFEjv<}Fo}rk*VX``B T0;e+rD}xII7lZ5M37iH10#{ou diff --git a/bin/coursework/Main.class b/bin/coursework/Main.class index b35577c6853cb8148f2dffd91cc66fa48d8aab8f..ed2ce99b3a07ae04a7b79c6a058d9939fb40ebf8 100644 GIT binary patch delta 7928 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 delta 7256 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 diff --git a/src/coursework/Cage.java b/src/coursework/Cage.java index a37ce86..c8db961 100644 --- a/src/coursework/Cage.java +++ b/src/coursework/Cage.java @@ -10,7 +10,7 @@ public class Cage { private int[] squareIds; private int value; private String operator; - private Square[][] gridSquares; + private Square[] gridSquares; private Label[][] cageLabels; public Cage(int[] squareIds, int value, String operator) { @@ -26,6 +26,7 @@ public class Cage { public void buildCage() { if (squareIds.length == 1) return; + for (int idA : squareIds) { for (int idB : squareIds) { if (idA != idB) { @@ -38,16 +39,16 @@ public class Cage { final double WIDTH = 2; if (rowDiff == -1 && colDiff == 0) { - gridSquares[aCoord[0]][aCoord[1]].setRightStroke(WIDTH, Color.LIGHTGREY); + gridSquares[aCoord[0]*Main.N + aCoord[1]].setRightStroke(WIDTH, Color.LIGHTGREY); } else if (rowDiff == 1 && colDiff == 0) { - gridSquares[aCoord[0]][aCoord[1]].setLeftStroke(WIDTH, Color.LIGHTGREY); + gridSquares[aCoord[0]*Main.N + aCoord[1]].setLeftStroke(WIDTH, Color.LIGHTGREY); } else if (rowDiff == 0 && colDiff == -1) { - gridSquares[aCoord[0]][aCoord[1]].setBottomStroke(WIDTH, Color.LIGHTGREY); + gridSquares[aCoord[0]*Main.N + aCoord[1]].setBottomStroke(WIDTH, Color.LIGHTGREY); } else if (rowDiff == 0 && colDiff == 1) { - gridSquares[aCoord[0]][aCoord[1]].setTopStroke(WIDTH, Color.LIGHTGREY); + gridSquares[aCoord[0]*Main.N + aCoord[1]].setTopStroke(WIDTH, Color.LIGHTGREY); } } } diff --git a/src/coursework/Main.java b/src/coursework/Main.java index c55ff0d..7a28ea1 100644 --- a/src/coursework/Main.java +++ b/src/coursework/Main.java @@ -43,20 +43,18 @@ public class Main extends Application { private Stage stage; final private double GRID_PERCENTAGE = 0.75; - private static Square[][] gridSquares = new Square[N][N]; + private static Square[] gridSquares = new Square[N*N]; private TextField[] gridNumbers = new TextField[N*N]; private static Label[][] cageLabels = new Label[N*N][2]; - private Rectangle gridOutline; private boolean isWider; - private HBox previous = null; + private HBox previousHBox = null; + private Square previousSquare = null; private GridPane setupGrid() { GridPane gridPane = new GridPane(); gridPane.setAlignment(Pos.CENTER); double size = scene.getWidth() * GRID_PERCENTAGE / N; - - //gridPane.add(setupGridOutline(size), 0, 0, N, N); - + for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { gridPane = addToGridPane(gridPane, size, i, j); @@ -71,7 +69,7 @@ public class Main extends Application { HBox hbox = setupGridHBox(square, textField, i, j); Group group = square.getGroup(); - gridSquares[i][j] = square; + gridSquares[i*N + j] = square; gridNumbers[i*N + j] = textField; gridPane.add(group, j, i); @@ -94,19 +92,9 @@ public class Main extends Application { vbox.setAlignment(Pos.CENTER); hbox.getChildren().add(vbox); hbox.setAlignment(Pos.CENTER); - hboxClickSquareEvent(hbox); + hboxClickSquareEvent(hbox, square); return hbox; - - } - - private Rectangle setupGridOutline(double size) { - gridOutline = new Rectangle(size*N + N*3, size*N + N*3, size*N + N*3, size*N + N*3); - gridOutline.setStroke(Color.BLACK); - gridOutline.setFill(Color.TRANSPARENT); - gridOutline.setStrokeWidth(2); - gridOutline.toBack(); - return gridOutline; } private Square setupGridSquare(double size) { @@ -198,13 +186,14 @@ public class Main extends Application { return bottomHBox; } - private void hboxClickSquareEvent(HBox hbox) { + private void hboxClickSquareEvent(HBox hbox, Square square) { hbox.addEventHandler(MouseEvent.MOUSE_CLICKED, e -> { - if (previous != null) { - previous.setStyle("-fx-border-width:0px;"); + if (previousHBox != null) { + previousHBox.setStyle("-fx-border-width:0px;"); } hbox.setStyle("-fx-border-color:red; -fx-border-width:2px;"); - previous = hbox; + previousHBox = hbox; + previousSquare = square; }); } @@ -238,17 +227,47 @@ public class Main extends Application { double newValue = isWider ? scene.getHeight() : scene.getWidth(); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { - Rectangle rectangle = gridSquares[i][j].getRectangle(); + Rectangle rectangle = gridSquares[i*N + j].getRectangle(); rectangle.setWidth(newValue * GRID_PERCENTAGE / N); rectangle.setHeight(newValue * GRID_PERCENTAGE / N); - gridSquares[i][j].resizeLines(newValue * GRID_PERCENTAGE / N); + gridSquares[i*N + j].resizeLines(newValue * GRID_PERCENTAGE / N); + } + } + } + + private HBox setupCenterHBox() { + HBox hbox = new HBox(); + for (int i = 1; i <= N; i++) { + Button button = new Button(i + ""); + double cellWidth = gridSquares[0].getRectangle().getWidth() / 2; + double fontSize = cellWidth * 0.4; + + button.setPrefSize(cellWidth, cellWidth); + button.setStyle("-fx-font-size:"+fontSize+"pt"); + button.setOnAction(e -> { + numbersButtonClickEvent(button); + }); + hbox.getChildren().add(button); + } + hbox.setSpacing(10); + hbox.setAlignment(Pos.CENTER); + return hbox; + } + + private void numbersButtonClickEvent(Button button) { + if (previousSquare != null) { + for (int i = 0; i < gridSquares.length; i++) { + if (previousSquare.equals(gridSquares[i])) { + gridNumbers[i].setText(button.getText()); + } } } - //gridOutline.setWidth(newValue * GRID_PERCENTAGE + N*2.5); - //gridOutline.setHeight(newValue * GRID_PERCENTAGE + N*2.5); + else { + // Some message about selecting a cell first + } } - public static Square[][] getGridSquares() { + public static Square[] getGridSquares() { return gridSquares; } @@ -267,9 +286,10 @@ public class Main extends Application { GridPane gridPane = setupGrid(); HBox topHBox = setupTopHBox(); + HBox centerHBox = setupCenterHBox(); HBox bottomHBox = setupBottomHBox(); - vBox.getChildren().addAll(topHBox, gridPane, bottomHBox); + vBox.getChildren().addAll(topHBox, gridPane, centerHBox, bottomHBox); stageWidthResizeEvent(stage, gridPane); stageHeightResizeEvent(stage, gridPane); -- GitLab