Feat: Ajout de la logique addNewNumbers
- Ajout d'un générateur Random dans Game.java - Implémentation de la méthode addNewNumbers pour ajouter une tuile 2, 4 ou 8 sur une case vide aléatoire (Probabilités: 85% pour 2, 10% pour 4, 5% pour 8). - Appel de addNewNumbers dans MainActivity avant printArray.
This commit is contained in:
parent
6f77e8b347
commit
f72fc5b733
@ -1,22 +1,61 @@
|
||||
package legion.muyue.best2048;
|
||||
|
||||
import android.util.Log;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
public class Game {
|
||||
|
||||
private int[][] gameBoard; // Tableau 2D pour la grille de jeu
|
||||
private int[][] gameBoard;
|
||||
private Random random;
|
||||
|
||||
// Constructeur
|
||||
public Game() {
|
||||
gameBoard = new int[4][4]; // Initialise la grille 4x4
|
||||
gameBoard = new int[4][4];
|
||||
random = new Random();
|
||||
}
|
||||
|
||||
// Méthode pour afficher la grille (pour les tests)
|
||||
public void printArray() {
|
||||
for (int[] row : gameBoard) {
|
||||
// Utilisation du format exact de l'étape 1
|
||||
String rowString = String.format("%6d%6d%6d%6d", row[0], row[1], row[2], row[3]);
|
||||
Log.d("Game", rowString); // Utilise Log.d pour afficher dans le Logcat
|
||||
Log.d("Game", rowString);
|
||||
}
|
||||
}
|
||||
|
||||
public void addNewNumbers() {
|
||||
ArrayList<int[]> emptySpaces = new ArrayList<>();
|
||||
|
||||
// Trouve toutes les cases vides (valeur 0)
|
||||
for (int x = 0; x < 4; x++) {
|
||||
for (int y = 0; y < 4; y++) {
|
||||
if (gameBoard[x][y] == 0) {
|
||||
emptySpaces.add(new int[]{x, y}); // Ajoute les coordonnées (x, y)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// S'il y a des cases vides
|
||||
if (!emptySpaces.isEmpty()) {
|
||||
// Choisit une case vide au hasard
|
||||
int choice = random.nextInt(emptySpaces.size());
|
||||
int[] coordinates = emptySpaces.get(choice);
|
||||
int x = coordinates[0];
|
||||
int y = coordinates[1];
|
||||
|
||||
int newNumber;
|
||||
int randomNumber = random.nextInt(100); // Génère un nombre aléatoire entre 0 et 99
|
||||
|
||||
if (randomNumber < 85) { // 85% de chance d'avoir un 2
|
||||
newNumber = 2;
|
||||
} else if (randomNumber < 95) { // 10% de chance d'avoir un 4 (de 85 à 94)
|
||||
newNumber = 4;
|
||||
} else { // 5% de chance d'avoir un 8 (de 95 à 99)
|
||||
newNumber = 8;
|
||||
}
|
||||
|
||||
// Place la nouvelle tuile sur la grille
|
||||
gameBoard[x][y] = newNumber;
|
||||
}
|
||||
}
|
||||
}
|
@ -9,8 +9,8 @@ public class MainActivity extends AppCompatActivity {
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// Initialisation du jeu
|
||||
Game game = new Game();
|
||||
game.printArray(); // Pour l'instant, pour les tests.
|
||||
game.addNewNumbers(); // Ajoute une nouvelle tuile
|
||||
game.printArray(); // Affiche la grille (avec la nouvelle tuile)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user