Javanoid casse brique en java programmation orienté objet

Soyez le premier à donner votre avis sur cette source.

Vue 28 284 fois - Téléchargée 2 390 fois

Description

Projet presenté en deuxieme année de deug de cette année, il n as pas pour vocation d etre rempli de plein de niveau etc.. mais il a l humble pretention d etre assez portatif, plein d options (laser, multiballe) et modifier ce programme est en fait assez simple.
Je sais que de nombreux projet du meme type on etait edités ici mais je pense que le mien ressemble plus a ce que l on pourrait s attendre avec un language orienté objet.
Enjoy your self.

Source / Exemple :


import java.awt.*;
     import java.awt.event.*;
     import java.applet.Applet;
     import java.awt.Graphics;
     import java.awt.Point;
     import java.awt.Event;
     import java.lang.Math;
     import java.util.*;
     import java.io.*;

public class  Javanoid extends Applet implements Runnable{
public static int RAYON=10;
public static int RAPIDITE=5;
public static int LARGEUR=500;
public static int HAUTEUR=600;

public Cadre tableau;
public ListeBoule listeballe;
public Boule balle;
public Barre tige;
public Level level;
public Brique brique;
public Option options;
public Bonus  GetBonus,SetBonus;
public ListeBonus listebonus;
public ListeLaser listelaser;
public Laser laser;
public static int Score;
public boolean ToucheBarre;
public Thread runner= new Thread(this);
public TracerSouris s=new TracerSouris();

    public void init()
    {
      tableau=new Cadre(80,10);
      tige=new Barre(220,tableau);
      balle=new Boule(tige,1,1);
      listeballe=new ListeBoule();
      listelaser=new ListeLaser();
      level=new Level(tableau.Getx()+(LARGEUR-HAUTEUR/2)/2,tableau.Gety()+(2*HAUTEUR/3-LARGEUR/2)/2);
      options=new Option(tableau.GetBordDroit(),tableau.GetBordHaut(),tableau.GetLargeur()/3,tableau.GetHauteur());
      options.SetColler();
      listebonus=new ListeBonus();
      listeballe.insererEnTete(balle);
      level.Level2();
      ToucheBarre=true;
      setBackground(Color.white);
      addMouseMotionListener(s);
      addMouseListener(s);
      runner.start();
     }

    public  void run(){
    Graphics g=getGraphics();
    if(!level.LevelFini()){
    if(options.GetVie()>=0){
    if(!listeballe.estVide()){
    if(!(options.GetColler() && ToucheBarre) || listeballe.ContientPlusDuneBoule()){
    if(options.GetDoubleBarre() && tige.GetLargeur()<(tableau.GetLargeur()/5)){
    options.NoDoubleBarre();
    tige=new Barre(tige.Getx(),tige.Gety(),tige.GetHauteur(),tige.GetLargeur()*2);
    }else {options.NoDoubleBarre();}
    if(options.GetMultiBalle()){
    options.NoMultiballe();
    balle=new Boule(tige,1,1);
    listeballe.insererEnTete(balle);}

    ToucheBarre=listeballe.TestBarre(tige);
    listeballe.TestFall(tige);
    listeballe.TestCadre(tableau);
    if(options.GetInvincible()){brique=listeballe.getPremier().TestBriqueInvincible(level,Score);
                                listeballe.TestBriqueInvincible(level,Score);}
                                else {     brique=listeballe.getPremier().TestBrique(level,Score);
                                listeballe.TestBrique(level,Score);
                                }
    GetBonus=listebonus.TestBarre(tige);
    options.Bonus_to_Option(GetBonus);
    listebonus.Fall(tige);
    if(brique!=null){
    SetBonus=new Bonus(brique);
    SetBonus.Random();
    listebonus.insererEnQueue(SetBonus);
    options.addScore();
    }

    listelaser.TestBrique(level,Score);
    listelaser.TestCadre(tableau);
    listebonus.Move();
    listeballe.Move();
    listelaser.Move();
    listelaser.Dessiner(g);
    listeballe.Dessiner(g);
    listebonus.Dessiner(g);
    try {runner.sleep(30/RAPIDITE);}
           catch(InterruptedException e){};

    repaint();
    }} else {this.Vieperdu(g); }
    }
    }else{  this.DessinerFin(g);}
    }

    public void update(Graphics g) {
    paint(g);
    }

    public void paint(Graphics g){
    String tmp,tmp2;
    tableau.Dessiner(g);
    tige.Dessiner(g);
    listebonus.EnDessiner(g);
    level.Dessiner(g);
    listeballe.EnDessiner(g);
    options.EnDessiner(g);
    options.Dessiner(g);
    listelaser.EnDessiner(g);
    if(options.GetColler() && ToucheBarre){listeballe.Dessiner(g);}
    this.run();
    }

     public void Vieperdu(Graphics g){
             tige.EnDessiner(g);
             tige=new Barre(220,tableau);
             listelaser=new ListeLaser();
             balle=new Boule(tige,1,1);
             listeballe.insererEnTete(balle);
             options.supVie();
             ToucheBarre=true;
             options.Init();}

    public void DessinerFin(Graphics g){
    removeMouseMotionListener(s);
    removeMouseListener(s);
    g.setColor(Color.white);
    g.fillRect(tableau.Getx(),tableau.Gety(),tableau.GetLargeur()+options.GetCadre().GetLargeur()+1,tige.GetBordBas());
    g.setColor(Color.black);
    g.drawString("Score : "+(options.GetScore()*100+options.GetVie()*1000),tableau.GetBordGauche()+(tableau.GetLargeur()/2),tableau.GetBordHaut()+(tableau.GetHauteur()/2));
    }

    class TracerSouris extends MouseAdapter implements MouseMotionListener{

    public void mouseDragged(MouseEvent e){}

    public void mouseMoved(MouseEvent e){
    int ancvaleur=tige.GetBordGauche();
    int tmp=e.getX();
    if(tmp<=tableau.GetBordGauche()){tmp=tableau.GetBordGauche();}
    if(tmp+tige.GetLargeur()>=tableau.GetBordDroit()){tmp=tableau.GetBordDroit()-tige.GetLargeur();}
    Graphics g=getGraphics();
    tige.EnDessiner(g);
    tige.Givex(tmp);
    repaint();
    if(options.GetColler() && ToucheBarre){
    listeballe.EnDessiner(g);
    listeballe.getPremier().Move(tmp-ancvaleur,0);
    }
    }

    public void mouseClicked(MouseEvent e){
    Graphics g=getGraphics();
    if(options.GetColler()==true && ToucheBarre) options.DeColler();
    if(options.GetLaser()){laser=new Laser(tige);listelaser.insererEnTete(laser);}
    repaint();}

    }

}

    class ListeLaser{
     private Chainon premier;

    private class Chainon{
    private Laser data;
    private Chainon suivant;
    }

    public ListeLaser(){
    premier=null;}

    public boolean estVide(){
    return (premier==null);}

    public Laser getPremier(){
    if(estVide())
        throw new NoSuchElementException();
        return premier.data;
    }

    public void insererEnTete(Laser data){
    Chainon nvChn=new Chainon();
    nvChn.data=data;
    Chainon nvChn1=new Chainon();
    nvChn1.data=new Laser(data);
    nvChn1.suivant=premier;
    nvChn.suivant=nvChn1;
    premier=nvChn;}

    public void insererEnQueue(Laser data){
    Chainon curseur=new Chainon();
    Chainon nvChn=new Chainon();
    nvChn.data=data;
    curseur=premier;
    if(estVide()){this.insererEnTete(data);}
    else{
    while(curseur.suivant!=null){
    curseur=curseur.suivant;}
    curseur.suivant=nvChn;}
    }

    public void retrancherEnTete(){
    if(estVide())
       throw new NoSuchElementException();
    else{premier=premier.suivant;}}

    public void supprimerElt(Chainon laser){
    Chainon curseur=new Chainon();
    curseur=premier;
    if(curseur==null)
             throw new NoSuchElementException();

    if(curseur.data.Getx()==laser.data.Getx()){this.retrancherEnTete();}
    else{
    while(curseur.suivant.data.Getx()!=laser.data.Getx() && curseur.suivant.data.Gety()!=laser.data.Gety() && curseur.suivant!=null){
    curseur=curseur.suivant;}
    curseur.suivant=curseur.suivant.suivant;}
    }

    public void TestBrique(Level level,int score){
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    if(curseur.data.TestBrique(level,score)){supprimerElt(curseur);}
    curseur=curseur.suivant;
    }
    }

    public void TestCadre(Cadre tableau){
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    if(curseur.data.TestCadre(tableau)){supprimerElt(curseur);}
    curseur=curseur.suivant;
    }
    }

    public void Move(){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.Move();
    curseur=curseur.suivant;
    }
    }

    public void Dessiner(Graphics g){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.Dessiner(g);
    curseur=curseur.suivant;
    }
    }

    public void EnDessiner(Graphics g){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.EnDessiner(g);
    curseur=curseur.suivant;
    }
    }
}
    class Laser{
    private int x;
    private int y;
    private int largeur;
    private int hauteur;

    public Laser(int x,int y,int largeur,int hauteur){
    this.x=x;
    this.y=y;
    this.largeur=largeur;
    this.hauteur=hauteur;
    }

    public Laser(Barre tige){
    this.x=tige.Getx();
    this.y=tige.Gety();
    this.largeur=tige.GetLargeur()/20;
    this.hauteur=tige.GetHauteur();}

    public Laser(Laser laser){
    this.x=laser.Getx()+(19*laser.GetLargeur());
    this.y=laser.Gety();
    this.largeur=laser.GetLargeur();
    this.hauteur=laser.GetHauteur();}

    public int Getx(){
    return this.x;}

    public int Gety(){
    return this.y;}

    public int GetHauteur(){
    return this.hauteur;}

    public int GetLargeur(){
    return this.largeur;}

    public void Move(){
    this.y=this.y-2;}

    public void Move(int y){
    this.y=this.y-y;}

    public boolean TestBrique(Level level,int score){
    int i=0,j=0;
    if(this.Getx()+this.largeur>=level.GetBordGauche() && this.Getx()-this.largeur<=level.GetBordDroit() && this.Gety()-this.largeur<=level.GetBordBas() && this.Gety()+this.largeur>=level.GetBordHaut()){
    j= (this.Getx()-level.GetBordGauche())/(level.GetMatrice()[0][0].GetLargeur()+1);
    i= (this.Gety()-level.GetBordHaut())/(level.GetMatrice()[0][0].GetHauteur()+1);

    if(i<level.GetMatrice().length){
           if(j<level.GetMatrice()[i].length){

           if(level.GetMatrice()[i][j].GetExiste()){

           level.GetMatrice()[i][j].Casser();
           ++score;return true;}
           }
           }
    }
    return false;
    }

    public boolean TestCadre(Cadre tableau){
    if(this.Gety()<=tableau.GetBordHaut()){return true;}
    return false;}

    public void Dessiner(Graphics g){
    g.setColor(Color.red);
    g.fillRect(this.x,this.y,this.largeur,this.hauteur);}

    public void EnDessiner(Graphics g){
    g.setColor(Color.white);
    g.fillRect(this.x,this.y,this.largeur,this.hauteur);}

    }

    class ListeBoule {
    private Chainon premier;

    private class Chainon{
    private Boule data;
    private Chainon suivant;
    }

    public ListeBoule(){
    premier=null;}

    public boolean estVide(){
    return (premier==null);}

    public boolean ContientPlusDuneBoule(){
    if(estVide()){return false;}
    if(premier.suivant==null){return false;}
    return true;}

    public Boule getPremier(){
    if(estVide())
        throw new NoSuchElementException();
        return premier.data;
    }

    public void insererEnTete(Boule data){
    Chainon nvChn=new Chainon();
    nvChn.data=data;
    nvChn.suivant=premier;
    premier=nvChn;}

    public void insererEnQueue(Boule data){
    Chainon curseur=new Chainon();
    Chainon nvChn=new Chainon();
    nvChn.data=data;
    curseur=premier;
    if(estVide()){this.insererEnTete(data);}
    else{
    while(curseur.suivant!=null){
    curseur=curseur.suivant;}
    curseur.suivant=nvChn;}
    }

    public void retrancherEnTete(){
    if(estVide())
       throw new NoSuchElementException();
    else{premier=premier.suivant;}}

    public void supprimerElt(Chainon balle){
    Chainon curseur=new Chainon();
    curseur=premier;
    if(curseur==null)
             throw new NoSuchElementException();

    if(curseur.data.Getx()==balle.data.Getx()){this.retrancherEnTete();}
    else{
    while(curseur.suivant.data.Getx()!=balle.data.Getx() && curseur.suivant.data.Gety()!=balle.data.Gety() && curseur.suivant!=null){
    curseur=curseur.suivant;}
    curseur.suivant=curseur.suivant.suivant;}
    }

    public void TestFall(Barre tige){
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    if(curseur.data.TestFall(tige)){this.supprimerElt(curseur);}
    curseur=curseur.suivant;
    }
    }

    public boolean TestBarre(Barre tige){
    boolean touche=false;
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    if(curseur==premier){touche=curseur.data.TestBarre(tige);}
    else{curseur.data.TestBarre(tige);}
    curseur=curseur.suivant;

    }
    return touche;
    }

    public void TestBrique(Level level,int score){
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    curseur.data.TestBrique(level,score);
    curseur=curseur.suivant;
    }
    }

    public void TestCadre(Cadre tableau){
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    curseur.data.TestCadre(tableau);
    curseur=curseur.suivant;
    }
    }

    public void TestBriqueInvincible(Level level,int score){
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    curseur.data.TestBriqueInvincible(level,score);
    curseur=curseur.suivant;
    }
    }

    public void Move(){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.Move();
    curseur=curseur.suivant;
    }
    }

    public void Dessiner(Graphics g){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.Dessiner(g);
    curseur=curseur.suivant;
    }
    }

    public void EnDessiner(Graphics g){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.EnDessiner(g);
    curseur=curseur.suivant;
    }
    }
}

    class Option{
   public static int RAYON=10;
   public static int RAPIDITE=5;
   public static int LARGEUR=500;
   public static int HAUTEUR=600;

    private boolean invincible;
    private boolean doublebarre;
    private boolean multiballe;
    private int vie;
    private boolean laser;
    private boolean coller;
    private int Score;
    private Cadre cadre;

    public Option(){
    this.cadre=new Cadre();
    this.invincible=false;
    this.doublebarre=false;
    this.multiballe=false;
    this.vie=3;
    this.laser=false;
    this.coller=false;
    this.Score=0;
    }

    public Option(int x,int y,int largeur,int hauteur){
    this.cadre=new Cadre(x,y,largeur,hauteur);
    this.invincible=false;
    this.doublebarre=false;
    this.multiballe=false;
    this.vie=3;
    this.laser=false;
    this.coller=false;
    this.Score=0;
    }

    public void Init(){
    this.invincible=false;
    this.doublebarre=false;
    this.multiballe=false;
    this.laser=false;
    this.coller=true;
    }

    public Cadre GetCadre(){
    return this.cadre;}

    public int GetVie(){
    return this.vie;}

    public int GetScore(){
    return this.Score;}

    public boolean GetMultiBalle(){
    return this.multiballe;}

    public boolean GetInvincible(){
    return this.invincible;}

    public boolean GetDoubleBarre(){
    return this.doublebarre;}

    public boolean GetLaser(){
    return this.laser;}

    public boolean GetColler(){
    return this.coller;}

    public void DeColler(){
    this.coller=false;}

    public void SetCadre(int x,int y,int largeur,int hauteur){
    this.cadre=new Cadre(x,y,largeur,hauteur);}

    public void SetVie(int x){
    this.vie=x;}

    public void addVie(){
    ++this.vie;}

    public void supVie(){
    --this.vie;}

    public void SetScore(int x){
    this.Score=x;}

    public void addScore(){
    ++this.Score;}

    public void addScore(int x){
    this.Score=this.Score+x;}

    public void SetMultiballe(){
    this.multiballe=true;}

    public void NoMultiballe(){
    this.multiballe=false;}

    public void SetInvincible(){
    this.invincible=true;}

    public void SetDoubleBarre(){
    this.doublebarre=true;}

    public void NoDoubleBarre(){
    this.doublebarre=false;}

    public void NoLaser(){
    this.laser=false;}

    public void SetLaser(){
    this.laser=true;}

    public void SetColler(){
    this.coller=true;}

    public void Bonus_to_Option(Bonus bonus){
    if(bonus.Getcoller()){this.SetColler();}
    if(bonus.Getmultiballe()){this.SetMultiballe();}
    if(bonus.Getlaser()){this.SetLaser();}
    if(bonus.Getvie()){this.addVie();}
    if(bonus.Getmort()){this.supVie();}
    if(bonus.Getinvincible()){this.SetInvincible();}
    if(bonus.Getdoublebarre()){this.SetDoubleBarre();}
    }

    public void Dessiner(Graphics g){
    g.setColor(Color.black);
    this.cadre.Dessiner(g);
    g.drawString("Score : "+this.Score*100,this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/5),this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/20));
    g.drawString("Vie : "+this.vie,this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/5),this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/10));
    g.drawString("Coller : "+this.coller,this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/5),this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/5));
    g.drawString("Invincible : "+this.invincible,this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/5),20+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/5));
    g.drawString("Laser : "+this.laser,this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/5),40+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/5));
    g.drawString("doubleBarre : "+this.doublebarre,this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/5),60+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/5));

    g.setColor(Color.magenta);
    g.drawString("Invincible  ",this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/4),this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2));
    g.fillOval(this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/6), this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2)-RAYON,RAYON,RAYON);

    g.setColor(Color.red);
    g.drawString("Laser  ",this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/4),20+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2));
    g.fillOval(this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/6), 20+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2)-RAYON,RAYON,RAYON);

    g.setColor(Color.orange);
    g.drawString("Multiballe  ",this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/4),40+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2));
    g.fillOval(this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/6), 40+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2)-RAYON,RAYON,RAYON);

    g.setColor(Color.pink);
    g.drawString("Vie  ",this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/4),60+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2));
    g.fillOval(this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/6), 60+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2)-RAYON,RAYON,RAYON);

    g.setColor(Color.blue);
    g.drawString("BoubleBarre  ",this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/4),80+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2));
    g.fillOval(this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/6), 80+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2)-RAYON,RAYON,RAYON);

    g.setColor(Color.green);
    g.drawString("Coller  ",this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/4),100+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2));
    g.fillOval(this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/6), 100+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2)-RAYON,RAYON,RAYON);

    g.setColor(Color.black);
    g.drawString("Mort  ",this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/4),120+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2));
    g.fillOval(this.cadre.GetBordGauche()+(this.cadre.GetLargeur()/6), 120+this.cadre.GetBordHaut()+(this.cadre.GetHauteur()/2)-RAYON,RAYON,RAYON);

    }

    public void EnDessiner(Graphics g){
    g.setColor(Color.white);
    g.fillRect(this.cadre.GetBordGauche()+1,this.cadre.GetBordHaut()+1,this.cadre.GetLargeur()-2,this.cadre.GetHauteur()/3);

    }
    }

    class ListeBonus {
    private Chainon premier;

    private class Chainon{
    private Bonus data;
    private Chainon suivant;
    }

    public ListeBonus(){
    premier=null;}

    public boolean estVide(){
    return (premier==null);}

    public Bonus getPremier(){
    if(estVide())
        throw new NoSuchElementException();
        return premier.data;
    }

    public void insererEnTete(Bonus data){
    Chainon nvChn=new Chainon();
    nvChn.data=data;
    nvChn.suivant=premier;
    premier=nvChn;}

    public void insererEnQueue(Bonus data){
    Chainon curseur=new Chainon();
    Chainon nvChn=new Chainon();
    nvChn.data=data;
    curseur=premier;
    if(estVide()){this.insererEnTete(data);}
    else{
    while(curseur.suivant!=null){
    curseur=curseur.suivant;}
    curseur.suivant=nvChn;}
    }

    public void retrancherEnTete(){
    if(estVide())
       throw new NoSuchElementException();
    else{premier=premier.suivant;}}

    public void supprimerElt(Chainon bonus){
    Chainon curseur=new Chainon();
    curseur=premier;
    if(curseur==null)
             throw new NoSuchElementException();

    if(curseur.data.Getx()==bonus.data.Getx()){this.retrancherEnTete();}
    else{
    while(curseur.suivant.data.Getx()!=bonus.data.Getx() && curseur.suivant.data.Gety()!=bonus.data.Gety() && curseur.suivant!=null){
    curseur=curseur.suivant;}
    curseur.suivant=curseur.suivant.suivant;}
    }

    public void Fall(Barre tige){
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    if(curseur.data.TestFall(tige)){this.supprimerElt(curseur);}
    curseur=curseur.suivant;
    }
    }

    public Bonus TestBarre(Barre tige){
    Bonus pasdebonus=new Bonus(0,0);
    Chainon curseur=new Chainon();
    curseur=premier;
    while(curseur!=null){
    if(curseur.data.TestBarre(tige)){this.supprimerElt(curseur);return curseur.data;}
    curseur=curseur.suivant;
    }
    return pasdebonus;
    }

    public void Move(){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.Move();
    curseur=curseur.suivant;
    }
    }

    public void Dessiner(Graphics g){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.Dessiner(g);
    curseur=curseur.suivant;
    }
    }

    public void EnDessiner(Graphics g){
    Chainon curseur=new Chainon();
    curseur=premier;
     while(curseur!=null){
    curseur.data.EnDessiner(g);
    curseur=curseur.suivant;
    }
    }

    }

    class Bonus{
    public static int RAYON=10;
    public static int RAPIDITE=5;
    public static int LARGEUR=500;
    public static int HAUTEUR=600;

    private int x;
    private int y;
    private int r;
    private boolean invincible;
    private boolean doublebarre;
    private boolean multiballe;
    private boolean vie;
    private boolean mort;
    private boolean laser;
    private boolean coller;

    public Bonus(int x,int y){
    this.x=x;
    this.y=y;
    this.r=RAYON;
    this.invincible=false;
    this.doublebarre=false;
    this.multiballe=false;
    this.vie=false;
    this.mort=false;
    this.laser=false;
    this.coller=false;
    }

    public Bonus(Brique brique){
    this.x=brique.Getx()+(brique.GetLargeur()/2);
    this.y=brique.Gety()+(brique.GetHauteur()/2);
    this.r=RAYON;
    this.invincible=false;
    this.doublebarre=false;
    this.multiballe=false;
    this.vie=false;
    this.mort=false;
    this.laser=false;
    this.coller=false;
    }

    public void Init(){
    this.invincible=false;
    this.doublebarre=false;
    this.multiballe=false;
    this.vie=false;
    this.mort=false;
    this.laser=false;
    this.coller=false;
    }

    public int Getx(){
    return this.x;}

    public int Gety(){
    return this.y;}

    public int GetRayon(){
    return this.r;}

    public boolean Getinvincible(){
    return this.invincible;}

    public boolean Getdoublebarre(){
    return this.doublebarre;}

    public boolean Getmultiballe(){
    return this.multiballe;}

    public boolean Getvie(){
    return this.vie;}

    public boolean Getmort(){
    return this.mort;}

    public boolean Getlaser(){
    return this.laser;}

    public boolean Getcoller(){
    return this.coller;}

    public void Setinvincible(){
    this.invincible=!this.invincible;}

    public void Setdoublebarre(){
    this.doublebarre=!this.doublebarre;}

    public void Setmultiballe(){
    this.multiballe=!this.multiballe;}

    public void Setvie(){
    this.vie=!this.vie;}

    public void Setlaser(){
    this.laser=!this.laser;}

    public void Setcoller(){
    this.coller=!this.coller;}

    public void Setx(int x){
    this.x=x;}

    public void Sety(int y){
    this.y=y;}

    public void Move(){
    this.y=this.y+(this.r/5);}

    public void Move(int y){
    this.y=this.y+y;}

    public void Move(int x,int y){
    this.x=this.x+x;
    this.y=this.y+y;}

    public boolean TestFall(Barre tige){
    if(this.Gety()>=tige.Gety()){return true;}
    return false;
    }

    public boolean TestBarre(Barre tige){
    if(this.Gety()+this.r>=tige.GetBordHaut() && this.Getx()+(this.r/2)>=(tige.GetBordGauche()) && this.Getx()+(this.r/2)<=(tige.GetBordDroit()))
    {return true;}
    return false;
    }

    public void Random(){
    int tmp;
    Random rnd = new Random( );
    tmp=rnd.nextInt()%7;

    switch (tmp){
    case 0:
         this.vie=true;
                break;
    case 1:
         this.invincible=true;
                break;
    case 2:
         this.doublebarre=true;
                break;
    case 3:
         this.multiballe=true;
                break;

    case 4:
         this.mort=true;
                break;
    case 5:
         this.coller=true;
                break;
    case 6:
         this.laser=true;
                break;

    default:;
    }
    }

    public void Dessiner(Graphics g){
    if(this.vie){g.setColor(Color.pink);}
    if(this.mort){g.setColor(Color.black);}
    if(this.multiballe){g.setColor(Color.orange);}
    if(this.coller){g.setColor(Color.green);}
    if(this.laser){g.setColor(Color.red);}
    if(this.doublebarre){g.setColor(Color.blue);}
    if(this.invincible){g.setColor(Color.magenta);}
    if(this.vie || this.mort || this.multiballe || this.coller || this.laser || this.doublebarre || this.invincible)
    {g.fillOval(this.x, this.y,this.r,this.r);}
    }

    public void EnDessiner(Graphics g){
    g.setColor(Color.white);
    if(this.vie || this.mort || this.multiballe || this.coller || this.laser || this.doublebarre || this.invincible){
    g.fillOval(this.x, this.y,this.r,this.r);}
    }
    }

    class Brique{
    public static int RAYON=10;
    public static int RAPIDITE=5;
    public static int LARGEUR=500;
    public static int HAUTEUR=600;

    private  int x;
    private  int y;
    private  boolean existe;
    private  int Largeur;
    private  int Hauteur;

    public Brique(int x,int y,int largeur,int hauteur,boolean bool){
           this.x=x;
           this.y=y;
           this.Largeur=largeur;
           this.Hauteur=hauteur;
           this.existe=bool;
           }

    public Brique(int x,int y,int largeur,int hauteur){
           this.x=x;
           this.y=y;
           this.Largeur=largeur;
           this.Hauteur=hauteur;
           this.existe=true;
           }

    public Brique(int x,int y){
           this.x=x;
           this.y=y;
           this.Largeur=(HAUTEUR/20)-1;
           this.Hauteur=(LARGEUR/20)-1;
           this.existe=true;
    }

    public Brique(int x,int y,Level level){
           this.x=x;
           this.y=y;
           this.Largeur=(LARGEUR/level.GetMatrice()[0].length)-1;
           this.Hauteur=(HAUTEUR/level.GetMatrice().length)-1;
           this.existe=true;
    }

    public void Casser(){
           this.existe=false;
    }

    public int Getx(){
    return this.x;}

    public int Gety(){
    return this.y;}

    public int GetLargeur(){
    return this.Largeur;}

    public int GetHauteur(){
    return this.Hauteur;}

    public boolean GetExiste(){
    return this.existe;}

    public int GetBordGauche(){
    return this.x;}

    public int GetBordDroit(){
    return this.x+this.Largeur;}

    public int GetBordHaut(){
    return this.y;}

    public int GetBordBas(){
    return this.y+this.Hauteur;
    }

    public void Dessiner(Graphics g){
    g.setColor(Color.red);
    g.fillRect(this.x,this.y,this.Largeur,this.Hauteur);}

    public void EnDessiner(Graphics g){
    g.setColor(Color.white);
    g.fillRect(this.x,this.y,this.Largeur,this.Hauteur);}

    }

    class Level{
    public static int RAYON=10;
    public static int RAPIDITE=5;
    public static int LARGEUR=500;
    public static int HAUTEUR=600;

    private Brique[][] matrice;
    private int x;
    private int y;

    public Level(int x,int y,int u,int v){
           this.matrice=new Brique[x][y];
           this.x=u;
           this.y=v;
           }

    public Level(int n,int x,int y){
           this.matrice=new Brique[n][n];
           this.x=x;
           this.y=y;
           }

    public Level(Brique[][] tableau,int x,int y){
           this.matrice=tableau;
           this.x=x;
           this.y=y;
           }

    public Level(int x,int y){
           this.matrice=new Brique[10][10];
           this.x=x;
           this.y=y;
           }

    public int Getx(){
    return this.x;}

    public int Gety(){
    return this.x;}

    public int GetBordGauche(){
    return this.x;}

    public int GetBordDroit(){
    return this.x+(this.matrice[0].length*this.matrice[0][0].GetLargeur());}

    public int GetBordBas(){
    return this.y+(this.matrice.length*this.matrice[0][0].GetHauteur());}

    public int GetBordHaut(){
    return this.y;}

    public boolean LevelFini(){
    boolean tmp=true;
    for(int i=0;i<this.matrice.length;i++){
        for(int j=0;j<this.matrice[i].length;j++){
    tmp=(tmp && !this.matrice[i][j].GetExiste());}}
    return tmp;
    }

    public Level Level1(Level level1){
    int x1,y1,nbrique;
    nbrique=(level1.matrice[0].length)*(level1.matrice.length);
    level1.matrice[0][0]=new Brique(level1.x,level1.y,level1);
    for(int i=0;i<level1.matrice.length;i++){
        for(int j=0;j<level1.matrice[i].length;j++){
    x1=(level1.matrice[0][0].GetLargeur()+1)*j;
    y1=(level1.matrice[0][0].GetHauteur()+1)*i;
    this.matrice[i][j]=new Brique(x1+level1.x,y1+level1.y,level1);
        }
    }
    return level1;
    }

    public void Level2(){
    int x1,y1,tmp,tmp1;
    this.matrice[0][0]=new Brique(this.x,this.y);
    tmp=this.matrice[0][0].GetLargeur();
    tmp1=this.matrice[0][0].GetHauteur();
    for(int i=0;i<this.matrice.length;i++){
        for(int j=0;j<this.matrice[i].length;j++){
    x1=(tmp+1)*j;
    y1=(tmp1+1)*i;
    this.matrice[i][j]=new Brique((this.x+x1),(this.y+y1));
        }
    }
    }

    public Brique[][] GetMatrice(){
    return this.matrice;
    }

    public boolean TestSiBrique(int x, int y){
    return this.matrice[x][y].GetExiste();
    }

    public void Dessiner(Graphics g){
    for(int i=0;i<this.matrice.length;i++){
        for(int j=0;j<this.matrice[i].length;j++){
    if(this.matrice[i][j].GetExiste()){this.matrice[i][j].Dessiner(g);} else{this.matrice[i][j].EnDessiner(g);}
        }
    }
    }

    }

    class Boule{

    public static int RAYON=10;
    public static int RAPIDITE=5;
    public static int LARGEUR=500;
    public static int HAUTEUR=600;

    private int x;
    private int y;
    private int r;
    private int dx;
    private int dy;

           public Boule(int x,int y){
           this.x=x;
           this.y=HAUTEUR-y;
           this.r=RAYON;
           this.dx=0;
           this.dy=0;
           }

           public Boule(Cadre tableau){
           this.x=(tableau.GetBordDroit()-tableau.GetBordGauche())/2;
           this.y=(tableau.GetBordBas());
           this.r=RAYON;
           this.dx=0;
           this.dy=0;
           }

           public Boule(int x,int y,int dx,int dy){
           this.x=x;
           this.y=HAUTEUR-y;
           this.r=RAYON;
           this.dx=dx;
           this.dy=-dy;
           }

           public Boule(Cadre tableau,int dx,int dy){
           this.x=(tableau.GetBordDroit()-tableau.GetBordGauche())/2;
           this.y=(tableau.GetBordHaut());
           this.r=RAYON;
           this.dx=dx;
           this.dy=-dy;
           }

           public Boule(Barre tige,int dx,int dy){
           this.x=tige.GetBordGauche()+(tige.GetBordDroit()-tige.GetBordGauche()-this.r)/2;
           this.r=RAYON;
           this.y=(tige.Gety()-(this.r+1));
           this.dx=dx;
           this.dy=-dy;
           }

           public int Getx(){
           return this.x;}

           public int Gety(){
           return this.y;}

           public int Getdx(){
           return this.dx;}

           public int Getdy(){
           return this.dy;}

           public void Setdx(int dx){
           this.dx=dx;}

           public void Setdy(int dy){
           this.dy=dy;}

           public int PrecedentGetx(){
           return this.x-this.dx;}

           public int PrecedentGety(){
           return this.y-this.dy;}

           public void Move(){
            this.x=this.x+this.dx;
            this.y=this.y+this.dy; }

           public void Move(int dx,int dy){
            this.x=this.x+dx;
            this.y=this.y+dy;
            }

           public void RebondCote(){
           this.dx=-this.dx;}

           public void RebondHauteur(){
           this.dy=-this.dy;}

           public void RebondBarre(int dx1,int dy1){
           this.dx=dx1;
           this.dy=-dy1;}

           public void Dessiner(Graphics g){
            g.setColor(Color.black);
            g.fillOval(this.x, this.y,this.r,this.r);}

           public void EnDessiner(Graphics g){
           g.setColor(Color.white);
           g.fillOval(this.x, this.y,this.r,this.r);}

           public Boule TestCadre(Cadre tableau){
             if(this.Getx()<=tableau.GetBordGauche())
           {this.Move(tableau.GetBordGauche()-this.x,this.dy*(tableau.GetBordGauche()-this.x)/this.dx);this.RebondCote();}
           if(this.Gety()<=tableau.GetBordHaut())
           {this.Move((tableau.GetBordHaut()-this.y)*this.dx/this.dy,tableau.GetBordHaut()-this.y); this.RebondHauteur();}
           if(this.Getx()+this.r>=tableau.GetBordDroit())
           {this.Move(tableau.GetBordDroit()-this.x-this.r,this.dy*(tableau.GetBordDroit()-this.x)/this.dx);this.RebondCote();}
           return this;
           }

           public boolean TestBarre(Barre tige){
           if(this.Gety()+this.r>=tige.GetBordHaut() && this.Getx()+(this.r/2)>=(tige.GetBordGauche()) && this.Getx()+(this.r/2)<=(tige.GetBordDroit()))
           {int tmp=tige.CoefficientRebond(this.Getx());this.RebondBarre(tmp*Math.abs(this.dx)/this.dx,this.dy);return true;}
           return false;
           }

           public Brique TestBriqueInvincible(Level level,int score){
           int j=0,i=0,k=0,l=0;
           Brique brique=null;
           boolean Casse=false;
           if(this.Getx()+this.r>=level.GetBordGauche() && this.Getx()-this.r<=level.GetBordDroit() && this.Gety()-this.r<=level.GetBordBas() && this.Gety()+this.r>=level.GetBordHaut()){
           j= (this.Getx()-level.GetBordGauche())/(level.GetMatrice()[0][0].GetLargeur()+1);
           i= (this.Gety()-level.GetBordHaut())/(level.GetMatrice()[0][0].GetHauteur()+1);
           k= (this.Getx()+this.dx-level.GetBordGauche())/(level.GetMatrice()[0][0].GetLargeur()+1);
           l= (this.Gety()+this.dy-level.GetBordHaut())/(level.GetMatrice()[0][0].GetHauteur()+1);

           if(i<level.GetMatrice().length){
           if(j<level.GetMatrice()[i].length){

           if(level.GetMatrice()[i][j].GetExiste()){

           level.GetMatrice()[i][j].Casser();
           ++score;
           Casse=true;
           brique=level.GetMatrice()[i][j];
            if(this.Gety()+this.r>level.GetMatrice()[i][j].GetBordHaut() && this.Gety()<level.GetMatrice()[i][j].GetBordBas()){

            }

            if(this.Getx()<level.GetMatrice()[i][j].GetBordDroit() && this.Getx()+this.r>level.GetMatrice()[i][j].GetBordGauche()){

            }

           }
            if(l<level.GetMatrice().length){
            if(level.GetMatrice()[l][j].GetExiste()){

            if(this.Getx()<level.GetMatrice()[l][j].GetBordDroit() && this.Getx()+this.r>level.GetMatrice()[l][j].GetBordGauche()){
            level.GetMatrice()[l][j].Casser();
            ++score;
            Casse=true;
            brique=level.GetMatrice()[l][j];
            }
            }

            }

           if(i<level.GetMatrice().length){
           if(k<level.GetMatrice()[i].length){
            if(level.GetMatrice()[i][k].GetExiste()){

            if(this.Gety()>=level.GetMatrice()[i][k].GetBordHaut() && this.Gety()+1<=level.GetMatrice()[i][k].GetBordBas()){
            level.GetMatrice()[i][k].Casser();
            ++score;
            Casse=true;
            brique=level.GetMatrice()[i][k];}
            }
           }
           }
           }
           }
           }
           return brique;
           }

           public Brique TestBrique(Level level,int score){
           int j=0,i=0,k=0,l=0;
           Brique brique=null;
           boolean Casse=false;
           if(this.Getx()+this.r>=level.GetBordGauche() && this.Getx()-this.r<=level.GetBordDroit() && this.Gety()-this.r<=level.GetBordBas() && this.Gety()+this.r>=level.GetBordHaut()){
           j= (this.Getx()-level.GetBordGauche())/(level.GetMatrice()[0][0].GetLargeur()+1);
           i= (this.Gety()-level.GetBordHaut())/(level.GetMatrice()[0][0].GetHauteur()+1);
           k= (this.Getx()+this.dx-level.GetBordGauche())/(level.GetMatrice()[0][0].GetLargeur()+1);
           l= (this.Gety()+this.dy-level.GetBordHaut())/(level.GetMatrice()[0][0].GetHauteur()+1);

           if(i<level.GetMatrice().length){
           if(j<level.GetMatrice()[i].length){

           if(level.GetMatrice()[i][j].GetExiste()){

           level.GetMatrice()[i][j].Casser();
           ++score;
           Casse=true;
           brique=level.GetMatrice()[i][j];
            if(this.Gety()+this.r>level.GetMatrice()[i][j].GetBordHaut() && this.Gety()<level.GetMatrice()[i][j].GetBordBas()){
            this.RebondCote();
            }

            if(this.Getx()<level.GetMatrice()[i][j].GetBordDroit() && this.Getx()+this.r>level.GetMatrice()[i][j].GetBordGauche()){
            this.RebondHauteur();
            }

           }
            if(l<level.GetMatrice().length){
            if(level.GetMatrice()[l][j].GetExiste()){

            if(this.Getx()<level.GetMatrice()[l][j].GetBordDroit() && this.Getx()+this.r>level.GetMatrice()[l][j].GetBordGauche()){
            level.GetMatrice()[l][j].Casser();
            ++score;
            Casse=true;
            brique=level.GetMatrice()[l][j];
            this.RebondHauteur();}
            }

            if(k<level.GetMatrice()[l].length){

            if(level.GetMatrice()[l][k].GetExiste()){

            if(this.Getx()<level.GetMatrice()[l][k].GetBordDroit() && this.Getx()>level.GetMatrice()[l][k].GetBordGauche()){
            level.GetMatrice()[l][k].Casser();++score;
            this.RebondHauteur();}

            if(this.Gety()>level.GetMatrice()[l][k].GetBordHaut() && this.Gety()<level.GetMatrice()[l][k].GetBordBas()){
            level.GetMatrice()[l][k].Casser();++score;
            this.RebondCote();}
            }

            }

            }
            

           if(i<level.GetMatrice().length){
           if(k<level.GetMatrice()[i].length){
            if(level.GetMatrice()[i][k].GetExiste()){

            if(this.Gety()>=level.GetMatrice()[i][k].GetBordHaut() && this.Gety()+1<=level.GetMatrice()[i][k].GetBordBas()){
            this.RebondCote();
            level.GetMatrice()[i][k].Casser();
            ++score;
            Casse=true;
            brique=level.GetMatrice()[i][k];}
            }
           }
           }
           }
           }
           }
           return brique;
           }

           public boolean TestFall(Barre tige){
           if(this.Gety()>=tige.Gety()){return true;}
           return false;
           }

   }

    class Cadre{
    public static int RAYON=10;
    public static int RAPIDITE=5;
    public static int LARGEUR=500;
    public static int HAUTEUR=600;

    private int largeur;
    private int hauteur;
    private int x;
    private int y;

           public Cadre(int x,int y,int largeur,int hauteur){
           this.largeur=largeur;
           this.hauteur=hauteur;
           this.x=x;
           this.y=y;
           }

           public Cadre(int x,int y){
           this.largeur=LARGEUR;
           this.hauteur=HAUTEUR;
           this.x=x;
           this.y=y;
           }

           public Cadre(){
           this.largeur=LARGEUR;
           this.hauteur=HAUTEUR;
           this.x=0;
           this.y=0;
           }

           public int Getx(){
           return this.x;
           }

           public int Gety(){
           return this.y;
           }

           public int GetBordGauche(){
           return this.x;
           }

           public int GetBordDroit(){
           return (this.x+this.largeur);
           }

           public int GetBordHaut(){
           return this.y;
           }

           public int GetBordBas(){
           return (this.y+this.hauteur);
           }

           public int GetHauteur(){
           return this.hauteur;}

           public int GetLargeur(){
           return this.largeur;}

           public void Dessiner(Graphics g){
           g.setColor(Color.black);
           g.drawLine(this.GetBordGauche(),this.GetBordHaut(),this.GetBordDroit(),this.GetBordHaut());
           g.drawLine(this.GetBordGauche(),this.GetBordBas(),this.GetBordGauche(),this.GetBordHaut());
           g.drawLine(this.GetBordDroit(),this.GetBordHaut(),this.GetBordDroit(),this.GetBordBas());
           }

   }

class Barre {
 public static int RAYON=10;
 public static int RAPIDITE=5;
 public static int LARGEUR=500;
 public static int HAUTEUR=600;

    private int Largeur;
    private int Hauteur;
    private int x;
    private int y;

    public Barre(int x,int y,int hauteur,int largeur){
    this.x=x;
    this.y=y;
    this.Hauteur=hauteur;
    this.Largeur=largeur;
    }

    public Barre(Cadre tab,int hauteur,int largeur){
    this.x=(tab.GetBordDroit()-tab.GetBordGauche()-largeur)/2;
    this.y=tab.GetBordBas()+(hauteur/2);
    this.Hauteur=hauteur;
    this.Largeur=largeur;
    }

    public Barre(Cadre tab,int hauteur){
    this.y=tab.GetBordBas()+(hauteur/2);
    this.Hauteur=hauteur;
    this.Largeur=(tab.GetBordDroit()-tab.GetBordGauche())/8;
    this.x=(tab.GetBordDroit()-tab.GetBordGauche()-this.Largeur)/2;
    }

    public Barre(Cadre tab){
    this.Hauteur=(tab.GetBordBas()-tab.GetBordHaut())/90;
    this.Largeur=(tab.GetBordDroit()-tab.GetBordGauche())/8;
    this.x=(tab.GetBordDroit()-tab.GetBordGauche()-this.Largeur)/2;
    this.y=tab.GetBordBas()+(this.Hauteur/2);
    }

    public Barre(int x,int y,Cadre tab){
    this.Hauteur=(tab.GetBordBas()-tab.GetBordHaut())/90;
    this.Largeur=(tab.GetBordDroit()-tab.GetBordGauche())/8;
    this.x=x-(this.Largeur/2);;
    this.y=y+(this.Hauteur/2);;
    }

    public Barre(int x,Cadre tab){
    this.Hauteur=(tab.GetBordBas()-tab.GetBordHaut())/90;
    this.Largeur=(tab.GetBordDroit()-tab.GetBordGauche())/8;
    this.x=x-(this.Largeur/2);
    this.y=tab.GetBordBas()+(this.Hauteur/2);
    }

    public Barre(){
    this.Hauteur=HAUTEUR/90;
    this.Largeur=LARGEUR/8;
    this.x=(LARGEUR-this.Largeur)/2;
    this.y=HAUTEUR+(this.Hauteur*2);
    }

    public void Givex(int x){
    this.x=x;
    }

    public int Getx(){
    return this.x;
    }

    public int GetLargeur(){
    return this.Largeur;}

    public int GetHauteur(){
    return this.Hauteur;}

    public int Gety(){
    return this.y;
    }

    public int GetBordGauche(){
    return this.x;
    }

    public int GetBordDroit(){
    return (this.x+this.Largeur);
    }

    public int GetBordHaut(){
    return this.y;
    }

    public int GetBordBas(){
    return (this.y+this.Hauteur);
    }

    public int CoefficientRebond(int x){
    int coefbord=((this.Largeur)/10);
    int coefdemibord=((this.Largeur)/5);
    if(x<=(this.Getx()+coefbord) || x>=((this.Getx()+(coefbord*9)))) {return -3;}
    if(x<=(this.Getx()+coefdemibord) || x>=(this.Getx()+(coefdemibord*4))) {return 2;}
    return 1;
    }

    public void EnDessiner(Graphics g){
    g.setColor(Color.white);
    g.fillRect(this.x,this.y,this.Largeur,this.Hauteur);
    }

    public void Dessiner(Graphics g){
    g.setColor(Color.black);
    g.fillRect(this.x,this.y,this.Largeur,this.Hauteur);
    }
}

Conclusion :


l algotythme pour tester si les briques sont touchés peut etre amélioré.

Sinon je remercie ma mere pour m avoir mis au monde, ainsi que mon pere qui l as soutenus dans cette dur epreuve. Et Surtout merci a tous ces sites internets qui editent des tutoriaux gratuit complet et tres bien fait. Je remerci aussi l editeur du livre programmation Java, qui m as donné gout a ce language, il traitre tres bien du sujet avec humour et rentre suffisament ds les bases de java.

@+

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
Ça aurait été plus simple de gérer la boule, le tableau et les barres avec des thread. Comme ça, tu aurais pus faire des annimations plus rapidement. sans compté que ton code aurait été beaucoup moins long

il aurait falus faire une class qui détecte les collion et après, un extend tableau ou boule ou barre de cette class qui gèrais la collions de différente façon. La boule, ferait toujours un calcul pour changer de direction, une barre explose toujours (dépendant sont type de barre) et un mur, fait rien à aprt déclencher un son.

pour finir une dernière classe qui serait mis dans une interface qui serait intégré à chaque barre qui permettrais de connaitre le nombre de barre restante et le tour est joué.

lors de la création de ton tableau, tu positionne tes threads de barre, donc pourrais avoir plusieurs configuration loader à partir d,un fichier XML et c'est tout.

Une bonne journée de pluie de fin de semaine, je vais m'attaquer à ça.
cs_spontex
Messages postés
10
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
5 mai 2005
-
Je te remercie de cette critique constructive, et que tu es pris le temp de jeter un coup d oeil a mes sources.
Cependant ce programme est de niveau 1, comme mon niveau en java d ailleurs, (mon niveau en xml -1). je te fais donc confiance pour le remaniement de mon code le soir d une longue nuit d hiver sous la neige et le vent pour remanier mon code a ta guise.
Merci encore pour ta remarque
cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
de rien. Ce que j'ai dit, c,est une autre façon de le faire. Je crois de la façon que j'ai dit, ça sera plus facile à faire des niveau de difficulté et des niveau avec les barres placer différament.

par contre, tu implément quand même un runnable et ma façon est un peu semblable, sauf avec beaucoup plus de runnable. Plus il y a de runnable, plus l'action peut-être géré rapidement, mais plus dur est la programmation (tant qu'on dépace pas la limite de nombre de processus du cpu)

ton niveau de XML est -1 ??? pourtant tu as poster plusieurs sources qui crée des fichier XML, donc je crois que c,est plus 2 que -1 ;-), puisque peut de monde utilise les fichier XML en java encore.

Je devrais downloader JBulder9 pour le faire (puisque j'adore utiliser les dernière technologie et vu que JBulder9 utilise la technologie .Net, ça pourrasi faire dequoi d'intéressant à plusieurs niveau.

donc va démarrer le téléchargement et vite une journée de pluie (ben qu'une journée ensoleiller je fais du bateau) Petit dilemme, bateau ou programation lol. En tout cas, va tenir au courant si je le commence, on pourrait peut-être le faire à 2 ... si ça te tente. Puisque tu es au courant des calcul mathématique et quand même de la structure et moi, ça fait un peu plus longtemps que je programme en java (en tout cas je crois)
cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
pour ceux qui veulent me joindre dans la programmation d'un jeux d'akanoid, le plus avancer possible avec arme, multijoueur (jusqu'à 4), son et effect spéciaux

fait sous jbuilder8 ou 9

aller voir dans le labo

http://www.javafr.com/projetcommun.aspx?ID=463
cs_spontex
Messages postés
10
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
5 mai 2005
-
Désolé de pas avoir repondu avant, mais j etais tres occupé.
je suis pas le spontex que tu crois a mon avis. c est la premiere source que j inscrit ici.
sinon je te souhaite bonne chance pour ton projet.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.