Refactor: Amélioration de printArray et préparation pour pushUp
- Ajout de retour à la ligne (%n) et d'une ligne vide dans printArray pour une meilleure lisibilité dans Logcat. - Ajout de la signature de la méthode pushUp() (vide) dans Game.java. - Modification de MainActivity pour tester addNewNumbers/printArray 10 fois.
This commit is contained in:
parent
f72fc5b733
commit
1c7ae29651
@ -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<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)
|
||||
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
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user