Réplique d'arkanoid

Soyez le premier à donner votre avis sur cette source.

Vue 20 368 fois - Téléchargée 1 231 fois

Description

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 / Exemple :


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/) ;-)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Flashion
Messages postés
9
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
13 juin 2007
-
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
SaintAkseror
Messages postés
5
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
29 septembre 2005
-
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
cosmos56
Messages postés
5
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
11 août 2011
-
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)
cosmos56
Messages postés
5
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
11 août 2011
-
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)
tytang8
Messages postés
1
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
22 avril 2004
-
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

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.