diff --git a/app/src/main/java/legion/muyue/best2048/Game.java b/app/src/main/java/legion/muyue/best2048/Game.java index 681845a..7a82916 100644 --- a/app/src/main/java/legion/muyue/best2048/Game.java +++ b/app/src/main/java/legion/muyue/best2048/Game.java @@ -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 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; } } } \ No newline at end of file diff --git a/app/src/main/java/legion/muyue/best2048/MainActivity.java b/app/src/main/java/legion/muyue/best2048/MainActivity.java index 395050e..1db468b 100644 --- a/app/src/main/java/legion/muyue/best2048/MainActivity.java +++ b/app/src/main/java/legion/muyue/best2048/MainActivity.java @@ -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) } } \ No newline at end of file