Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sample;
- import javafx.event.ActionEvent;
- import javafx.fxml.FXML;
- import javafx.scene.control.Button;
- import javafx.scene.layout.GridPane;
- import java.util.ArrayList;
- public class Controller {
- private Logic logic = new Logic();
- private Button[][] buttonsGameField = new Button[9][9];
- private Button bufferNumberForSelection;
- private int indexRow;
- private int indexColumn;
- // private ArrayList <Integer> errorIndexRow = new ArrayList<>();
- // private ArrayList <Integer> errorIndexColumn = new ArrayList<>();
- // private int errorSize = 0;
- private boolean flagHelp = false;
- @FXML
- private Button numberForSelection1;
- @FXML
- private Button buttonHelp;
- @FXML
- private void clickedButtonHelp() {
- backgroundUpdateHelp();
- int result = logic.clickedButtonHelp();
- indexRow = result / 10;
- indexColumn = result % 10;
- buttonsGameField[indexRow][indexColumn].setText(String.valueOf(logic.getGameFieldElement(indexRow, indexColumn)));
- flagHelp = true;
- buttonsGameField[indexRow][indexColumn].setStyle("-fx-background-color: yellow; -fx-font-weight:bold; -fx-font-size: 24; -fx-font-family: \"System\"");
- }
- private void backgroundUpdateHelp() {
- if (flagHelp) {
- buttonsGameField[indexRow][indexColumn].setStyle("-fx-font-weight:bold; -fx-font-size: 24; -fx-font-family: \"System\"");
- flagHelp = false;
- }
- }
- public Controller() {
- for (int row = 0; row < 9; row++) {
- for (int column = 0; column < 9; column++) {
- buttonsGameField[row][column] = new Button("");
- buttonsGameField[row][column].setMinSize(50, 50);
- buttonsGameField[row][column].setStyle("-fx-font-weight:bold; -fx-font-size: 24; -fx-font-family: \"System\" ");
- }
- }
- fillingInTheField();
- }
- private void fillingInTheField() {
- logic.fillingInTheField();
- for (int i = 0; i < 9; i++) {
- for (int j = 0; j < 9; j++) {
- if (logic.getGameFieldElement(i,j) != 0) {
- buttonsGameField[i][j].setText(String.valueOf(logic.getGameFieldElement(i, j)));
- }
- }
- }
- }
- private void onHighlightingSelectedNumbers() { //для подсказок//
- for (int i = 0; i < 9; i++) {
- for (int j = 0; j < 9; j++) {
- if (buttonsGameField[i][j].getText().equals(bufferNumberForSelection.getText())) {
- buttonsGameField[i][j].setStyle("-fx-background-color: green; -fx-font-weight:bold; -fx-font-size: 24; -fx-font-family: \"System\" ");
- }
- }
- }
- for (int i = 0; i < errorSize; i++) {
- buttonsGameField[errorIndexRow.get(i)][errorIndexColumn.get(i)].setStyle("-fx-background-color: red; -fx-font-weight:bold; -fx-font-size: 24; -fx-font-family: \"System\" ");;
- }
- }
- private void offHighlightingSelectedNumbers() { //для подсказок//
- backgroundUpdateHelp();
- for (int i = 0; i < 9; i++) {
- for (int j = 0; j < 9; j++) {
- if (buttonsGameField[i][j].getText().equals(bufferNumberForSelection.getText())) {
- //buttonsGameField[i][j].setStyle(null);
- buttonsGameField[i][j].setStyle("-fx-font-weight:bold; -fx-font-size: 24; -fx-font-family: \"System\" ");
- }
- }
- }
- }
- @FXML
- private GridPane gridMap;
- @FXML
- private void clickedNumberForSelection(ActionEvent actionEvent) {
- bufferNumberForSelection.setStyle(null);
- offHighlightingSelectedNumbers();
- bufferNumberForSelection = (Button) actionEvent.getSource();
- logic.setSelectedNumber(Integer.parseInt(bufferNumberForSelection.getText()));
- bufferNumberForSelection.setStyle("-fx-background-color: green");
- onHighlightingSelectedNumbers();
- }
- @FXML
- public void initialize() {
- bufferNumberForSelection = numberForSelection1;
- numberForSelection1.setStyle("-fx-background-color: green");;
- for (int row = 0; row < 9; row++) {
- for (int column = 0; column < 9; column++) {
- gridMap.add(buttonsGameField[row][column], row, column);
- buttonsGameField[row][column].setOnAction(this::clickedButtonGameField);
- }
- }
- }
- public void searchButtonGameField(Button buffer) {
- for (int i = 0; i < 9; i++) {
- for (int j = 0; j < 9; j++) {
- if(buffer == buttonsGameField[i][j]) {
- logic.setGameFieldElement(i, j);
- indexRow = i;
- indexColumn = j;
- return;
- }
- }
- }
- }
- public void clickedButtonGameField(ActionEvent actionEvent) {
- backgroundUpdateHelp();
- Button buffer = (Button) actionEvent.getSource();
- buffer.setText(String.valueOf(logic.getSelectedNumber()));
- searchButtonGameField(buffer);
- if (logic.checkGameField(indexRow, indexColumn)) { // для жизней //
- buffer.setStyle("-fx-background-color: green; -fx-font-weight:bold; -fx-font-size: 24; -fx-font-family: \"System\" "); //для подсказок//
- correctionError();
- } else {
- addError();
- buffer.setStyle("-fx-background-color: red; -fx-font-weight:bold; -fx-font-size: 24; -fx-font-family: \"System\" "); //для жизней//
- }
- System.out.println("doClick");
- }
- private void addError() {
- boolean repetitionFound = false;
- for (int i = 0; i < errorSize; i++) { // добавление ошибки
- if (indexRow == errorIndexRow.get(i) && indexColumn == errorIndexColumn.get(i)) {
- repetitionFound = true;
- break;
- }
- }
- if (!repetitionFound) {
- errorIndexRow.add(indexRow);
- errorIndexColumn.add(indexColumn);
- errorSize++;
- }
- System.out.println(errorIndexColumn.size());
- }
- private void correctionError() {
- for (int i = 0; i < errorSize; i++) { // добавление ошибки
- if (indexRow == errorIndexRow.get(i) && indexColumn == errorIndexColumn.get(i)) {
- errorIndexRow.remove(i);
- errorIndexColumn.remove(i);
- errorSize--;
- break;
- }
- }
- System.out.println(errorIndexColumn.size());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement