Bonjour, je cherche une fonction java pour faire déplacer un objet dans un matrice aléatoirement.Est-ce possible?
Bonjour, je cherche une fonction java pour faire déplacer un objet dans un matrice aléatoirement.Est-ce possible?
Qu'est-ce que tu ne sais pas faire?
Déplacer un objet dans ta matrice => comment est implémentée ta matrice?
Générer des nombre aléatoire => regarde la classe Random en java.
je fait un matrice dans console
je veux déplacer R dans la matrice aléatoirement, chaque fois déplacé dans un sens sans toucher les autres objets(M1,M2,B...)
Code source ? Tentatives ? Problèmes rencontrés ? Utilisation de la classe Random énoncée plus haut ?
ce code pour mettre les objets dans le matrice
et ce code pour déplacer 'R' dans le matrice
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 rw.fixe(10, 5, "R "); rw.fixe(8, 2, "F "); rw.fixe(7, 4, "B "); rw.fixe(11, 8, "B "); rw.fixe(2, 8, "E "); rw.fixe(8, 6, "M1"); rw.fixe(3, 4, "M2"); rw.fixe(7, 9, "M3"); rw.fixe(4, 2, "M4");
comment je peut utiliser la classe Random pour chaque fois exécute l'application, 'R' chaque fois déplace automatiquement dans un sens sans toucher les autres objets
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public int placerRandom(){ String tmp; for (int i = 0; i < nbLig; i++) { for (int j = 0; j < nbCol; j++) { if (grille[i][j] == "R ") { // haut if (i - 1 >= 0 && grille[i - 1][j] == ". ") { tmp = grille[i][j]; grille[i][j] = ". "; grille[i - 1][j] = tmp; return 1; // bas } else if (i + 1 <= nbLig && grille[i + 1][j] == ". ") { tmp = grille[i][j]; grille[i][j] = ". "; grille[i + 1][j] = tmp; return 2; // gauche } else if (i - 1 >= 0 && grille[i][j - 1] == ". "){ tmp = grille[i][j]; grille[i][j] = ". "; grille[i][j - 1] = tmp; return 3; // droite } else if (j + 1 <= nbCol && grille[i][j + 1] == ". ") { tmp = grille[i][j]; grille[i][j] = ". "; grille[i][j + 1] = tmp; return 4; } } } } return 0; }
Math.random() te renvoie un nombre entre 0 et 1. (int)(Math.random()*4) te renvoie 0, 1, 2, 3.
Donc tu fais un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Point nouvellePosition; do { int a = (int)(Math.random()*4); boolean nouvelleCaseEstVide = true; switch(a) { //chaque ligne correspond à une direction //dans chaque ligne, calculer "nouvellePosition" vérifier si la nouvelle case est vide, attribuer cette information à "nouvelleCaseEstVide" case 0:... ;break; case 1:... ;break; case 2:... ;break; case 3:... ;break; } } while(!nouvelleCaseEstVide); //déplacer R vers nouvellePosition
Partager