[pinpinpinpin !] y a des accros de Java dans le coin ?


bomber-marc

Messages recommandés

[citation=8746,1][nom]razorbill a écrit[/nom]si tu peux faire des pointeurs..

enfin.. ca dépend de quoi tu parle.. un pointeur c++ spa pareil que ce que j'appelle un pointeur :-

sinon faut tout coder à la main :-

si tu veux je dois avoir des restes qqpart..

[/citation]

bah en fait j'ai jamais fait confiances aux ramasse-miettes intégrés d'office (j'imagine que Java en a un quelque part...), donc j'ai l'habitude de faire de la déallocation à la main (suppression de l'objet au bout d'un pointeur, justement...).

Vais voir comment je peus faire ça sous Java. Mais effectivement si tu as quelque chose qui traine, je suis preneur :) (les scuibits aussi [:xdddd] )

Lien vers le commentaire
Partager sur d’autres sites

[citation=8774,1][nom]Bomber-Marc a écrit[/nom]

bah en fait j'ai jamais fait confiances aux ramasse-miettes intégrés d'office (j'imagine que Java en a un quelque part...), donc j'ai l'habitude de faire de la déallocation à la main (suppression de l'objet au bout d'un pointeur, justement...).

Vais voir comment je peus faire ça sous Java. Mais effectivement si tu as quelque chose qui traine, je suis preneur :) (les scuibits aussi [:xdddd] )

[/citation]moi j'ai toujours utilisé le collecteur :-

tu veux quoi ?

liste mono/bilatère ?

Lien vers le commentaire
Partager sur d’autres sites

[citation=8821,1][nom]razorbill a écrit[/nom]moi j'ai toujours utilisé le collecteur :-

tu veux quoi ?

liste mono/bilatère ?

[/citation]

c'est pour stocker des primitives dans une scène (genre des cubes, des sphères, etc). Donc le mieux serait que je puisse les parcourir sans passer mon temps à faire des push/pop :/. Après, peu importe, je me débrouille avec ce que j'ai. L'ordre des éléments n'a aucune importance, si c'est ce qui t'inquiète...

Lien vers le commentaire
Partager sur d’autres sites

bah tu sais chuis pas vraiment une star en info :-

je fais ce qu'on me dit de faire, stout..

.. après recherche, j'ai rien sous la main - donc t'aura droit à un exemple de merde avec des éléments basiques d'entier à la con tout moche..

c'est une lca mono

[cpp]public class maillon_mono

{

int valeur;

maillon_mono suivant;

public maillon_mono (int e)

{

valeur = e;

suivant = null;

}

}[/cpp]

[cpp]

public class ListeCh_monolatere {

private maillon_mono teteListe;

/** retourne la maillon de fin de liste */

public maillon_mono finliste()

{

return null;

}

public ListeCh_monolatere () { // Constructeur

teteListe = null;

}

/** renvoie la la tete) */

public maillon_mono tete()

{

return teteListe;

}

public int val(maillon_mono p)

{

return p.valeur;

}

/** retourne la maillon suivante */

public maillon_mono succ(maillon_mono p)

{

if (p!= finliste())

{

return p.suivant;

}

else

{

return finliste();

}

}

/** ajoute une valeur en debut de liste */

public void adjt(int e) {

maillon_mono p = new maillon_mono(e);

p.suivant = teteListe;

teteListe = p;

}

/** initialise la liste avec Lalongueur entier */

public void listeRemplie(int Lalongueur)

{

// on reinitialise la liste

teteListe = null;

// ajoute les valeurs

for (int i=1; i<=Lalongueur; i++)

{

adjt((int) (100*Math.random()));

// autre possibilité adjt((int) (100*Math.random())) ou adjt(i);

}

}

public void affiche ()

{

maillon_mono p;

p = tete();

while ( p != null )

{

System.out.println(" "+val(p));

p = succ(p);

}

}

public int longueur ()

{

maillon_mono p;

int longueur = 0;

p = tete();

while ( p != null )

{

longueur++;

p = succ(p);

}

return longueur;

}

public boolean present (int e)

{

maillon_mono p;

boolean presen = false;

p = tete();

while ( p != null & !presen )

{

if ( val(p) == e)

{

presen = true;

}

else

{

p = succ(p);

}

}

return presen;

}

public void modifier (int e)

{

maillon_mono p = tete();

for ( int i = 1 ; i <= e ; i++ )

{

p = succ(p);

}

p.valeur = e;

}

}

[/cpp]

Lien vers le commentaire
Partager sur d’autres sites

[citation=8904,2][nom]DaPtitMoine a écrit[/nom]les deux autres, imperturbables :)

[/citation]

:fuck:

[citation=8907,2][nom]razorbill a écrit[/nom]bah tu sais chuis pas vraiment une star en info :-

je fais ce qu'on me dit de faire, stout..

.. après recherche, j'ai rien sous la main - donc t'aura droit à un exemple de merde avec des éléments basiques d'entier à la con tout moche..

c'est une lca mono[/citation]

je devrais pouvoir m'en sortir avec ça. Merci pour tout :)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Razooooooor, heeeeelp ! :D

J'ai encore du rater un truc, faut pas m'en vouloir [:666].

   class Line extends Node {
       protected Coor2D _from, _to;
       protected Color _color;

       public Line(Coor2D from, Coor2D to){
           _from = from;
           _to = to;
           _color = Color.white;
       }

       public Line(Coor2D from, Coor2D to, Color color){
           _from = from;
           _to = to;
           _color = color;
       }


       protected void _drawLine(Graphics g, Coor2D from, Coor2D to, double[][] matrix){
           //TODO: use matrix ?
           g.drawLine((int)from.x(), (int)from.y(), (int)to.x(), (int)to.y());
            g.drawString("DrawLine 2D",5,20);
       }

       protected void _drawLine(Graphics g, Coor3D from, Coor3D to, double[][] matrix){
           Coor4D temp_from = new Coor4D(from, 1.0);
           Coor4D temp_to = new Coor4D(to, 1.0);
           _drawLine(g, temp_from, temp_to, matrix);
            g.drawString("DrawLine 3D",5,20);
       }

       protected void _drawLine(Graphics g, Coor4D from, Coor4D to, double[][] matrix){
          Coor2D temp_from = cam.applyTo(vectoriel(from, matrix));
          Coor2D temp_to = cam.applyTo (vectoriel(to, matrix));
          g.drawLine ((int)temp_from.x(), (int)temp_from.y(), (int)temp_to.x(), (int)temp_to.y());
       }


       public void paint(Graphics g, double[][] matrix) {
           g.setColor (_color);
           _drawLine (g, _from, _to, matrix);
       }

   }

Voilà, en gros j'ai utilisé les trucs qu'on a vu plus haut, avec Coor4D qui hérite de Coor3D qui hérite de Coor2D, et le but c'est que si j'initialise ma Line() avec des Coor4D c'est la méthode _drawLine correspondante qui soit appelée lorsqu'on appel paint(). Mais ça appelle toujours celle de Coor2D. Faut que je revoye mon héritage ? :sweat:

PS: Node c'est pas important, c'est juste pour m'obliger à définir paint()...

Lien vers le commentaire
Partager sur d’autres sites

mon royaume pour un flingue...

class Coor2D extends Coor1D {
   protected double _y;
   public Coor2D (double x, double y) {
       super(x);
       _y = y;
   }
   public double y(){return _y;}

   public String test() {return "2D";}
}

class Coor4D extends Coor3D {
   private double _w;
   public Coor4D (double x, double y, double z, double w) {
       super(x, y, z);
       _w = w;
   }
   public Coor4D(Coor3D c, double w){
       super(c.x(), c.y(), c.z());
       _w = w;
   }
   public double w(){return _w;}
   public String test() {return "4D";}
}

       protected void _drawLine(Graphics g, Coor2D from, Coor2D to, double[][] matrix){
           //TODO: use matrix ?
           g.drawLine((int)from.x(), (int)from.y(), (int)to.x(), (int)to.y());
            g.drawString("DrawLine 2D : " + from.test(),5,20);
       }

résultat, il polymorphe sur l'appel à test() mais pas sur celui à paint()... vais me pendre... :sweat: :sweat: :sweat:

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement