Besoin d'aide en Javascool - Java - Programmation
Marsh Posté le 23-04-2018 à 00:41:18
1. Utilise les balises [cpp][/cpp] pour formater ton code.
2. Pose des questions précises.
3. Ta variable hauteur n'est pas initialisée
4. Le getPixel(largeur, hauteur) dans ta double boucle me semble suspicieux
5. Tu peux remplacer tes 8 variables voisin par un tableau...
Marsh Posté le 23-04-2018 à 11:35:43
J'ai changé de manière de faire et voici mon programme. Cependant, j'ai un message qui me dit "illegal start of type' juste après // Réinitialisation de l'écran et je ne vois pas pourquoi ....
Code :
|
Marsh Posté le 23-04-2018 à 14:01:53
Tu as changé de manière de faire, mais pas tout reporté: il manque la définition de r.
Et le message vient de ce que ton main se termine à la ligne d'avant, ça se voit avec un code bien formaté.
A+,
Marsh Posté le 24-04-2018 à 14:08:55
Merci pour ton aide précieuse. Je vais modifier cela. Je vous tiens au courant.
A+
Marsh Posté le 24-04-2018 à 16:25:49
J'ai modifié et cela semblait marcher car il n'y avait plus aucune erreur qui s'affichait mais lorsque que j'essaye de compiler, j'ai un message d'erreur de type : Notice: à la boucle while une minuterie de 1ms est ajoutée pour éviter qu'une boucle infinie ne bloque tout.
An exception has occurred in the compiler (1.8.0_31). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
etc ....
Marsh Posté le 24-04-2018 à 18:32:49
J'ai tout réinstallé et plus aucun problème. Cependant, toujours un problème a la ligne 81 qui me dit "cannot find symbol" ...
Marsh Posté le 24-04-2018 à 18:33:10
Poste donc ton code au complet qu'on puisse avoir une chance de te dire pourquoi, car le débug télépathique ne fait pas partie de mes compétences (en plus je suis même pas programmeur java à part quand je peux pas faire autrement [quand il faut que ça tourne dans une JVM]).
A+,
Marsh Posté le 24-04-2018 à 18:47:40
Je connais pas Java's Cool mais
- tu as du code en dehors de la méthode main()
- tu initialises la variable situation dans une boucle, c'est normal que le symbole n'existe pas en dehors du corps de celle-ci
Marsh Posté le 24-04-2018 à 23:03:01
Je suis bloqué par un "cannot find symbol"? J'ai marqué l'endroit dans le code, c'est vers la fin.
/* Jeu de La vie créé par John Horton Conway en 1970
* Programme réalisé par Aurélien Provenchère et Max Morincome, élève de Terminale S
*
* Régles du jeu:
* Si une cellule a 2 ou 3 voisines, elle survit
* Si une cellule a moins de 2 voisines elle meurt
* Si une cellule a plus de 3 voisines, elle meurt d'étouffement
* une cellule naît dans une case vide si cette case est entourée de précisement 3 cellules
* Précision : 255 correspond à un point blanc et 0 à un point noir
*/
void main() {
println("Bonjour à tous ! Aujourd'hui, nous allons jouer au Jeu de la vie" );
sleep(100);
println("Ce Jeu fut créé en 1970 par John Horton Conway" );
sleep(100);
// Mise en place des variables
int distance =200;
//variable pour la longueur et largeur du tableau
int m = distance /2;
//variable pour l'image
// Création d'une image de largeur m et de hauteur m
reset(m, m);
// Création d'un tableau
int [][] tableau1 = new int[distance][distance];
// le premier tableau applique les règles du jeu de la vie
// Création des cellules aléatoirement
for (int i =0; i < distance; i ++) {
for (int j =0; j < distance; i ++) {
setPixel(i, j, 255);
tableau1[i][j] = random(1, 6);
if (tableau1 [i][j] == 1) {
setPixel(i - m, j - m, 0);
}
}
}
// Recherche des voisins
int [][] tableau2 = new int[distance][distance];
// second tableau pour copier chaque résultat du premier tableau
int w = 10;
// 10 générations
int c =0; // variable qui sert à réaliser l'action selon le nombre de générations
int situation; // création de la variable pour la suite du programme
int somme; // création de la variable pour la suite du programme
while (c != w) {
// != signifie le contraire donc ici : tant que c n'est pas égale à w, faire l'action qui est écrite à la suite
for (int i =1; i < distance; i ++) {
for (int j =1; j < distance; j ++) {
situation = getPixel(i - m, j - m);
int voisin1 = getPixel(i -1 - m, j -1 - m);
//voisin en haut à gauche
int voisin2 = getPixel(i -1 - m, j - m);
// voisin au dessus
int voisin3 = getPixel(i -1 - m, j +1 - m);
// voisin au dessus à droite
int voisin4 = getPixel(i - m, j -1 - m);
//voisin a gauche
int voisin5 = getPixel(i - m, j +1 - m);
//voisin a droite
int voisin6 = getPixel(i +1 - m, j -1 - m);
//voisin en bas à gauche
int voisin7 = getPixel(i +1 - m, j - m);
//voisin en dessous
int voisin8 = getPixel(i +1 - m, j +1 - m);
//voisin en bas à droite
somme = voisin1 + voisin2 + voisin3 + voisin4 + voisin5 + voisin6 + voisin7 + voisin8;
}
}
}
//Si il y a la présence de 1 cellule
if (situation ==0) // 0 correspond a un point noir
{
if (somme ==1530) { //1530 = 6 X 255 donc 2 voisins
tableau1[i][j] =1; =>>>>> ERREUR
} else {
if (somme ==1275) { //1275 = 5 X 255 donc 3 voisins
tableau2 [i][j] =1;
} else {
tableau2 [i][j] =0;
}
}
} else {
if (total ==1275) {
tableau2 [i][j] =1;
} else {
tableau2 [i][j] =0;
}
}
// Réinitialisation de l'écran
for (int i =0; i < distance; i ++) {
for (int j =0; j < distance; j ++) {
setPixel(i, j, 255);
}
}
// Mise en place du tableau 2 en remplaçant le tableau 1
for (int i =0; i < distance; i ++) {
for (int j =0; j < distance; j ++) {
if (tableau2 [i][j] ==0) {
setPixel(i - m, j - m, 0);
}
}
}
// Processus pour ralentir le programme pour ne pas afficher tout de suite les générations
int process =0;
while (process !=80) {
process = process +1;
}
n = n +1;
}
// fin du programme
Marsh Posté le 25-04-2018 à 00:13:52
Et dehors de tes boucles, i et j ne sont pas définies.
Je sais pas où tu vas chercher les bouts de code que tu copies/colles mais essaie au moins de comprendre ce que tu veux en faire.
Marsh Posté le 21-04-2018 à 21:32:30
Bonjour, je souhaite avoir de l'aide pour réaliser un programme dans le cadre de l'ISN en terminale S. Je dois réaliser le Jeu de la Vie. Contrairement à ce que j'ai vu sur certains forums, mon professeur ne m'a pas appris beaucoup de choses en javascool et j'avoue que je ne suis pas très à l'aise. J'espère trouver de l'aide de votre part.
Merci
Cordialement
Message édité par gilou le 23-04-2018 à 13:59:57