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;
|
package legion.muyue.best2048;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class Game {
|
public class Game {
|
||||||
|
|
||||||
private int[][] gameBoard; // Tableau 2D pour la grille de jeu
|
private int[][] gameBoard;
|
||||||
|
private Random random;
|
||||||
|
|
||||||
// Constructeur
|
// Constructeur
|
||||||
public Game() {
|
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)
|
// Méthode pour afficher la grille (pour les tests)
|
||||||
public void printArray() {
|
public void printArray() {
|
||||||
for (int[] row : gameBoard) {
|
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]);
|
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) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
// Initialisation du jeu
|
|
||||||
Game game = new Game();
|
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