Fix bombs on initial click
Fix bombs on initial click
This commit is contained in:
parent
d5fc28d743
commit
d25cd93736
5
.gitignore
vendored
5
.gitignore
vendored
@ -42,3 +42,8 @@ bin/
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
.idea
|
.idea
|
||||||
lib
|
lib
|
||||||
|
target
|
||||||
|
.mvn
|
||||||
|
src/main/resources/META-INF
|
||||||
|
mvnw
|
||||||
|
mvnw.cmd
|
||||||
|
16
.idea/gradle.xml
generated
16
.idea/gradle.xml
generated
@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
|
||||||
<component name="GradleSettings">
|
|
||||||
<option name="linkedExternalProjectsSettings">
|
|
||||||
<GradleProjectSettings>
|
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
||||||
<option name="modules">
|
|
||||||
<set>
|
|
||||||
<option value="$PROJECT_DIR$" />
|
|
||||||
</set>
|
|
||||||
</option>
|
|
||||||
</GradleProjectSettings>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -28,6 +28,7 @@ public class Controller {
|
|||||||
private long startTime;
|
private long startTime;
|
||||||
private int bombCount = 99;
|
private int bombCount = 99;
|
||||||
private boolean[][] expandedTiles;
|
private boolean[][] expandedTiles;
|
||||||
|
private boolean isFirstClick = true;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void initialize() {
|
private void initialize() {
|
||||||
@ -81,10 +82,24 @@ public class Controller {
|
|||||||
handlePrimaryClick(clicked, column, row);
|
handlePrimaryClick(clicked, column, row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setBombIfFirstTileIsBomb() {
|
||||||
|
for (int c = 0; c < 30; ++c) {
|
||||||
|
for (int r = 0; r < 16; ++r) {
|
||||||
|
if (!wrapper.atColumn(c).atRow(r).isBomb()) {
|
||||||
|
wrapper.setBomb();
|
||||||
|
System.out.println("erm");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void handlePrimaryClick(Button clicked, int column, int row) {
|
private void handlePrimaryClick(Button clicked, int column, int row) {
|
||||||
if (wrapper.atColumn(column).atRow(row).isBomb()) {
|
if (wrapper.atColumn(column).atRow(row).isBomb() && !isFirstClick) {
|
||||||
gameOver(clicked);
|
gameOver(clicked);
|
||||||
return;
|
return;
|
||||||
|
} else if (wrapper.isBomb() && isFirstClick) {
|
||||||
|
setBombIfFirstTileIsBomb();
|
||||||
}
|
}
|
||||||
int adjacentBombs = wrapper.adjacentBombCount();
|
int adjacentBombs = wrapper.adjacentBombCount();
|
||||||
setAdjacentCount(clicked, adjacentBombs);
|
setAdjacentCount(clicked, adjacentBombs);
|
||||||
@ -145,6 +160,7 @@ public class Controller {
|
|||||||
gridHandler = new Grid();
|
gridHandler = new Grid();
|
||||||
wrapper = gridHandler.grid;
|
wrapper = gridHandler.grid;
|
||||||
expandedTiles = new boolean[30][16];
|
expandedTiles = new boolean[30][16];
|
||||||
|
isFirstClick = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetTimer() {
|
private void resetTimer() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user