first click should always be a zero
This commit is contained in:
		
					parent
					
						
							
								d2459bc793
							
						
					
				
			
			
				commit
				
					
						8ec019713c
					
				
			
		
					 2 changed files with 56 additions and 3 deletions
				
			
		|  | @ -36,6 +36,7 @@ public class MinecleanerArena { | |||
|     private ArenaStatus arenaStatus = ArenaStatus.INACTIVE; | ||||
|     private UUID[] blockDisplays; | ||||
|     // private UUID[] textDisplays; | ||||
|     private boolean hasMadeFirstClick = false; | ||||
|      | ||||
|     private int flagsPlaced = 0; | ||||
| 
 | ||||
|  | @ -268,6 +269,7 @@ public class MinecleanerArena { | |||
|         currentMinecleanerGame = new Game(plugin, BoardSize.boardSizes[widthIndex], BoardSize.mineCounter[widthIndex]); | ||||
|         currentMinecleanerGame.start(); | ||||
|         flagsPlaced = 0; | ||||
|         hasMadeFirstClick = false; | ||||
|         arenaStatus = ArenaStatus.PLAYING; | ||||
|         currentGameStartTime = System.currentTimeMillis(); | ||||
|     } | ||||
|  | @ -340,6 +342,11 @@ public class MinecleanerArena { | |||
|             Cell cell = currentMinecleanerGame.getCell(x, y); | ||||
|             if(!cell.isFlagged()) {            | ||||
|                 Player player = this.currentPlayer; | ||||
| 
 | ||||
|                 if(!hasMadeFirstClick) { | ||||
|                     currentMinecleanerGame.firstClick(x, y); | ||||
|                     hasMadeFirstClick = true; | ||||
|                 } | ||||
|                  | ||||
|                 currentMinecleanerGame.reveal(x, y); | ||||
|                 setBlockForCellType(x, y, cell); | ||||
|  |  | |||
|  | @ -45,12 +45,17 @@ public class Game { | |||
|         gameover = false; | ||||
| 
 | ||||
|         generateCells(); | ||||
|         generateMines(); | ||||
|         generateNumbers(); | ||||
|         //generateMines(); | ||||
|         //generateNumbers(); | ||||
| 
 | ||||
|         board.draw(state, tilemap); | ||||
|     } | ||||
| 
 | ||||
|     public void firstClick(int xFirst, int yFirst) { | ||||
|         generateMines(xFirst, yFirst); | ||||
|         generateNumbers(); | ||||
|     } | ||||
| 
 | ||||
|     private void generateCells() { | ||||
|         for (int x = 0; x < width; x ++) { | ||||
|             for (int y = 0; y < height; y++) { | ||||
|  | @ -62,11 +67,52 @@ public class Game { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void generateMines() { | ||||
|     private void generateMines(int xFirst, int yFirst) { | ||||
|         for (int i = 0; i < mineCount; i++) { | ||||
|             int x = (int) (Math.random() * width); | ||||
|             int y = (int) (Math.random() * height); | ||||
| 
 | ||||
|             if(x == xFirst && y == yFirst) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst +1 && y == yFirst) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst +1 && y == yFirst -1) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst -1 && y == yFirst) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst && y == yFirst +1) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst && y == yFirst -1) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst +1 && y == yFirst +1) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst +1 && y == yFirst -1) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst -1 && y == yFirst -1) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
|             if(x == xFirst -1 && y == yFirst +1) { | ||||
|                 i--; | ||||
|                 continue; | ||||
|             } | ||||
| 
 | ||||
|             while (state[x][y].type == Cell.CellType.Mine) { | ||||
|                 x++; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue