begin process at 2012 02 04 18:02:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > RÉPLIQUE D'ARKANOID

RÉPLIQUE D'ARKANOID


 Information sur la source

Note :
8,25 / 10 - par 4 personnes
8,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :casse, brique, arkanoid, jeu Niveau :Débutant Date de création :22/01/2003 Date de mise à jour :22/01/2003 16:14:17 Vu / téléchargé :17 129 / 902

Auteur : SaintAkseror

Ecrire un message privé
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce casse-brique est issu d'un projet JAVA que j'ai réalisé dans le courant de ma deuxième année d'apprentissage d'analyste programmeur (d'où le nom APAnoid)
Il m'a fallu 4 journées de cours et toute l'aide de mon prof pour en venir à bout mais vous avez là la réplique exacte des 31 niveaux de l'Arkanoid original.

Source

  • import java.applet.Applet;
  • import java.awt.Image;
  • import java.awt.Graphics;
  • import java.awt.event.*;
  • import java.awt.Color;
  • import java.awt.Cursor;
  • public class ApaNoid extends Applet implements MouseListener, MouseMotionListener, KeyListener, Runnable
  • {
  • //Déclarations
  • Image fond;
  • Image raquette;
  • Image offScreen;
  • Image balle;
  • Image[][] Briques = new Image[15][13];
  • Image[] vies = new Image[10];
  • Image gameover;
  • Image[] Num_Score = new Image[10];
  • Image[] Opt = new Image[4];
  • String[] tableau=new String[15];
  • boolean[][] flash = new boolean[15][13];
  • boolean fin_niveau;
  • boolean est_lance;
  • boolean toujours_coller;
  • int[][] Nb_Coups = new int[15][13];
  • int l,h;
  • int niveau;
  • int Score;
  • int max_niv;
  • int position_raquette;
  • int position_balle_x, position_balle_y;
  • int dx,dy;
  • int pas;
  • int pos_init_balle = 55;
  • int vie;
  • int r_1, r_2, r_3;
  • int nb_brikk;
  • int Opt_X,Opt_Y;
  • int Opt_Num;
  • int delta_x;
  • boolean NoOneCanCheatLikeIDo;
  • Thread jouer;
  • float[] sinus = new float[360];
  • float[] cosinus = new float[360];
  • //=========================================================================================\\
  • public void ChargerNiveau(int n)
  • {
  • toujours_coller = false;
  • position_raquette = (int) (getSize().width / 2) - (raquette.getWidth(this) /2);
  • delta_x = 40;
  • Opt_X = 0;
  • position_balle_x = position_raquette + delta_x;
  • position_balle_y = getSize().height - pos_init_balle;
  • raquette = getImage(getDocumentBase(), "Rakette.gif");
  • int a,b;
  • for (a = 0; a < h ; a++) { for (b = 0 ; b < l ; b++) { flash[a][b] = false; }}
  • int f = n % 4;
  • fond = getImage(getDocumentBase(),"FOND" +String.valueOf(f) + ".JPG");
  • prepareImage(fond, this);
  • switch(n)
  • {
  • case 1:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0000000000000";
  • tableau[2] = "9999999999999";
  • tableau[3] = "6666666666666";
  • tableau[4] = "5555555555555";
  • tableau[5] = "4444444444444";
  • tableau[6] = "1111111111111";
  • tableau[7] = "2222222222222";
  • tableau[8] = "0000000000000";
  • tableau[9] = "0000000000000";
  • tableau[10]= "0000000000000";
  • tableau[11]= "0000000000000";
  • tableau[12] ="0000000000000";
  • tableau[13] ="0000000000000";
  • tableau[14] ="0000000000000";
  • nb_brikk = 78;
  • break;
  • case 2:
  • tableau[0] = "7000000000000";
  • tableau[1] = "7500000000000";
  • tableau[2] = "75A0000000000";
  • tableau[3] = "75A2000000000";
  • tableau[4] = "75A2600000000";
  • tableau[5] = "75A2640000000";
  • tableau[6] = "75A2641000000";
  • tableau[7] = "75A2641300000";
  • tableau[8] = "75A2641370000";
  • tableau[9] = "75A2641375000";
  • tableau[10]= "75A2641375A00";
  • tableau[11]= "75A2641375A20";
  • tableau[12]= "9999999999996";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 91;
  • break;
  • case 3:
  • tableau[0] = "2222222222222"; //13
  • tableau[1] = "0000000000000";
  • tableau[2] = "7778888888888"; //3
  • tableau[3] = "0000000000000";
  • tableau[4] = "6666666666666"; //13
  • tableau[5] = "0000000000000";
  • tableau[6] = "8888888888777"; //3
  • tableau[7] = "0000000000000";
  • tableau[8] = "1111111111111"; //13
  • tableau[9] = "0000000000000";
  • tableau[10]= "4448888888888"; //3
  • tableau[11]= "0000000000000";
  • tableau[12]= "AAAAAAAAAAAAA"; //13
  • tableau[13]= "0000000000000";
  • tableau[14]= "8888888888AAA"; //3
  • nb_brikk = 64;
  • break;
  • case 4:
  • tableau[0] = "05A2940375A20";
  • tableau[1] = "0A2941075A290";
  • tableau[2] = "02941305A2940";
  • tableau[3] = "0941370A29410";
  • tableau[4] = "0413750294130";
  • tableau[5] = "01375A0941370";
  • tableau[6] = "0375A20413750";
  • tableau[7] = "075A2901375A0";
  • tableau[8] = "05A2940375A20";
  • tableau[9] = "0A2941075A290";
  • tableau[10]= "02941305A2940";
  • tableau[11]= "0941370A29410";
  • tableau[12]= "0413750294130";
  • tableau[13]= "01375A0941370";
  • tableau[14]= "0375A20413750";
  • nb_brikk = 150;
  • break;
  • case 5:
  • tableau[0] = "0003000003000"; //2
  • tableau[1] = "0003000003000"; //2
  • tableau[2] = "0000300030000"; //2
  • tableau[3] = "0000300030000"; //2
  • tableau[4] = "0009999999000"; //7
  • tableau[5] = "0009999999000"; //7
  • tableau[6] = "0099699969900"; //9
  • tableau[7] = "0099699969900"; //9
  • tableau[8] = "0999999999990"; //11
  • tableau[9] = "0999999999990"; //11
  • tableau[10]= "0909999999090"; //9
  • tableau[11]= "0909000009090"; //4
  • tableau[12]= "0909000009090"; //4
  • tableau[13]= "0000990990000"; //4
  • tableau[14]= "0000990990000"; //4
  • nb_brikk = 87;
  • break;
  • case 6:
  • tableau[0] = "406020A020604"; //7
  • tableau[1] = "406020A020604"; //7
  • tableau[2] = "406020A020604"; //7
  • tableau[3] = "406020A020604"; //7
  • tableau[4] = "406020A020604"; //7
  • tableau[5] = "4085858585804"; //6
  • tableau[6] = "406020A020604"; //7
  • tableau[7] = "406020A020604"; //7
  • tableau[8] = "406020A020604"; //7
  • tableau[9] = "406020A020604"; //7
  • tableau[10]= "5050805080505"; //5
  • tableau[11]= "406020A020604"; //7
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 81;
  • break;
  • case 7:
  • tableau[0] = "0000033100000"; //3
  • tableau[1] = "0000331140000"; //5
  • tableau[2] = "0003311446000"; //7
  • tableau[3] = "0003114466000"; //7
  • tableau[4] = "0031144662200"; //9
  • tableau[5] = "0011446622A00"; //9
  • tableau[6] = "001446622AA00"; //9
  • tableau[7] = "00446622AA500"; //9
  • tableau[8] = "0046622AA5500"; //9
  • tableau[9] = "006622AA55700"; //9
  • tableau[10]= "00022AA557000"; //7
  • tableau[11]= "0002AA5577000"; //7
  • tableau[12]= "0000A55770000"; //5
  • tableau[13]= "0000057700000"; //3
  • tableau[14]= "0000000000000";
  • nb_brikk = 98;
  • break;
  • case 8:
  • tableau[0] = "0008080808000";
  • tableau[1] = "0800000000080";
  • tableau[2] = "0880800080880";
  • tableau[3] = "0000007000000";
  • tableau[4] = "0800085800080";
  • tableau[5] = "000800A008000";
  • tableau[6] = "0000002000000";
  • tableau[7] = "0008006008000";
  • tableau[8] = "0800084800080";
  • tableau[9] = "0000001000000";
  • tableau[10]= "0880800080880";
  • tableau[11]= "0800000000080";
  • tableau[12]= "0008080808000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 7;
  • break;
  • case 9:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0808000008080";
  • tableau[2] = "0828000008280";
  • tableau[3] = "08A8000008A80";
  • tableau[4] = "0888000008880";
  • tableau[5] = "0000000000000";
  • tableau[6] = "0000177730000";
  • tableau[7] = "0000155530000";
  • tableau[8] = "00001AAA30000";
  • tableau[9] = "0000122230000";
  • tableau[10]= "0000166630000";
  • tableau[11]= "0000144430000";
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 34;
  • break;
  • case 10:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0800000000000";
  • tableau[2] = "0800000000000";
  • tableau[3] = "0800000400000";
  • tableau[4] = "0800004A40000";
  • tableau[5] = "080004A7A4000";
  • tableau[6] = "08004A7A7A400";
  • tableau[7] = "0804A7A9A7A40";
  • tableau[8] = "08004A7A7A400";
  • tableau[9] = "080004A7A4000";
  • tableau[10]= "0800004A40000";
  • tableau[11]= "0800000400000";
  • tableau[12]= "0800000000000";
  • tableau[13]= "0800000000000";
  • tableau[14]= "0888888888888";
  • nb_brikk = 41;
  • break;
  • case 11:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0999999999990"; //11
  • tableau[2] = "0900000000090"; //2
  • tableau[3] = "0909999999090"; //9
  • tableau[4] = "0909000009090"; //4
  • tableau[5] = "0909099909090"; //7
  • tableau[6] = "0909090909090"; //6
  • tableau[7] = "0909099909090"; //7
  • tableau[8] = "0909000009090"; //4
  • tableau[9] = "0909999999090"; //9
  • tableau[10]= "0900000000090"; //2
  • tableau[11]= "0999999999990"; //11
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 72;
  • break;
  • case 12:
  • tableau[0] = "7000000000000";
  • tableau[1] = "8888888888800";
  • tableau[2] = "0000800000810";
  • tableau[3] = "0000800000800";
  • tableau[4] = "0870800800800";
  • tableau[5] = "0800820800800";
  • tableau[6] = "0800800800800";
  • tableau[7] = "0805800840800";
  • tableau[8] = "0800800800800";
  • tableau[9] = "0800806800800";
  • tableau[10]= "0800800800800";
  • tableau[11]= "08A0000800000";
  • tableau[12]= "0800000800003";
  • tableau[13]= "0888888888888";
  • tableau[14]= "0000000000000";
  • nb_brikk = 9;
  • break;
  • case 13:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0333077703330";
  • tableau[2] = "0111055501110";
  • tableau[3] = "04440AAA04440";
  • tableau[4] = "0666022206660";
  • tableau[5] = "0222066602220";
  • tableau[6] = "0AAA04440AAA0";
  • tableau[7] = "0555011105550";
  • tableau[8] = "0777033307770";
  • tableau[9] = "0000000000000";
  • tableau[10]= "0000000000000";
  • tableau[11]= "0000000000000";
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 72;
  • break;
  • case 14:
  • tableau[0] = "0000000000000";
  • tableau[1] = "4444444444444";
  • tableau[2] = "8000000000008";
  • tableau[3] = "4444444444444";
  • tableau[4] = "0000000000000";
  • tableau[5] = "5999999999995";
  • tableau[6] = "8000000000008";
  • tableau[7] = "7777777777777";
  • tableau[8] = "0000000000000";
  • tableau[9] = "A99999999999A";
  • tableau[10]= "8000000000008";
  • tableau[11]= "6666666666666";
  • tableau[12]= "0000000000000";
  • tableau[13]= "6666666666666";
  • tableau[14]= "8000000000008";
  • nb_brikk = 91;
  • break;
  • case 15:
  • tableau[0] = "0000000000000";
  • tableau[1] = "A78AAAAAAA87A";
  • tableau[2] = "A738AAAAA827A";
  • tableau[3] = "A7338AAA8227A";
  • tableau[4] = "A73338782227A";
  • tableau[5] = "A73333722227A";
  • tableau[6] = "A73333722227A";
  • tableau[7] = "A73333722227A";
  • tableau[8] = "A93333722229A";
  • tableau[9] = "AA933372229AA";
  • tableau[10]= "AAA9337229AAA";
  • tableau[11]= "AAAA93729AAAA";
  • tableau[12]= "AAAAA979AAAAA";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 148;
  • break;
  • case 16:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0000008000000";
  • tableau[2] = "0000770770000"; //4
  • tableau[3] = "0077008007700"; //4
  • tableau[4] = "7700550550077"; //8
  • tableau[5] = "0055008005500"; //4
  • tableau[6] = "5500330330055"; //8
  • tableau[7] = "0033008003300"; //4
  • tableau[8] = "3300220220033"; //8
  • tableau[9] = "0022008002200"; //4
  • tableau[10]= "2200660660022"; //8
  • tableau[11]= "0066008006600"; //4
  • tableau[12]= "6600440440066"; //8
  • tableau[13]= "0044000004400"; //4
  • tableau[14]= "4400000000044"; //4
  • nb_brikk = 72;
  • break;
  • case 17:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0000009000000"; //1
  • tableau[2] = "0004449222000"; //7
  • tableau[3] = "0044477722200"; //9
  • tableau[4] = "0044777772200"; //9
  • tableau[5] = "0444777772220"; //11
  • tableau[6] = "0444777772220"; //11
  • tableau[7] = "0444777772220"; //11
  • tableau[8] = "0900909090090"; //5
  • tableau[9] = "0000009000000"; //1
  • tableau[10]= "0000009000000"; //1
  • tableau[11]= "0000009000000"; //1
  • tableau[12]= "0000808000000";
  • tableau[13]= "0000888000000";
  • tableau[14]= "0000080000000";
  • nb_brikk = 67;
  • break;
  • case 18:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0000000000000";
  • tableau[2] = "5083333333805"; //9
  • tableau[3] = "5088333338805"; //7
  • tableau[4] = "5080833380805"; //5
  • tableau[5] = "50801838A0805"; //5
  • tableau[6] = "50801090A0805"; //5
  • tableau[7] = "50801020A0805"; //5
  • tableau[8] = "50801020A0805"; //5
  • tableau[9] = "50801020A0805"; //5
  • tableau[10]= "50801020A0805"; //5
  • tableau[11]= "58881020A8885"; //5
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 56;
  • break;
  • case 19:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0088888888800";
  • tableau[2] = "0023418143200"; //8
  • tableau[3] = "0023418143200"; //8
  • tableau[4] = "0023418143200"; //8
  • tableau[5] = "0023413143200"; //9
  • tableau[6] = "0023418143200"; //8
  • tableau[7] = "0023418143200"; //8
  • tableau[8] = "0023418143200"; //8
  • tableau[9] = "0088888888800";
  • tableau[10]= "0000000000000";
  • tableau[11]= "0000000000000";
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 57;
  • break;
  • case 20:
  • tableau[0] = "87858A8283848"; //6
  • tableau[1] = "8189898989838"; //6
  • tableau[2] = "0000000000000";
  • tableau[3] = "8180808080808";
  • tableau[4] = "8081808080808";
  • tableau[5] = "8080818080808";
  • tableau[6] = "8080808180808";
  • tableau[7] = "8080808081808";
  • tableau[8] = "0000000000010";
  • tableau[9] = "0080808081800";
  • tableau[10]= "0080808180800";
  • tableau[11]= "0080818080800";
  • tableau[12]= "0001808080000";
  • tableau[13]= "0100008000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 23;
  • break;
  • case 21:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0855555555580";
  • tableau[2] = "0800000000080";
  • tableau[3] = "0808888888080";
  • tableau[4] = "0808000008080";
  • tableau[5] = "0808000008080";
  • tableau[6] = "0808066608080";
  • tableau[7] = "0808022208080";
  • tableau[8] = "0808044408080";
  • tableau[9] = "0808077708080";
  • tableau[10]= "0808000008080";
  • tableau[11]= "0808AAAAA8080";
  • tableau[12]= "0800000000080";
  • tableau[13]= "0888888888880";
  • tableau[14]= "0000000000000";
  • nb_brikk = 26;
  • break;
  • case 22:
  • tableau[0] = "0000000000000";
  • tableau[1] = "3333333333333"; //13
  • tableau[2] = "3333333333333"; //13
  • tableau[3] = "0000000000000";
  • tableau[4] = "6680866680866";//7
  • tableau[5] = "6680866680866";//7
  • tableau[6] = "6680866680866";//7
  • tableau[7] = "0000000000000";
  • tableau[8] = "7777777777777";//13
  • tableau[9] = "7777777777777";//13
  • tableau[10]= "0000000000000";
  • tableau[11]= "0000000000000";
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 73;
  • break;
  • case 23:
  • tableau[0] = "AAAAAAAAAAAAA"; //13
  • tableau[1] = "0000000000000";
  • tableau[2] = "0099909990999";
  • tableau[3] = "0092909290929";
  • tableau[4] = "0099909990999";
  • tableau[5] = "0000000000000";
  • tableau[6] = "0999099909990";
  • tableau[7] = "0969096909690";
  • tableau[8] = "0999099909990";
  • tableau[9] = "0000000000000";
  • tableau[10]= "9990999099900";
  • tableau[11]= "9490949094900";
  • tableau[12]= "9990999099900";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 94;
  • break;
  • case 24:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0000000000000";
  • tableau[2] = "0000000000000";
  • tableau[3] = "0000077700000"; //3
  • tableau[4] = "0000077700000"; //3
  • tableau[5] = "0000777770000"; //5
  • tableau[6] = "0000747470000"; //5
  • tableau[7] = "0007447447000"; //7
  • tableau[8] = "0004444444000"; //7
  • tableau[9] = "0044444444400"; //9
  • tableau[10]= "0044444444400"; //9
  • tableau[11]= "0444444444440"; //11
  • tableau[12]= "4444444444444"; //13
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 72;
  • break;
  • case 25:
  • tableau[0] = "0000000000000";
  • tableau[1] = "6666666666666"; //13
  • tableau[2] = "2222222222222"; //13
  • tableau[3] = "4444444444444"; //13
  • tableau[4] = "8888899988888"; //3
  • tableau[5] = "8666800084448"; //6
  • tableau[6] = "8666800084448"; //6
  • tableau[7] = "8000000000008";
  • tableau[8] = "8000000000008";
  • tableau[9] = "8000822280008"; //3
  • tableau[10]= "8000822280008"; //3
  • tableau[11]= "8999888889998"; //6
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 66;
  • break;
  • case 27:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0000000000000";
  • tableau[2] = "0000000000000";
  • tableau[3] = "0000000000000";
  • tableau[4] = "0000000000000";
  • tableau[5] = "0000000000000";
  • tableau[6] = "9999999999999";
  • tableau[7] = "3333333333333";
  • tableau[8] = "9999999999999";
  • tableau[9] = "0000000000000";
  • tableau[10]= "9999999999999";
  • tableau[11]= "6666666666666";
  • tableau[12]= "9999999999999";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 78;
  • break;
  • case 26:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0089998000000";
  • tableau[2] = "0800000800000";
  • tableau[3] = "800AAA0080000";
  • tableau[4] = "8022222080000";
  • tableau[5] = "8044444080000";
  • tableau[6] = "8001110080000";
  • tableau[7] = "0800000800000";
  • tableau[8] = "0088888000000";
  • tableau[9] = "0000000000000";
  • tableau[10]= "0000000000000";
  • tableau[11]= "0000000000000";
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 19;
  • break;
  • case 28:
  • tableau[0] = "4444444444444";//13
  • tableau[1] = "4888818188884";//4
  • tableau[2] = "4800000000084";//2
  • tableau[3] = "4810000000184";//4
  • tableau[4] = "4811000001184";//6
  • tableau[5] = "4811100011184";//8
  • tableau[6] = "0481110111840";//8
  • tableau[7] = "0048111118400";//7
  • tableau[8] = "0004811184000";//5
  • tableau[9] = "0000481840000";//3
  • tableau[10]= "0000041400000";//3
  • tableau[11]= "0000004000000";//1
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 64;
  • break;
  • case 29:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0000000000000";
  • tableau[2] = "3333380833333";
  • tableau[3] = "1111180811111";
  • tableau[4] = "8878880888788";
  • tableau[5] = "4444480844444";
  • tableau[6] = "6666680866666";
  • tableau[7] = "2222280822222";
  • tableau[8] = "9979980899799";
  • tableau[9] = "AAAAA808AAAAA";
  • tableau[10]= "5555580855555";
  • tableau[11]= "7777780877777";
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 92;
  • break;
  • case 30:
  • tableau[0] = "3100000000000"; //2
  • tableau[1] = "3146000000000"; //4
  • tableau[2] = "31462A0000000"; //6
  • tableau[3] = "31462A5700000"; //8
  • tableau[4] = "31462A5731000"; //10
  • tableau[5] = "91462A5731460"; //12
  • tableau[6] = "08962A5731462"; //11
  • tableau[7] = "00089A5731462"; //9
  • tableau[8] = "0000089731462"; //7
  • tableau[9] = "0000000891462"; //5
  • tableau[10]= "0000000008962"; //3
  • tableau[11]= "0000000000089"; //1
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 78;
  • break;
  • case 32:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0080808080800";
  • tableau[2] = "0080808080800";
  • tableau[3] = "0080808082200"; //2
  • tableau[4] = "0080808080800";
  • tableau[5] = "0080808666600"; //4
  • tableau[6] = "0080808080800";
  • tableau[7] = "0080844444400"; //6
  • tableau[8] = "0080808080800";
  • tableau[9] = "0081111111100"; //8
  • tableau[10]= "0080808080800";
  • tableau[11]= "0033333333300"; //9
  • tableau[12]= "0099999999900"; //9
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 38;
  • break;
  • case 31:
  • tableau[0] = "2060401030705"; //7
  • tableau[1] = "9090909090909"; //7
  • tableau[2] = "0401020705040"; //6
  • tableau[3] = "0909090909090"; //6
  • tableau[4] = "7020604010307"; //7
  • tableau[5] = "9090909090909"; //7
  • tableau[6] = "0104060207050"; //6
  • tableau[7] = "0909090909090"; //6
  • tableau[8] = "5070206040103"; //7
  • tableau[9] = "9090909090909"; //7
  • tableau[10]= "0301040602070"; //6
  • tableau[11]= "0909090909090"; //6
  • tableau[12]= "7050702060401"; //7
  • tableau[13]= "9090909090909"; //7
  • tableau[14]= "0000000000000";
  • nb_brikk = 92;
  • break;
  • default:
  • tableau[0] = "0000000000000";
  • tableau[1] = "0000000000000";
  • tableau[2] = "0000000000000";
  • tableau[3] = "0000000000000";
  • tableau[4] = "0000000000000";
  • tableau[5] = "0000000000000";
  • tableau[6] = "0000000000000";
  • tableau[7] = "0000000000000";
  • tableau[8] = "0000000000000";
  • tableau[9] = "0000000000000";
  • tableau[10]= "0000000000000";
  • tableau[11]= "0000000000000";
  • tableau[12]= "0000000000000";
  • tableau[13]= "0000000000000";
  • tableau[14]= "0000000000000";
  • nb_brikk = 0;
  • break;
  • } //fin du switch;
  • char c;
  • for (a=0;a<h;a++)
  • {
  • for (b=0;b<l;b++)
  • {
  • c = tableau[a].charAt(b);
  • Briques[a][b] = getImage(getDocumentBase(),"b" + c + ".gif");
  • prepareImage(Briques[a][b], this);
  • switch(c)
  • {
  • case '0':Nb_Coups[a][b] = 0; break;
  • case '1':Nb_Coups[a][b] = 1; break;
  • case '2':Nb_Coups[a][b] = 1; break;
  • case '3':Nb_Coups[a][b] = 1; break;
  • case '4':Nb_Coups[a][b] = 1; break;
  • case '5':Nb_Coups[a][b] = 1; break;
  • case '6':Nb_Coups[a][b] = 1; break;
  • case '7':Nb_Coups[a][b] = 1; break;
  • case '8':Nb_Coups[a][b] = 65535; break;
  • case '9':Nb_Coups[a][b] = 2; break;
  • case 'A':Nb_Coups[a][b] = 1; break;
  • }
  • }
  • }
  • repaint();
  • } // find de charger niveau
  • //=========================================================================================\\
  • //gestion de la souris
  • public void mouseClicked( MouseEvent m ) {}
  • public void mousePressed( MouseEvent m )
  • {
  • if ( niveau == 0 )
  • {
  • niveau=1;
  • ChargerNiveau(niveau);
  • repaint();
  • Score = 0;
  • }
  • else if ( vie != 0 ) { est_lance = true; }
  • else //Fin de la partie
  • {
  • vie = 4;
  • niveau=1;
  • Score = 0;
  • ChargerNiveau(niveau);
  • repaint();
  • }
  • }
  • public void mouseReleased( MouseEvent m ) {}
  • public void mouseEntered( MouseEvent m ){setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));}
  • public void mouseExited( MouseEvent m ) {}
  • // Gestion des mouvements de la souris
  • public void mouseDragged(MouseEvent e) {}
  • public void mouseMoved(MouseEvent e)
  • {
  • position_raquette =(int) e.getX() - raquette.getWidth(this) / 2;
  • if (position_raquette < 15) { position_raquette = 15; }
  • else if (position_raquette > (535 - raquette.getWidth(this))) { position_raquette = 535 - raquette.getWidth(this);}
  • if (( ! est_lance) && ( ! NoOneCanCheatLikeIDo))
  • {
  • if ( position_balle_x > (position_raquette + (raquette.getWidth(this) - 5) ))
  • { position_balle_x = position_raquette + raquette.getWidth(this) -5; }
  • else if ( position_balle_x < (position_raquette + 5))
  • { position_balle_x = position_raquette + 5;}
  • position_balle_x = position_raquette + delta_x;
  • position_balle_y = getSize().height - pos_init_balle;
  • }
  • else if (NoOneCanCheatLikeIDo)
  • {
  • position_balle_x = e.getX() -10;
  • position_balle_y = e.getY() -10;
  • }
  • repaint();
  • }
  • //=========================================================================================\\
  • //gestion du clavier
  • public void keyPressed( KeyEvent k )
  • {
  • int kc;
  • if (niveau != 0)
  • {
  • kc = k.getKeyCode();
  • switch(kc)
  • {
  • case KeyEvent.VK_PAGE_UP: niveau++; if (niveau > max_niv) { niveau = 1; } ChargerNiveau(niveau); break;
  • case KeyEvent.VK_PAGE_DOWN: niveau--; if (niveau < 1 ) { niveau = max_niv; } ChargerNiveau(niveau); break;
  • case KeyEvent.VK_LEFT: position_raquette = position_raquette - pas ; repaint(); break; //BOF
  • case KeyEvent.VK_RIGHT: position_raquette = position_raquette + pas ; repaint(); break; //BOF
  • case KeyEvent.VK_ESCAPE: est_lance = false; delta_x = 40; repaint(); dx = Math.abs(dx); dy = Math.abs(dy) * -1; break;
  • case KeyEvent.VK_L: Opt_X = 260; Opt_Y = 60; Opt_Num = 0; break;
  • case KeyEvent.VK_N: Opt_X = 260; Opt_Y = 60; Opt_Num = 1; break;
  • case KeyEvent.VK_V: Opt_X = 260; Opt_Y = 60; Opt_Num = 3; break;
  • case KeyEvent.VK_C: Opt_X = 260; Opt_Y = 60; Opt_Num = 2; break;
  • case KeyEvent.VK_X: if (NoOneCanCheatLikeIDo) {NoOneCanCheatLikeIDo = false;} else {NoOneCanCheatLikeIDo = true;} est_lance = true; break;
  • }
  • repaint();
  • }
  • }
  • public void keyReleased( KeyEvent k ) {}
  • public void keyTyped( KeyEvent k ) {}
  • //=========================================================================================\\
  • //dessiner
  • public void paint(Graphics g)
  • {
  • int a,b;
  • char c;
  • //=============>Dessiner le fond
  • g.drawImage(fond,0,0,this);
  • if ( niveau != 0 )
  • {
  • //=============>Dessiner les vies
  • for(a = 0;a < vie-1; a++) { g.drawImage(vies[a], (a*52) + 20 , getSize().height -20, this); }
  • //=============>Dessiner la raquette
  • g.drawImage(raquette, position_raquette, getSize().height - 40, this);
  • fin_niveau = true;
  • //=============>Dessiner les briques
  • for(a=0;a<h;a++){for(b=0;b<l;b++)
  • {
  • if ( Nb_Coups[a][b] > 0)
  • {
  • g.drawImage(Briques[a][b], 15 + b*40, 35 + a*20, this);
  • if ( nb_brikk != 0 ) { fin_niveau = false; }
  • } //Fin if
  • }} //Fin des FOR
  • //=============>Dessiner la balle
  • if (vie != 0)
  • {
  • g.drawImage(balle, position_balle_x, position_balle_y, this);
  • if (fin_niveau)
  • {
  • niveau++;
  • if (niveau > max_niv) { niveau = 1; }
  • ChargerNiveau(niveau);
  • est_lance = false;
  • }//fin fin_niveau;
  • }
  • else
  • //=============>Dessiner FIN DE LA PARTIE
  • {
  • g.setColor(Color.white);
  • g.drawImage(gameover,0,150,this);
  • } //Fin du else
  • //=============>Dessiner le Score
  • String s = new String();
  • s = String.valueOf(Score);
  • for (a = 0; a <= s.length()-1 ; a++)
  • {
  • b = (int) s.charAt(a)-48;
  • g.drawImage(Num_Score[b], 20 + (a*16), 5, this);
  • int r,t;
  • for (r = 0; r < h ; r++) { for(t = 0; t < l; t++)
  • {
  • if ( flash[r][t] )
  • {
  • Briques[r][t] = getImage(getDocumentBase(), "B8.gif");
  • prepareImage(Briques[r][t], this);
  • flash[r][t] = false;
  • }
  • }}//Fin du For r
  • } //Fin du for a
  • //=============>Dessiner les options;
  • if ( Opt_X != 0 )
  • {
  • g.drawImage(Opt[Opt_Num],Opt_X,Opt_Y,this);
  • Opt_Y++;
  • if ( Opt_Y > 415 ) { Opt_X = 0; Opt_Y = 0; }
  • }
  • }//Fin du If niveau
  • else
  • {
  • g.drawImage(raquette,640,480,this);
  • raquette = getImage(getDocumentBase(), "Rakkkkette.gif");
  • g.drawImage(raquette,640,480,this);
  • raquette = getImage(getDocumentBase(), "RaKette.gif");
  • }
  • }//Fin du paint
  • //=========================================================================================\\
  • //updtater
  • public void update(Graphics g)
  • {
  • if (offScreen == null) { offScreen = createImage(getSize().width, getSize().height); }
  • Graphics offScr = offScreen.getGraphics();
  • paint(offScr);
  • g.drawImage(offScreen,0,0,this);
  • }
  • //=========================================================================================\\
  • //Initialisation
  • public void init()
  • {
  • int a;
  • addMouseListener(this);
  • addKeyListener(this);
  • addMouseMotionListener(this);
  • jouer = new Thread(this);
  • jouer.start();
  • l = 13;
  • h = 15;
  • Score = 0;
  • dx = 2;
  • dy = -2;
  • niveau = 0;
  • max_niv = 32;
  • pas = 20;
  • vie = 4;
  • Opt_X = 0;
  • Opt_Y = 0;
  • NoOneCanCheatLikeIDo = false;
  • fond = getImage(getDocumentBase(), "apanoid.jpg");
  • raquette = getImage(getDocumentBase(), "raKette.gif");
  • balle = getImage(getDocumentBase(), "balle.gif");
  • gameover = getImage(getDocumentBase(), "gameover.jpg");
  • Opt[0] = getImage(getDocumentBase(), "Opt_L.jpg");
  • Opt[1] = getImage(getDocumentBase(), "Opt_N.jpg");
  • Opt[2] = getImage(getDocumentBase(), "Opt_C.jpg");
  • Opt[3] = getImage(getDocumentBase(), "Opt_U.jpg");
  • for (a=0; a<4; a++) { prepareImage(Opt[a], this); }
  • prepareImage(fond, this);
  • prepareImage(raquette, this);
  • prepareImage(balle, this);
  • prepareImage(gameover, this);
  • for (a = 0; a < 10 ; a++) { vies[a] = getImage(getDocumentBase(), "vie.gif"); prepareImage(vies[a], this); }
  • est_lance = false;
  • for (a = 0; a < 10 ; a++) { Num_Score[a] = getImage(getDocumentBase(), String.valueOf(a+48) + ".JPG"); prepareImage(Num_Score[a], this);}
  • }
  • //=========================================================================================\\
  • public void AlerteKollision()
  • {
  • int a,b,u,v,cpt;
  • int m,n,w;
  • int d,e,f,g;
  • char c;
  • for (cpt=0;cpt<4;cpt++)
  • {
  • switch(cpt)
  • {
  • case 0:u = position_balle_x+10; v = position_balle_y; break;
  • case 1:u = position_balle_x; v = position_balle_y +10; break;
  • case 2:u = position_balle_x +20; v = position_balle_y +10; break;
  • default:u = position_balle_x +10; v = position_balle_y+20 ; break;
  • }
  • //=====>Tout d'abord, les briques
  • for(a=0;a<h;a++)
  • {
  • for(b=0;b<l;b++)
  • {
  • c = tableau[a].charAt(b);
  • if (c != '0')
  • {
  • m = 15 + b*40; //position verticale
  • n = 35 + a*20; //position horizontale
  • if ( ((u+dx >= m) && (u+dx <= m+40)) &&
  • ((v+dy >= n) && (v+dy <= n+20)) &&
  • ((Nb_Coups[a][b] > 0 )) )
  • {
  • Nb_Coups[a][b]--;
  • switch (cpt)
  • {
  • case 0:dy=-dy;break;
  • case 1:dx=-dx;break;
  • case 2:dx=-dx;break;
  • case 3:dy=-dy;break;
  • }
  • if ( c == '9' ) { Briques[a][b] = getImage(getDocumentBase(), "B9_.gif"); }
  • if ( c == '8' ) { Briques[a][b] = getImage(getDocumentBase(), "B8_.gif"); flash[a][b] = true; }
  • if (Nb_Coups[a][b] == 0)
  • {
  • nb_brikk--;
  • if ( c == '9' ) { Score += 200; }
  • else {
  • Score += 100;
  • if (Opt_X == 0)
  • {
  • w = (int) (Math.random() * 50);
  • switch(w)
  • {
  • case 1: Opt_X = m; Opt_Y = n; Opt_Num = 1; break;
  • case 2: Opt_X = m; Opt_Y = n; Opt_Num = 3; break;
  • case 3: Opt_X = m; Opt_Y = n; Opt_Num = 0; break;
  • case 4: Opt_X = m; Opt_Y = n; Opt_Num = 0; break;
  • case 5: Opt_X = m; Opt_Y = n; Opt_Num = 0; break;
  • case 7: Opt_X = m; Opt_Y = n; Opt_Num = 2; break;
  • case 8: Opt_X = m; Opt_Y = n; Opt_Num = 2; break;
  • case 9: Opt_X = m; Opt_Y = n; Opt_Num = 2; break;
  • default: Opt_X = 0; Opt_Y = 0; break;
  • } //fin switch
  • } //fin si opt_x
  • }//fin Else
  • } //fin Nbcoups
  • } //fin if taper brique
  • }//fin if c != 0
  • }// fin du for b
  • }//fin du for a
  • //=====>Ensuite, la raquette
  • if ((u > position_raquette) &&
  • (u < position_raquette + raquette.getWidth(this)) &&
  • ( ( v > getSize().height - 35) &&
  • ( v < getSize().height - 32 )))
  • {
  • r_1 = (int) raquette.getWidth(this) / 4;
  • r_2 = (int) raquette.getWidth(this) / 2;
  • r_3 = (int) ( raquette.getWidth(this) / 4 ) * 3;
  • d = r_1 + position_raquette;
  • e = r_2 + position_raquette;
  • f = r_3 + position_raquette;
  • if (u < d ) { dy = -1; dx = -3; }
  • else if ((u >= d ) && ( u < e )) { dy = -2; dx = -2; }
  • else if ((u >= e ) && ( u < f )) { dy = -2; dx = 2; }
  • else if (u >= f ){ dy = -1; dx = 3; }
  • if (toujours_coller) { est_lance = false; }
  • delta_x = (position_balle_x - position_raquette) +10;
  • }
  • //=====>Enfin, les bords
  • if (u+dx+1 >= 535) dx=-dx;
  • if (u+dx-1 <= 15 ) dx=-dx;
  • if (v+dy-1 <= 26) dy=-dy;
  • if (v+dy+1 > 415 )
  • {
  • est_lance = false;
  • dx = Math.abs(dx);
  • dy = Math.abs(dy) * -1;
  • position_raquette = (int) (getSize().width / 2) - (raquette.getWidth(this) /2);
  • position_balle_x = (int) (getSize().width / 2 ) - 10;
  • position_balle_y = getSize().height - pos_init_balle;
  • toujours_coller = false;
  • raquette = getImage(getDocumentBase(), "Rakette.gif");
  • vie--;
  • Opt_X = 0; Opt_Y = 0;
  • delta_x = 40;
  • Score = 0;
  • repaint();
  • } //fin du if > 415
  • }
  • repaint();
  • } //fin alerte
  • //=========================================================================================\\
  • public void run()
  • {
  • while(true)
  • {
  • if (est_lance)
  • {
  • position_balle_x += dx;
  • position_balle_y += dy;
  • AlerteKollision();
  • }
  • if (Opt_X != 0)
  • {
  • if (((Opt_X+20 > position_raquette) && (Opt_X <= position_raquette + raquette.getWidth(this)) &&
  • ((Opt_Y+20 > getSize().height - 40) && (Opt_Y <= getSize().height - (40 - raquette.getHeight(this))))))
  • {
  • Opt_X = 0;
  • Opt_Y = 0;
  • switch(Opt_Num)
  • {
  • case 0:
  • toujours_coller = false;
  • est_lance = true;
  • raquette = getImage(getDocumentBase(), "Rakkkkette.gif");
  • if ((position_raquette + raquette.getWidth(this)) > 535) { position_raquette = 535-raquette.getWidth(this); }
  • break;
  • case 1:
  • niveau ++;
  • ChargerNiveau(niveau);
  • est_lance = false;
  • toujours_coller = false;
  • raquette = getImage(getDocumentBase(), "Rakette.gif");
  • break;
  • case 2:
  • toujours_coller = true;
  • raquette = getImage(getDocumentBase(), "Rakette.gif");
  • break;
  • case 3:
  • if (vie < 9)
  • {
  • vie++;
  • toujours_coller = false;
  • est_lance = true;
  • raquette = getImage(getDocumentBase(), "Rakette.gif");
  • }
  • break;
  • }
  • }
  • } //fin opt_x
  • repaint();
  • try {jouer.sleep(5);}
  • catch(InterruptedException e){};
  • }
  • }
  • } //fin grosse classe
import java.applet.Applet;
import java.awt.Image;
import java.awt.Graphics;
import java.awt.event.*;
import java.awt.Color;
import java.awt.Cursor;

public class ApaNoid extends Applet implements MouseListener, MouseMotionListener, KeyListener, Runnable
{
    //Déclarations
    Image fond;
    Image raquette;
    Image offScreen;
    Image balle;
    Image[][] Briques = new Image[15][13];
    Image[] vies = new Image[10];
    Image gameover;
    Image[] Num_Score = new Image[10];
    Image[] Opt = new Image[4];

    String[] tableau=new String[15];
  
    boolean[][] flash = new boolean[15][13];
    boolean fin_niveau;
    boolean est_lance;
    boolean toujours_coller;
 
    int[][] Nb_Coups = new int[15][13];
    int l,h;
    int niveau;
    int Score;
    int max_niv;
    int position_raquette;
    int position_balle_x, position_balle_y;
    int dx,dy;
    int pas;
    int pos_init_balle = 55;
    int vie;
    int r_1, r_2, r_3;
    int nb_brikk;   
    int Opt_X,Opt_Y;
    int Opt_Num;
    int delta_x;
    boolean NoOneCanCheatLikeIDo;

    Thread jouer;
    
    float[] sinus = new float[360];
    float[] cosinus = new float[360];
    
    //=========================================================================================\\            
    public void ChargerNiveau(int n)
    {
      toujours_coller = false;
      position_raquette = (int) (getSize().width / 2) - (raquette.getWidth(this) /2);
      delta_x = 40;
      Opt_X = 0;
      position_balle_x = position_raquette + delta_x;
      position_balle_y = getSize().height - pos_init_balle;
      raquette = getImage(getDocumentBase(), "Rakette.gif");
      int a,b;
      for (a = 0; a < h ; a++) { for (b = 0 ; b < l ; b++) { flash[a][b] = false; }}
      int f = n % 4;
    	fond = getImage(getDocumentBase(),"FOND" +String.valueOf(f) + ".JPG");
    	prepareImage(fond, this);
      switch(n)
      {         
          case 1:
              tableau[0] = "0000000000000";
              tableau[1] = "0000000000000";
              tableau[2] = "9999999999999";
              tableau[3] = "6666666666666";
              tableau[4] = "5555555555555";
              tableau[5] = "4444444444444";
              tableau[6] = "1111111111111";
              tableau[7] = "2222222222222";
              tableau[8] = "0000000000000";
              tableau[9] = "0000000000000";
              tableau[10]= "0000000000000";
              tableau[11]= "0000000000000";
              tableau[12] ="0000000000000";
              tableau[13] ="0000000000000";
              tableau[14] ="0000000000000";
              nb_brikk = 78;
              break;
          case 2: 
              tableau[0] = "7000000000000";
              tableau[1] = "7500000000000";
              tableau[2] = "75A0000000000";              
              tableau[3] = "75A2000000000";
              tableau[4] = "75A2600000000";
              tableau[5] = "75A2640000000";
              tableau[6] = "75A2641000000";
              tableau[7] = "75A2641300000";
              tableau[8] = "75A2641370000";
              tableau[9] = "75A2641375000";
              tableau[10]= "75A2641375A00";
              tableau[11]= "75A2641375A20";
              tableau[12]= "9999999999996";
              tableau[13]= "0000000000000";
              tableau[14]= "0000000000000";
              nb_brikk = 91;
              break;
          case 3:
              tableau[0] = "2222222222222"; //13
              tableau[1] = "0000000000000";
              tableau[2] = "7778888888888"; //3
              tableau[3] = "0000000000000";
              tableau[4] = "6666666666666"; //13
              tableau[5] = "0000000000000";
              tableau[6] = "8888888888777"; //3
              tableau[7] = "0000000000000";
              tableau[8] = "1111111111111"; //13
              tableau[9] = "0000000000000";
              tableau[10]= "4448888888888"; //3
              tableau[11]= "0000000000000";
              tableau[12]= "AAAAAAAAAAAAA"; //13
              tableau[13]= "0000000000000";
              tableau[14]= "8888888888AAA"; //3
              nb_brikk = 64;
              break;
          case 4:
              tableau[0] = "05A2940375A20";
              tableau[1] = "0A2941075A290";
              tableau[2] = "02941305A2940";
              tableau[3] = "0941370A29410";
              tableau[4] = "0413750294130";
              tableau[5] = "01375A0941370";
              tableau[6] = "0375A20413750";
              tableau[7] = "075A2901375A0";
              tableau[8] = "05A2940375A20";
              tableau[9] = "0A2941075A290";
              tableau[10]= "02941305A2940";
              tableau[11]= "0941370A29410";
              tableau[12]= "0413750294130";
              tableau[13]= "01375A0941370";
              tableau[14]= "0375A20413750";
              nb_brikk = 150;
              break;
        case 5:
              tableau[0] = "0003000003000"; //2
              tableau[1] = "0003000003000"; //2
              tableau[2] = "0000300030000"; //2
              tableau[3] = "0000300030000"; //2
              tableau[4] = "0009999999000"; //7
              tableau[5] = "0009999999000"; //7
              tableau[6] = "0099699969900"; //9
              tableau[7] = "0099699969900"; //9
              tableau[8] = "0999999999990"; //11
              tableau[9] = "0999999999990"; //11
              tableau[10]= "0909999999090"; //9
              tableau[11]= "0909000009090"; //4
              tableau[12]= "0909000009090"; //4
              tableau[13]= "0000990990000"; //4
              tableau[14]= "0000990990000"; //4
              nb_brikk = 87;
              break;
        case 6:
            tableau[0] = "406020A020604"; //7
            tableau[1] = "406020A020604"; //7
            tableau[2] = "406020A020604"; //7
            tableau[3] = "406020A020604"; //7
            tableau[4] = "406020A020604"; //7
            tableau[5] = "4085858585804"; //6
            tableau[6] = "406020A020604"; //7
            tableau[7] = "406020A020604"; //7
            tableau[8] = "406020A020604"; //7
            tableau[9] = "406020A020604"; //7
            tableau[10]= "5050805080505"; //5
            tableau[11]= "406020A020604"; //7
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 81;
            break;
        case 7:
            tableau[0] = "0000033100000"; //3
            tableau[1] = "0000331140000"; //5
            tableau[2] = "0003311446000"; //7
            tableau[3] = "0003114466000"; //7
            tableau[4] = "0031144662200"; //9
            tableau[5] = "0011446622A00"; //9
            tableau[6] = "001446622AA00"; //9
            tableau[7] = "00446622AA500"; //9
            tableau[8] = "0046622AA5500"; //9
            tableau[9] = "006622AA55700"; //9
            tableau[10]= "00022AA557000"; //7
            tableau[11]= "0002AA5577000"; //7
            tableau[12]= "0000A55770000"; //5
            tableau[13]= "0000057700000"; //3
            tableau[14]= "0000000000000";
            nb_brikk = 98;
            break;
        case 8:
            tableau[0] = "0008080808000";
            tableau[1] = "0800000000080";
            tableau[2] = "0880800080880";
            tableau[3] = "0000007000000";
            tableau[4] = "0800085800080";
            tableau[5] = "000800A008000";
            tableau[6] = "0000002000000";
            tableau[7] = "0008006008000";
            tableau[8] = "0800084800080";
            tableau[9] = "0000001000000";
            tableau[10]= "0880800080880";
            tableau[11]= "0800000000080";
            tableau[12]= "0008080808000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 7;
            break;
        case 9:
            tableau[0] = "0000000000000";
            tableau[1] = "0808000008080";
            tableau[2] = "0828000008280";
            tableau[3] = "08A8000008A80";
            tableau[4] = "0888000008880";
            tableau[5] = "0000000000000";
            tableau[6] = "0000177730000";
            tableau[7] = "0000155530000";
            tableau[8] = "00001AAA30000";
            tableau[9] = "0000122230000";
            tableau[10]= "0000166630000";
            tableau[11]= "0000144430000";
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 34;
            break;
       case 10:
            tableau[0] = "0000000000000";
            tableau[1] = "0800000000000";
            tableau[2] = "0800000000000";
            tableau[3] = "0800000400000";
            tableau[4] = "0800004A40000";
            tableau[5] = "080004A7A4000";
            tableau[6] = "08004A7A7A400";
            tableau[7] = "0804A7A9A7A40";
            tableau[8] = "08004A7A7A400";
            tableau[9] = "080004A7A4000";
            tableau[10]= "0800004A40000";
            tableau[11]= "0800000400000";
            tableau[12]= "0800000000000";
            tableau[13]= "0800000000000";
            tableau[14]= "0888888888888";
            nb_brikk = 41;
            break;
        case 11:
            tableau[0] = "0000000000000";
            tableau[1] = "0999999999990"; //11
            tableau[2] = "0900000000090"; //2
            tableau[3] = "0909999999090"; //9
            tableau[4] = "0909000009090"; //4
            tableau[5] = "0909099909090"; //7
            tableau[6] = "0909090909090"; //6
            tableau[7] = "0909099909090"; //7
            tableau[8] = "0909000009090"; //4
            tableau[9] = "0909999999090"; //9
            tableau[10]= "0900000000090"; //2
            tableau[11]= "0999999999990"; //11            
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 72;
            break;
        case 12:
            tableau[0] = "7000000000000";
            tableau[1] = "8888888888800";
            tableau[2] = "0000800000810";
            tableau[3] = "0000800000800";
            tableau[4] = "0870800800800";
            tableau[5] = "0800820800800";
            tableau[6] = "0800800800800";
            tableau[7] = "0805800840800";
            tableau[8] = "0800800800800";
            tableau[9] = "0800806800800";
            tableau[10]= "0800800800800";
            tableau[11]= "08A0000800000";
            tableau[12]= "0800000800003";
            tableau[13]= "0888888888888";
            tableau[14]= "0000000000000";
            nb_brikk = 9;
            break;
        case 13:
            tableau[0] = "0000000000000";
            tableau[1] = "0333077703330";
            tableau[2] = "0111055501110";
            tableau[3] = "04440AAA04440";
            tableau[4] = "0666022206660";
            tableau[5] = "0222066602220";
            tableau[6] = "0AAA04440AAA0";
            tableau[7] = "0555011105550";
            tableau[8] = "0777033307770";
            tableau[9] = "0000000000000";
            tableau[10]= "0000000000000";
            tableau[11]= "0000000000000";
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 72;
            break;
        case 14:
            tableau[0] = "0000000000000";
            tableau[1] = "4444444444444";
            tableau[2] = "8000000000008";
            tableau[3] = "4444444444444";
            tableau[4] = "0000000000000";
            tableau[5] = "5999999999995";
            tableau[6] = "8000000000008";
            tableau[7] = "7777777777777";
            tableau[8] = "0000000000000";
            tableau[9] = "A99999999999A";
            tableau[10]= "8000000000008";
            tableau[11]= "6666666666666";
            tableau[12]= "0000000000000";
            tableau[13]= "6666666666666";
            tableau[14]= "8000000000008";
            nb_brikk = 91;
            break;
        case 15:
            tableau[0] = "0000000000000";
            tableau[1] = "A78AAAAAAA87A";
            tableau[2] = "A738AAAAA827A";
            tableau[3] = "A7338AAA8227A";
            tableau[4] = "A73338782227A";
            tableau[5] = "A73333722227A";
            tableau[6] = "A73333722227A";
            tableau[7] = "A73333722227A";
            tableau[8] = "A93333722229A";
            tableau[9] = "AA933372229AA";
            tableau[10]= "AAA9337229AAA";
            tableau[11]= "AAAA93729AAAA";
            tableau[12]= "AAAAA979AAAAA";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 148;
            break;
        case 16:
            tableau[0] = "0000000000000";
            tableau[1] = "0000008000000";
            tableau[2] = "0000770770000"; //4
            tableau[3] = "0077008007700"; //4
            tableau[4] = "7700550550077"; //8
            tableau[5] = "0055008005500"; //4
            tableau[6] = "5500330330055"; //8
            tableau[7] = "0033008003300"; //4
            tableau[8] = "3300220220033"; //8
            tableau[9] = "0022008002200"; //4
            tableau[10]= "2200660660022"; //8
            tableau[11]= "0066008006600"; //4
            tableau[12]= "6600440440066"; //8
            tableau[13]= "0044000004400"; //4
            tableau[14]= "4400000000044"; //4
            nb_brikk = 72;
            break;
        case 17:
            tableau[0] = "0000000000000";
            tableau[1] = "0000009000000"; //1
            tableau[2] = "0004449222000"; //7
            tableau[3] = "0044477722200"; //9
            tableau[4] = "0044777772200"; //9
            tableau[5] = "0444777772220"; //11
            tableau[6] = "0444777772220"; //11
            tableau[7] = "0444777772220"; //11
            tableau[8] = "0900909090090"; //5
            tableau[9] = "0000009000000"; //1
            tableau[10]= "0000009000000"; //1
            tableau[11]= "0000009000000"; //1
            tableau[12]= "0000808000000";
            tableau[13]= "0000888000000";
            tableau[14]= "0000080000000";
            nb_brikk = 67;
            break;
        case 18:
            tableau[0] = "0000000000000";
            tableau[1] = "0000000000000";
            tableau[2] = "5083333333805"; //9
            tableau[3] = "5088333338805"; //7
            tableau[4] = "5080833380805"; //5
            tableau[5] = "50801838A0805"; //5
            tableau[6] = "50801090A0805"; //5
            tableau[7] = "50801020A0805"; //5
            tableau[8] = "50801020A0805"; //5
            tableau[9] = "50801020A0805"; //5
            tableau[10]= "50801020A0805"; //5
            tableau[11]= "58881020A8885"; //5
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 56;
            break;
        case 19:
            tableau[0] = "0000000000000";
            tableau[1] = "0088888888800";
            tableau[2] = "0023418143200"; //8
            tableau[3] = "0023418143200"; //8
            tableau[4] = "0023418143200"; //8
            tableau[5] = "0023413143200"; //9
            tableau[6] = "0023418143200"; //8
            tableau[7] = "0023418143200"; //8
            tableau[8] = "0023418143200"; //8
            tableau[9] = "0088888888800";
            tableau[10]= "0000000000000";
            tableau[11]= "0000000000000";
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 57;
            break;
        case 20:
            tableau[0] = "87858A8283848"; //6
            tableau[1] = "8189898989838"; //6
            tableau[2] = "0000000000000";
            tableau[3] = "8180808080808";
            tableau[4] = "8081808080808";
            tableau[5] = "8080818080808";
            tableau[6] = "8080808180808";
            tableau[7] = "8080808081808";
            tableau[8] = "0000000000010";
            tableau[9] = "0080808081800";
            tableau[10]= "0080808180800";
            tableau[11]= "0080818080800";
            tableau[12]= "0001808080000";
            tableau[13]= "0100008000000";
            tableau[14]= "0000000000000";
            nb_brikk = 23;
            break;
        case 21:
            tableau[0] = "0000000000000";
            tableau[1] = "0855555555580";
            tableau[2] = "0800000000080";
            tableau[3] = "0808888888080";
            tableau[4] = "0808000008080";
            tableau[5] = "0808000008080";
            tableau[6] = "0808066608080";
            tableau[7] = "0808022208080";
            tableau[8] = "0808044408080";
            tableau[9] = "0808077708080";
            tableau[10]= "0808000008080";
            tableau[11]= "0808AAAAA8080";
            tableau[12]= "0800000000080";
            tableau[13]= "0888888888880";
            tableau[14]= "0000000000000";
            nb_brikk = 26;
            break;
        case 22:
            tableau[0] = "0000000000000";
            tableau[1] = "3333333333333"; //13
            tableau[2] = "3333333333333"; //13
            tableau[3] = "0000000000000";
            tableau[4] = "6680866680866";//7
            tableau[5] = "6680866680866";//7
            tableau[6] = "6680866680866";//7
            tableau[7] = "0000000000000";
            tableau[8] = "7777777777777";//13
            tableau[9] = "7777777777777";//13
            tableau[10]= "0000000000000";
            tableau[11]= "0000000000000";
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 73;
            break;
        case 23:
            tableau[0] = "AAAAAAAAAAAAA"; //13
            tableau[1] = "0000000000000";
            tableau[2] = "0099909990999";
            tableau[3] = "0092909290929";
            tableau[4] = "0099909990999";
            tableau[5] = "0000000000000";
            tableau[6] = "0999099909990";
            tableau[7] = "0969096909690";
            tableau[8] = "0999099909990";
            tableau[9] = "0000000000000";
            tableau[10]= "9990999099900";
            tableau[11]= "9490949094900";
            tableau[12]= "9990999099900";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 94;
            break;
        case 24:
            tableau[0] = "0000000000000";
            tableau[1] = "0000000000000";
            tableau[2] = "0000000000000";
            tableau[3] = "0000077700000"; //3
            tableau[4] = "0000077700000"; //3
            tableau[5] = "0000777770000"; //5
            tableau[6] = "0000747470000"; //5
            tableau[7] = "0007447447000"; //7
            tableau[8] = "0004444444000"; //7
            tableau[9] = "0044444444400"; //9
            tableau[10]= "0044444444400"; //9
            tableau[11]= "0444444444440"; //11
            tableau[12]= "4444444444444"; //13
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 72;
            break;
        case 25:
            tableau[0] = "0000000000000";
            tableau[1] = "6666666666666"; //13
            tableau[2] = "2222222222222"; //13
            tableau[3] = "4444444444444"; //13
            tableau[4] = "8888899988888"; //3
            tableau[5] = "8666800084448"; //6
            tableau[6] = "8666800084448"; //6
            tableau[7] = "8000000000008";
            tableau[8] = "8000000000008";
            tableau[9] = "8000822280008"; //3
            tableau[10]= "8000822280008"; //3
            tableau[11]= "8999888889998"; //6
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 66;
            break;
        case 27:
            tableau[0] = "0000000000000";
            tableau[1] = "0000000000000";
            tableau[2] = "0000000000000";
            tableau[3] = "0000000000000";
            tableau[4] = "0000000000000";
            tableau[5] = "0000000000000";
            tableau[6] = "9999999999999";
            tableau[7] = "3333333333333";
            tableau[8] = "9999999999999";
            tableau[9] = "0000000000000";
            tableau[10]= "9999999999999";
            tableau[11]= "6666666666666";
            tableau[12]= "9999999999999";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 78;
            break;
        case 26:
            tableau[0] = "0000000000000";
            tableau[1] = "0089998000000";
            tableau[2] = "0800000800000";
            tableau[3] = "800AAA0080000";
            tableau[4] = "8022222080000";
            tableau[5] = "8044444080000";
            tableau[6] = "8001110080000";
            tableau[7] = "0800000800000";
            tableau[8] = "0088888000000";
            tableau[9] = "0000000000000";
            tableau[10]= "0000000000000";
            tableau[11]= "0000000000000";
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 19;
            break;
        case 28:
            tableau[0] = "4444444444444";//13
            tableau[1] = "4888818188884";//4
            tableau[2] = "4800000000084";//2
            tableau[3] = "4810000000184";//4
            tableau[4] = "4811000001184";//6
            tableau[5] = "4811100011184";//8
            tableau[6] = "0481110111840";//8
            tableau[7] = "0048111118400";//7
            tableau[8] = "0004811184000";//5
            tableau[9] = "0000481840000";//3
            tableau[10]= "0000041400000";//3
            tableau[11]= "0000004000000";//1
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 64;
            break;
        case 29:
            tableau[0] = "0000000000000";
            tableau[1] = "0000000000000";
            tableau[2] = "3333380833333";
            tableau[3] = "1111180811111";
            tableau[4] = "8878880888788";
            tableau[5] = "4444480844444";
            tableau[6] = "6666680866666";
            tableau[7] = "2222280822222";
            tableau[8] = "9979980899799";
            tableau[9] = "AAAAA808AAAAA";
            tableau[10]= "5555580855555";
            tableau[11]= "7777780877777";
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 92;
            break;
        case 30:
            tableau[0] = "3100000000000"; //2
            tableau[1] = "3146000000000"; //4
            tableau[2] = "31462A0000000"; //6
            tableau[3] = "31462A5700000"; //8
            tableau[4] = "31462A5731000"; //10
            tableau[5] = "91462A5731460"; //12
            tableau[6] = "08962A5731462"; //11
            tableau[7] = "00089A5731462"; //9
            tableau[8] = "0000089731462"; //7
            tableau[9] = "0000000891462"; //5
            tableau[10]= "0000000008962"; //3
            tableau[11]= "0000000000089"; //1
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 78;
            break;
        case 32:
            tableau[0] = "0000000000000";
            tableau[1] = "0080808080800";
            tableau[2] = "0080808080800";
            tableau[3] = "0080808082200"; //2
            tableau[4] = "0080808080800";
            tableau[5] = "0080808666600"; //4
            tableau[6] = "0080808080800";
            tableau[7] = "0080844444400"; //6
            tableau[8] = "0080808080800";
            tableau[9] = "0081111111100"; //8
            tableau[10]= "0080808080800";
            tableau[11]= "0033333333300"; //9
            tableau[12]= "0099999999900"; //9
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 38;
            break;
        case 31:
            tableau[0] = "2060401030705"; //7
            tableau[1] = "9090909090909"; //7
            tableau[2] = "0401020705040"; //6
            tableau[3] = "0909090909090"; //6
            tableau[4] = "7020604010307"; //7
            tableau[5] = "9090909090909"; //7
            tableau[6] = "0104060207050"; //6
            tableau[7] = "0909090909090"; //6
            tableau[8] = "5070206040103"; //7
            tableau[9] = "9090909090909"; //7
            tableau[10]= "0301040602070"; //6
            tableau[11]= "0909090909090"; //6
            tableau[12]= "7050702060401"; //7
            tableau[13]= "9090909090909"; //7
            tableau[14]= "0000000000000";
            nb_brikk = 92;
            break;
        default:
            tableau[0] = "0000000000000";
            tableau[1] = "0000000000000";
            tableau[2] = "0000000000000";
            tableau[3] = "0000000000000";
            tableau[4] = "0000000000000";
            tableau[5] = "0000000000000";
            tableau[6] = "0000000000000";
            tableau[7] = "0000000000000";
            tableau[8] = "0000000000000";
            tableau[9] = "0000000000000";
            tableau[10]= "0000000000000";
            tableau[11]= "0000000000000";
            tableau[12]= "0000000000000";
            tableau[13]= "0000000000000";
            tableau[14]= "0000000000000";
            nb_brikk = 0;
            break;
      } //fin du switch;
      char c;
      for (a=0;a<h;a++)
      {
          for (b=0;b<l;b++)
          {
            c = tableau[a].charAt(b);
            Briques[a][b] = getImage(getDocumentBase(),"b" + c + ".gif");
            prepareImage(Briques[a][b], this);
            switch(c)
            {
               case '0':Nb_Coups[a][b] = 0; break;
               case '1':Nb_Coups[a][b] = 1; break;
               case '2':Nb_Coups[a][b] = 1; break;
               case '3':Nb_Coups[a][b] = 1; break;
               case '4':Nb_Coups[a][b] = 1; break;
               case '5':Nb_Coups[a][b] = 1; break;
               case '6':Nb_Coups[a][b] = 1; break;
               case '7':Nb_Coups[a][b] = 1; break;
               case '8':Nb_Coups[a][b] = 65535; break;
               case '9':Nb_Coups[a][b] = 2; break;
               case 'A':Nb_Coups[a][b] = 1; break;
            }
         }
      }

      repaint();
    } // find de charger niveau
    //=========================================================================================\\    
    //gestion de la souris
    public void mouseClicked( MouseEvent m ) {}
    public void mousePressed( MouseEvent m ) 
    {
        if ( niveau == 0 )
        {
               niveau=1;
               ChargerNiveau(niveau);
               repaint();   
               Score = 0;             
        }
        else if ( vie != 0 ) { est_lance = true; }
        else //Fin de la partie
        { 
            vie = 4;
            niveau=1;
            Score = 0;
            ChargerNiveau(niveau);
            repaint(); 
        }
    }
    public void mouseReleased( MouseEvent m ) {}
    public void mouseEntered( MouseEvent m ){setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));}
    public void mouseExited( MouseEvent m ) {}
    // Gestion des mouvements de la souris
    public void mouseDragged(MouseEvent e) {}
    public void mouseMoved(MouseEvent e) 
    { 
        position_raquette =(int) e.getX() - raquette.getWidth(this) / 2; 
        if (position_raquette < 15) { position_raquette = 15; }
        else if (position_raquette > (535 - raquette.getWidth(this))) { position_raquette = 535 - raquette.getWidth(this);}
        if (( ! est_lance) && ( ! NoOneCanCheatLikeIDo))
        {
            if ( position_balle_x > (position_raquette + (raquette.getWidth(this) - 5) ))
            { position_balle_x = position_raquette + raquette.getWidth(this) -5; }
            else if ( position_balle_x < (position_raquette + 5))
            { position_balle_x = position_raquette + 5;}
            position_balle_x = position_raquette + delta_x;
            position_balle_y = getSize().height - pos_init_balle;
        }
        else if (NoOneCanCheatLikeIDo)
        { 
            position_balle_x = e.getX() -10;
            position_balle_y = e.getY() -10;
        }
        repaint();    
    }
    //=========================================================================================\\    
    //gestion du clavier
    public void keyPressed( KeyEvent k )
    {
        int kc;
        if (niveau != 0)
        {
            kc = k.getKeyCode();
            switch(kc)
            {
                case KeyEvent.VK_PAGE_UP:    niveau++; if (niveau > max_niv) { niveau = 1; } ChargerNiveau(niveau); break;
                case KeyEvent.VK_PAGE_DOWN:  niveau--; if (niveau < 1 ) { niveau = max_niv; } ChargerNiveau(niveau); break;
                case KeyEvent.VK_LEFT:       position_raquette = position_raquette - pas ; repaint(); break; //BOF
                case KeyEvent.VK_RIGHT:      position_raquette = position_raquette + pas ; repaint(); break; //BOF
                case KeyEvent.VK_ESCAPE:     est_lance = false; delta_x = 40; repaint(); dx = Math.abs(dx); dy = Math.abs(dy) * -1; break; 
                case KeyEvent.VK_L: Opt_X = 260; Opt_Y = 60; Opt_Num = 0; break;
                case KeyEvent.VK_N: Opt_X = 260; Opt_Y = 60; Opt_Num = 1; break;
                case KeyEvent.VK_V: Opt_X = 260; Opt_Y = 60; Opt_Num = 3; break;
                case KeyEvent.VK_C: Opt_X = 260; Opt_Y = 60; Opt_Num = 2; break;
                case KeyEvent.VK_X: if (NoOneCanCheatLikeIDo) {NoOneCanCheatLikeIDo = false;} else {NoOneCanCheatLikeIDo = true;} est_lance = true; break;
            }
            repaint();
        }
    
    }
    public void keyReleased( KeyEvent k ) {}
    public void keyTyped( KeyEvent k ) {}
    //=========================================================================================\\    
    //dessiner
    public void paint(Graphics g)
    {
        int a,b;    
        char c;
//=============>Dessiner le fond
        g.drawImage(fond,0,0,this);

        if ( niveau != 0 ) 
        {
//=============>Dessiner les vies
            for(a = 0;a < vie-1; a++) { g.drawImage(vies[a], (a*52) + 20 , getSize().height -20, this); }
//=============>Dessiner la raquette
            g.drawImage(raquette, position_raquette, getSize().height - 40, this);
            fin_niveau = true;
        
//=============>Dessiner les briques
            for(a=0;a<h;a++){for(b=0;b<l;b++)
            {
                    if ( Nb_Coups[a][b] > 0)
                    {
                        g.drawImage(Briques[a][b], 15 + b*40, 35 + a*20, this);
                        if ( nb_brikk != 0 ) { fin_niveau = false; }
                    } //Fin if
            }} //Fin des FOR
           
//=============>Dessiner la balle
           if (vie != 0) 
           {
               g.drawImage(balle, position_balle_x, position_balle_y, this);
               if (fin_niveau) 
               { 
                   niveau++; 
                   if (niveau > max_niv) { niveau = 1; }
                   ChargerNiveau(niveau);
                   est_lance = false;   
               }//fin fin_niveau;           
            } 
            else 
//=============>Dessiner FIN DE LA PARTIE
            {
               g.setColor(Color.white);
               g.drawImage(gameover,0,150,this);
            } //Fin du else 
//=============>Dessiner le Score
            String s = new String();
            s = String.valueOf(Score);
            for (a = 0; a <= s.length()-1 ; a++) 
            {         
                b = (int) s.charAt(a)-48;
                g.drawImage(Num_Score[b], 20 + (a*16), 5, this);
                int r,t;
                for (r = 0; r < h ; r++) { for(t = 0; t < l; t++) 
                {
                     if ( flash[r][t] )
                     {
                         Briques[r][t] = getImage(getDocumentBase(), "B8.gif");
                         prepareImage(Briques[r][t], this);
                         flash[r][t] = false;
                     }
               }}//Fin du For r
            } //Fin du for a
//=============>Dessiner les options;
        if ( Opt_X != 0 ) 
        {
            g.drawImage(Opt[Opt_Num],Opt_X,Opt_Y,this);
            Opt_Y++;
            if ( Opt_Y > 415 ) { Opt_X = 0; Opt_Y = 0; }
        }

        }//Fin du If niveau
        else
        {    
            g.drawImage(raquette,640,480,this);
            raquette = getImage(getDocumentBase(), "Rakkkkette.gif");
            g.drawImage(raquette,640,480,this);
            raquette = getImage(getDocumentBase(), "RaKette.gif");
        }
        
    }//Fin du paint
    //=========================================================================================\\    
    //updtater
    public void update(Graphics g)
    {
        if (offScreen == null)  { offScreen = createImage(getSize().width, getSize().height); }
        Graphics offScr = offScreen.getGraphics();
        paint(offScr);
        g.drawImage(offScreen,0,0,this);
    }           
    //=========================================================================================\\
    //Initialisation
    public void init()
    {
       int a;
       addMouseListener(this);
       addKeyListener(this);
       addMouseMotionListener(this);
       jouer = new Thread(this);
       jouer.start();
       l        = 13;
       h        = 15;
       Score    = 0;
       dx       = 2;
       dy       = -2;
       niveau   = 0;
       max_niv  = 32;
       pas      = 20;
       vie      = 4;
       Opt_X    = 0;
       Opt_Y    = 0;
       NoOneCanCheatLikeIDo = false;
       fond     = getImage(getDocumentBase(), "apanoid.jpg");
       raquette = getImage(getDocumentBase(), "raKette.gif");
       balle    = getImage(getDocumentBase(), "balle.gif");
       gameover = getImage(getDocumentBase(), "gameover.jpg");
       Opt[0]   = getImage(getDocumentBase(), "Opt_L.jpg");
       Opt[1]   = getImage(getDocumentBase(), "Opt_N.jpg");
       Opt[2]   = getImage(getDocumentBase(), "Opt_C.jpg");
       Opt[3]   = getImage(getDocumentBase(), "Opt_U.jpg");
       for (a=0; a<4; a++) { prepareImage(Opt[a], this); }
       prepareImage(fond, this);
       prepareImage(raquette, this);
       prepareImage(balle, this);
       prepareImage(gameover, this);
       for (a = 0; a < 10 ; a++) { vies[a] = getImage(getDocumentBase(), "vie.gif"); prepareImage(vies[a], this); }
       est_lance = false;       
       for (a = 0; a < 10 ; a++) { Num_Score[a] = getImage(getDocumentBase(), String.valueOf(a+48) + ".JPG"); prepareImage(Num_Score[a], this);}      
    }
    //=========================================================================================\\
    public void AlerteKollision()
    {
        int a,b,u,v,cpt;
        int m,n,w;
        int d,e,f,g;
        char c;
         
        for (cpt=0;cpt<4;cpt++)
        {
            switch(cpt)
            {
                case 0:u = position_balle_x+10; v = position_balle_y; break;
                case 1:u = position_balle_x; v = position_balle_y +10; break;
                case 2:u = position_balle_x +20; v = position_balle_y +10; break;
                default:u = position_balle_x +10; v = position_balle_y+20 ; break;
            }
            
            //=====>Tout d'abord, les briques
            for(a=0;a<h;a++)
            {
                for(b=0;b<l;b++) 
                {
                     c = tableau[a].charAt(b);
                     if (c != '0')
                    {
                         m = 15 + b*40; //position verticale
                         n = 35 + a*20; //position horizontale
                         if ( ((u+dx >= m) && (u+dx <= m+40)) &&
                              ((v+dy >= n) && (v+dy <= n+20)) && 
                              ((Nb_Coups[a][b] > 0 )) )
                             { 
                                 Nb_Coups[a][b]--;
                                 switch (cpt)
                                 {
                                     case 0:dy=-dy;break;
                                     case 1:dx=-dx;break;
                                     case 2:dx=-dx;break;
                                     case 3:dy=-dy;break;
                                 }
                                 if ( c == '9' ) { Briques[a][b] = getImage(getDocumentBase(), "B9_.gif"); }
                                 if ( c == '8' ) { Briques[a][b] = getImage(getDocumentBase(), "B8_.gif"); flash[a][b] = true; }
                                 if (Nb_Coups[a][b] == 0) 
                                 {
                                      nb_brikk--; 
                                      if ( c == '9' ) { Score += 200; }
                                      else { 
                                          Score += 100;
                                          if (Opt_X == 0)
                                          {
                                              w = (int) (Math.random() * 50);
                                              switch(w)
                                              {
                                                  case 1: Opt_X = m; Opt_Y = n; Opt_Num = 1; break;
                                                  case 2: Opt_X = m; Opt_Y = n; Opt_Num = 3; break;
                                                  case 3: Opt_X = m; Opt_Y = n; Opt_Num = 0; break;
                                                  case 4: Opt_X = m; Opt_Y = n; Opt_Num = 0; break;
                                                  case 5: Opt_X = m; Opt_Y = n; Opt_Num = 0; break;
                                                  case 7: Opt_X = m; Opt_Y = n; Opt_Num = 2; break;
                                                  case 8: Opt_X = m; Opt_Y = n; Opt_Num = 2; break;
                                                  case 9: Opt_X = m; Opt_Y = n; Opt_Num = 2; break;
                                                  default: Opt_X = 0; Opt_Y = 0; break;
                                              } //fin switch
                                          } //fin si opt_x
                                        }//fin Else
                                      } //fin Nbcoups
                             } //fin if taper brique
                    }//fin if c != 0
                 }// fin du for b
             }//fin du for a
             //=====>Ensuite, la raquette
             if ((u > position_raquette) && 
                 (u < position_raquette + raquette.getWidth(this)) && 
                 ( ( v > getSize().height - 35) && 
                 ( v < getSize().height - 32 )))
                 {
                    r_1 = (int) raquette.getWidth(this) / 4;
                    r_2 = (int) raquette.getWidth(this) / 2;
                    r_3 = (int) ( raquette.getWidth(this) / 4 ) * 3;

                    d = r_1 + position_raquette;
                    e = r_2 + position_raquette;
                    f = r_3 + position_raquette;
                    
                    if (u < d ) { dy = -1; dx = -3; }
                    else if ((u >= d ) && ( u < e )) { dy = -2; dx = -2; }
                    else if ((u >= e ) && ( u < f )) { dy = -2; dx = 2; }
                    else if (u >= f ){ dy = -1; dx = 3; }
                    if (toujours_coller) { est_lance = false; }
                    delta_x = (position_balle_x - position_raquette) +10;
                 }
             //=====>Enfin, les bords
             if (u+dx+1 >= 535) dx=-dx;
             if (u+dx-1 <= 15  ) dx=-dx;
        
             if  (v+dy-1 <= 26) dy=-dy;
             if (v+dy+1 > 415 ) 
             {
                  est_lance = false;
                  dx = Math.abs(dx); 
                  dy = Math.abs(dy) * -1;
                  position_raquette = (int) (getSize().width / 2) - (raquette.getWidth(this) /2);
                  position_balle_x = (int) (getSize().width / 2 ) - 10;
                  position_balle_y = getSize().height - pos_init_balle;
                  toujours_coller = false;
                  raquette = getImage(getDocumentBase(), "Rakette.gif");
                  vie--;
                  Opt_X = 0; Opt_Y = 0;
                  delta_x = 40;
                  Score = 0;
                  repaint();
              } //fin du if > 415
        } 
        
        
        
        repaint();
    } //fin alerte
    //=========================================================================================\\
    public void run()
    {
         
        while(true)
        {
            if (est_lance)
            {
                position_balle_x += dx;
                position_balle_y += dy;
                AlerteKollision();
            }
        if (Opt_X != 0)
        {
            if (((Opt_X+20 > position_raquette) && (Opt_X <= position_raquette + raquette.getWidth(this)) &&
                ((Opt_Y+20 > getSize().height - 40) && (Opt_Y <= getSize().height - (40 - raquette.getHeight(this))))))
            {
                Opt_X = 0;
                Opt_Y = 0;
                switch(Opt_Num)
                {
                    case 0: 
                        toujours_coller = false; 
                        est_lance = true; 
                        raquette = getImage(getDocumentBase(), "Rakkkkette.gif");  
                        if ((position_raquette + raquette.getWidth(this)) > 535) { position_raquette = 535-raquette.getWidth(this); }
                        break;
                    case 1: 
                        niveau ++;
                        ChargerNiveau(niveau);
                        est_lance = false;
                        toujours_coller = false;
                        raquette = getImage(getDocumentBase(), "Rakette.gif");
                        break;
                    case 2:
                        toujours_coller = true;
                        raquette = getImage(getDocumentBase(), "Rakette.gif");
                        break;
                    case 3:
                        if (vie < 9) 
                        {
                            vie++;
                            toujours_coller = false;
                            est_lance = true;
                            raquette = getImage(getDocumentBase(), "Rakette.gif"); 
                        }
                        break; 
                }
            }
        
        } //fin opt_x

            repaint();
            try {jouer.sleep(5);}
            catch(InterruptedException e){}; 
        }
    }
} //fin grosse classe
 

 Conclusion

Ce programme restera certainement définitivement dans son état actuel, j'ai fini mes études il y a bien longtemps déjà.
Quelques bugz subsistent pour les courageux qui veulent s'y atteler, notament la bille qui a des sautes d'humeur (vitesse inégale selon la disponibilité du processeur sur ma machine) et un effet de bord génant qui coince la bille dans le décor ou dans les briques indestructibles.

Pour les plus fénéants j'ai laissé les codes pour tricher directement sur la page HTML

Merci de votre indulgence, car c'est, à ce jour, le seul programme JAVA que j'ai jamais écris.

Je tiens à remercier mon prof, tout de même, Mr Bruno Genty, talentueux développeur à Devil Desing (http://devildesign.free.fr/) ;-)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture [MIDP] SIMPLE CHESS BOARD par loloof64
Source avec Zip Source avec une capture JEU DE DAMES par Julien39
Source avec Zip BLACKBOX SWING ET JAVA2D par GodConan
Source avec Zip Source avec une capture COMBAT DE SERPENTS VERSION MIDLET par khilio
Source avec Zip Source avec une capture COMBAT DE SERPENTS par khilio

 Sources en rapport avec celle ci

Source avec Zip CASSE BRIQUE EN J2ME par codefalse
Source avec Zip Source avec une capture CASSEBRIQUE par boutchito
Source avec Zip Source avec une capture BRICKOID (CASSE BRIQUE) par minimouk
Source avec Zip Source avec une capture JAVANOID CASSE BRIQUE EN JAVA PROGRAMMATION ORIENTÉ OBJET par spontex
Source avec Zip APPLET CASSE BRIQUE par titd

Commentaires et avis

Commentaire de freax le 25/01/2003 18:42:31

Vraimment bien ton source !

Commentaire de nesco le 29/03/2003 11:43:05

Bjr et bravo pour ce programme !
je suis novice en dév. Java, ce script fonctionne parfaitement en local mais pas sur un serveur distant Internet (pb d'affichage, pas de rakkkette...)
je n'arrive pas à solutionner le problème.
Vous savez d'où cela vient?
merci.

Commentaire de dragon le 23/06/2003 04:58:20

graphiquement numéro 1, par contre vu code, il devrait être plus diviser en morceaux, puisque comme ça, c,est presqu'indéboguable ni optimizable. Mais le graphique, chapeau, c,est très beau

Commentaire de dragon le 26/06/2003 01:39:00

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

Commentaire de SaintAkseror le 16/07/2003 11:22:38

Comme je le disais plus haut, ceci n'est qu'un exercice réalisé durant un cours d'initiation au Java, et ça n'a pas d'autres prétentions.
Maintenant, c'est vrai que c'est un peu brouillons, pour ne pas dire écrit avec les pieds !!
bien malin celui qui arrivera à optimiser ce bordel, en tout cas, je lui souhaite bonne chance ;-p
Pour la petite histoire, le notepad a été mon seul outils pour faire ce programme...

Commentaire de dragon le 16/07/2003 22:50:55

avoir fait ça avec note pad, falais le vouloir en maudit

Commentaire de ivanohe5 le 07/08/2003 15:44:47

Vraiment sympas graphiquement c'est pourquoi j'aimerais savoir avec quel logiciel tu fait tes images ? Quel est le meilleur ?
Une animation en gif est-elle considere par le compilateur de la meme facon qu'une image? Genre je remplace toutes tes images par des animation qui ont le meme non ?
Encore chapeau
A+

Commentaire de dragon le 07/08/2003 15:58:24

oui, java supporte les gif annimé avec du tranparant comme fond
le meilleur c'est photoshop

Commentaire de SaintAkseror le 07/08/2003 16:05:00

C'est java qui gère les gifs animés, donc en principe si ton jre est assez récent (j'ai développé ça sous jdk1.3) ça devrait le faire.

Par contre, tout passer en gif animé, je ne pense pas que ça soit une bonne idée, j'ai essayé : ça ralentit un max !!! Pour un jeu basé sur la rapidité, ça craint !

Pour les graphismes, Dragon a vu juste, la majorité du boulot êtant fait par le Texture Explorer des Kai's Power Tools  3.

J'en profite pour faire la promo du logiciel libre, The Gimp est en téléchargement gratuit et il est vraiment pas mal du tout même s'il a un coté "joyeux bordel"  comparé à Photoshop.

Commentaire de nohit le 16/02/2004 19:57:50

Bonjour,
Personnellement je suis un peu deçu par ce jeu :^/ car je trouve la jouabilité plus qu'imprecise et le comportement de la balle vraiment tres peu naturel... Dommage, car cela enleve beaucoup a l'interet general. Et meme si ct un exo de cours, et bien cela aurait merité d'etre un peu plus travaillé je pense.
Sinon coté graphisme effectivement, c'est pas mal du tout et ça ressemble a quelque chose on va dire ! Bravo de ce coté là :^D
A quand la version 2 alors ?
@+

Commentaire de SaintAkseror le 17/02/2004 08:28:04

En réponse à Nohit, il n'y aura jamais de version 2. C'est le seul programme Java que j'ai jamais écrit et je n'ai plus le temps de m'y remettre.
Pour ma défense je dirai simplement que j'ai surtout essayé de faire un programme qui marche, avant tout. Le côté graphique étant surtout un violon d'ingre.
Alors je suis quand même content de moi, compte tenu du fait que je n'avais jamais pratiqué java auparavant.

Commentaire de tytang8 le 22/04/2004 02:02:57

bonjour, je m'appelle Eric. J'ai fait quelques recherches sur les programmations en java, et j'aitrouvé votre casse brique, cependant je n'arrive pas à l'exécuter, si vous pouviez m'expliquer comment le faire, je vous remercie d'avance.

A bientôt.

Eric

Commentaire de cosmos56 le 29/09/2005 17:19:05

salut je suis debutant dans la programmation java mais je trouve ton programme pas trop mal
un truc que tu pourrais p-t ameliorer c est a propos de tes niveaux
je comprend pas pourquoi tu as mis tout les 30 niveaux dans ton source alors qu il aurait ete mieux de les mettres un dans fichier et de l appeler a partir de ton programme ( gain enorme de place dans ta source) ou meme dans un autre fichier.java (ou .class)

Commentaire de cosmos56 le 29/09/2005 17:31:54

salut je suis debutant dans la programmation java mais je trouve ton programme pas trop mal
un truc que tu pourrais p-t ameliorer c est a propos de tes niveaux
je comprend pas pourquoi tu as mis tout les 30 niveaux dans ton source alors qu il aurait ete mieux de les mettres un dans fichier et de l appeler a partir de ton programme ( gain enorme de place dans ta source) ou meme dans un autre fichier.java (ou .class)

Commentaire de SaintAkseror le 29/09/2005 17:42:08

Salut Cosmos56,
Je ne renie pas le fait que ce programme nécessite quelques améliorations, mais je vais encore une fois me répéter, il s'agissait d'un exercice d'initiation à Java, nous avions  seulement 4 jours pour réaliser un programme qui fonctionne... ça fait court quand on ne connait pas Java (et qu'on a le démon du Photoshop comme moi). Ensuite, il y avait quelque contrainte (si mes souvenirs sont bons, ça fait 4 ans que je n'ai pas relu ce programme) On ne devait écrire le programme qu'avec des fonctions qu'on avait vu dans le cours. Les accès fichiers n'étant pas au programme ... j'ai fait le bourrin en mettant tout dans un tableau. Voilà votre honneur, quelle sera ma sentence ? ;-p

Commentaire de Flashion le 23/04/2007 13:10:55

Bonjour, jaimerais que lon maide pour faire une page php  pour les variables  d'un jeu de ce type arkanoid et pour un tetris pour  metre sur un site.

je vous remercie infiniment pour celui ou celle qui voudra bien m'aider rapidement ...

flashion-paradise_AT_hotmail.fr
( remplacer le _AT_ par @)
Merci infiniment

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Detection colision jeu casse brique [ par meudeuk ] Lu',je suis en train de faire un casse brique en java, mais je galere un peut sur la detection des colisions entre la balle et les briques.Je me demen casse brique en java [ par boblinux ] Bonjour,Pour commencer, je tiend a dire que je suis debuter en java. J'en fait pour mon plaisir chez moi. Donc voilà, j'essaye de faire un casse briqu JTable et CellEditor, le casse tete !!! [ par srx ] Bonjour,est ce que quelqu'un saurait s'il est possible dans une JTable de définir pour chaque case une CellEditor et un CellRenderer spécifique ?Je cr interface JAVA jeu de Dames [ par andyn_r ] Bonjour, je fé un jeu de dames en réseau en C, et pour l'interface en Java, j'aimerais savoir comment afficher l'image du damier sur ma fenetre de je Jeu de stratégie [ par killians ] BonjourJe suis en train de développer un jeu de stratégie en java pour un projet d'étude avec mon binôme.Le but du jeu est de poser un maximum de pièc Othello et fonction d'évaluation [ par gouigoui ] Salut à tousDans le cadre de mes études, je fais un peu mumuse avec le jeu othello. J'ai implémenté un joueur, avec un algorithme de recherche de type Page d'accueil dans une Jframe [ par nounouX ] Voila je suis tj sur mon projet de tetris (ça y est j'ai reussi a mettre du son... merci a celui qui a fait le jeu earthworm Jim en 3 parties ... dsl Affichage dans un jeu [ par nounouX ] Salut a tous voila, ma question concerne l'affichage graphique d'un jeu, j'aimerai que vous m'aiguilliez sur la meilleur façon d'afficher une image, p AWT vs SWING que choisir... [ par nounouX ] Bon je vais encore vous embeter :-DVoila plus je fouille sur le web, moins je comprend ... hehe voila , j'aimerai savoir (du point de vu graphique, po Java pour un Jeu Online ? [ par Sissmic ] Bonjour a tous.Voila, un ami et moi meme somme entrain de faire un jeu en php/html, c'est un jeu tour par tour qui est un mélange de RPG/Lycos Fight/C


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,106 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales