diff --git a/app/src/main/java/legion/muyue/best2048/Game.java b/app/src/main/java/legion/muyue/best2048/Game.java index 7a82916..c673008 100644 --- a/app/src/main/java/legion/muyue/best2048/Game.java +++ b/app/src/main/java/legion/muyue/best2048/Game.java @@ -9,53 +9,52 @@ public class Game { private int[][] gameBoard; private Random random; - // Constructeur public Game() { gameBoard = new int[4][4]; random = new Random(); } - // Méthode pour afficher la grille (pour les tests) public void printArray() { for (int[] row : gameBoard) { - String rowString = String.format("%6d%6d%6d%6d", row[0], row[1], row[2], row[3]); + // Ajout de %n pour un retour à la ligne après chaque ligne de la grille + String rowString = String.format("%6d%6d%6d%6d%n", row[0], row[1], row[2], row[3]); Log.d("Game", rowString); } + // Ajout d'une ligne vide pour séparer les affichages de grille dans le Logcat + Log.d("Game", "\n"); } + // Pas de changement dans la logique de addNewNumbers ici 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) + emptySpaces.add(new int[]{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 + int randomNumber = random.nextInt(100); + if (randomNumber < 85) { newNumber = 2; - } else if (randomNumber < 95) { // 10% de chance d'avoir un 4 (de 85 à 94) + } else if (randomNumber < 95) { newNumber = 4; - } else { // 5% de chance d'avoir un 8 (de 95 à 99) + } else { newNumber = 8; } - - // Place la nouvelle tuile sur la grille gameBoard[x][y] = newNumber; } } + + public void pushUp() { + // La logique pour le mouvement vers le haut sera implémentée ici + } } \ 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 1db468b..8b1c499 100644 --- a/app/src/main/java/legion/muyue/best2048/MainActivity.java +++ b/app/src/main/java/legion/muyue/best2048/MainActivity.java @@ -10,7 +10,11 @@ public class MainActivity extends AppCompatActivity { super.onCreate(savedInstanceState); Game game = new Game(); - game.addNewNumbers(); // Ajoute une nouvelle tuile - game.printArray(); // Affiche la grille (avec la nouvelle tuile) + + // Test de addNewNumbers() plusieurs fois + for (int i = 0; i < 10; i++) { + game.addNewNumbers(); + game.printArray(); + } } } \ No newline at end of file