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 int[][] gameBoard;
|
||||||
private Random random;
|
private Random random;
|
||||||
|
|
||||||
// Constructeur
|
|
||||||
public Game() {
|
public Game() {
|
||||||
gameBoard = new int[4][4];
|
gameBoard = new int[4][4];
|
||||||
random = new Random();
|
random = new Random();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour afficher la grille (pour les tests)
|
|
||||||
public void printArray() {
|
public void printArray() {
|
||||||
for (int[] row : gameBoard) {
|
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);
|
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() {
|
public void addNewNumbers() {
|
||||||
ArrayList<int[]> emptySpaces = new ArrayList<>();
|
ArrayList<int[]> emptySpaces = new ArrayList<>();
|
||||||
|
|
||||||
// Trouve toutes les cases vides (valeur 0)
|
|
||||||
for (int x = 0; x < 4; x++) {
|
for (int x = 0; x < 4; x++) {
|
||||||
for (int y = 0; y < 4; y++) {
|
for (int y = 0; y < 4; y++) {
|
||||||
if (gameBoard[x][y] == 0) {
|
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()) {
|
if (!emptySpaces.isEmpty()) {
|
||||||
// Choisit une case vide au hasard
|
|
||||||
int choice = random.nextInt(emptySpaces.size());
|
int choice = random.nextInt(emptySpaces.size());
|
||||||
int[] coordinates = emptySpaces.get(choice);
|
int[] coordinates = emptySpaces.get(choice);
|
||||||
int x = coordinates[0];
|
int x = coordinates[0];
|
||||||
int y = coordinates[1];
|
int y = coordinates[1];
|
||||||
|
|
||||||
int newNumber;
|
int newNumber;
|
||||||
int randomNumber = random.nextInt(100); // Génère un nombre aléatoire entre 0 et 99
|
int randomNumber = random.nextInt(100);
|
||||||
|
if (randomNumber < 85) {
|
||||||
if (randomNumber < 85) { // 85% de chance d'avoir un 2
|
|
||||||
newNumber = 2;
|
newNumber = 2;
|
||||||
} else if (randomNumber < 95) { // 10% de chance d'avoir un 4 (de 85 à 94)
|
} else if (randomNumber < 95) {
|
||||||
newNumber = 4;
|
newNumber = 4;
|
||||||
} else { // 5% de chance d'avoir un 8 (de 95 à 99)
|
} else {
|
||||||
newNumber = 8;
|
newNumber = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Place la nouvelle tuile sur la grille
|
|
||||||
gameBoard[x][y] = newNumber;
|
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);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
Game game = new Game();
|
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