Jeux Libres

Envie de créer un jeu vidéo ?   Le site qui vous accompagne de A à Z.


» Les Forums » Création de jeux en Java » Bug rencontrer


Aller à la page : 1.

Bug rencontrer
Lo



Grade : Expert
Inscrit le: 26 Dec 2007, 17:33
Ecrit le: 19 Jan 2009, 18:03             Message non corrigé

Poster ici si vous rencontrer des bugs.

En wai, la nouvelle, j'ai oublier de faire gaffe à une chose :
Lorsqu'on supprime un objet dans une liste, le Java, décale tout, histoire de pas avoir une valeur nulle dans la liste, et la taille de la liste change!
Voilà pourquoi ça bugger, je voulais supprimer tout les points non sélectionnés, et en fait, ça me les effacer pas tous, tout simplement parce que la taille de la liste change, vu que ça décale tout.

Donc, bah, j'ai du faire comme ceci :

public void removePoints() {
        System.out.println("Effacer")
        int size = points.size(), j = 0;
        for (int i = 0; i < size; i++) {
                Point2D p = points.get(j);
                if(p.isSelected())
                        points.remove(j);
                else
                        j++;
        }
        System.out.println("Après effaçage");
        afficherPoints ();
}
 
Purée, au début, je me dis le langage bug c'est pas possible, mais non en faîtes, c'est parce que il décale tout les éléments mais normalement une liste accepte les doublons mais y décale tout quand même, tin, j'ai cherché pendant longtemps hors que c'était bêtement ça, rah j'ai la rage.
Par contre j'ai constaté un bug avec la méthode binarySearch de la classe Collections qui ne marche pas très bien, mieux vaut utilisé indexOf.
Mais indexOf bug quand la liste est vide, donc, moi j'utilise ma propre méthode, et binaryShearch, il faut que la liste soit triée pour pouvoir l'utiliser.

________
Parce qu'on ne peut s'exprimer que par nos créations. ^^
  Profil Mail
Aquaphobe



Grade : Nouveau venu
Inscrit le: 03 Juillet 2009, 09:13
Ecrit le: 03 Juillet 2009, 09:43             Message non corrigé

Hello,

2 choses à dire :
Pour ta méthode, tu aurais pu l'écrire autrement.
Pour le parcours de listes (et de n'importe quel type implémentant l'interface Iterable), l'iterator est ton ami :
public void removePoints() {
System.out.println("Effacer");

Iterator<Point2D> iterator = points.iterator();

while (iterator.hasNext()) {
Point2D p = iterator.next();
if (p.isSelected()) {
iterator.remove();
}
}
System.out.println("Après effaçage");
afficherPoints();
}
Plus besoin d'index, de variables inutiles. Et c'est beaucoup plus clair.



2ème chose, je ne peux pas laisser dire que binarySearch ou indexOf bug. C'est juste que tu t'en sers mal.
Une des chose primordiales en java, c'est la javadoc. Tous les cas d'utilisation de telle ou telle méthodes y sont décrits à merveille.
Pour dire que ça "bug", je doute que tu l'ai lue.

Bonne chance pour la suite ! ;)

Aqua
  Profil Mail
Lo



Grade : Expert
Inscrit le: 26 Dec 2007, 17:33
Ecrit le: 03 Juillet 2009, 12:38             Message non corrigé

Mmmh, je pense que j'ai du oublier de trier la liste, mais bon c'est parce que j'avais une liste de Points, et que parfois il ne me trouvait pas le Point dans la liste lorsque je voulais le sélectionné.

Halala j'oublie tjs de trier les listes. (Je ne sais plus si je l'avais triée et si j'avais aussi eu ce bug avant.)

________
Parce qu'on ne peut s'exprimer que par nos créations. ^^
  Profil Mail
 


Aller à la page : 1.


Hébergeur du site : 1and1.fr



Site de création de Jeux Vidéo
Apprenez à créer vos propres Jeux Video

1198808 pages ont été consultées sur le site !
Dont 2317 pages pendant les 24 dernières heures.

Page générée en 0.316 secondes


Nos partenaires
- Otium Production : Aide aux débutants à créer leurs jeux
- Les bibliothèques de développement de jeux vidéo


  © 2005-2012 www.jeux-libres.com - Toute reproduction totale ou partielle du contenu de ce site est strictement interdite.