Page 1 sur 1

le plus beau casse brique de tout les temps !

Publié : mar. 24/mai/2005 18:06
par Backup
voici le plus beau casse brique de tout les temps fait en purebasic !!
attention il faut une config tres puissante pour le faire tourner !!
au moins 8Ghz !

et voici le code ultra perfectionné ! rien que pour vous !
.... ne le redistribué pas , c'est du top de chez top !!


Code : Tout sélectionner


; Version Purebasic 4.00
 ; Prg réalisé par Dobro le 24/05/2005
debut:

Resultat = OpenConsole ()
EnableGraphicalConsole(1)
ConsoleCursor (0)
ConsoleTitle ( " le plus beau casse brique de tout les temps " )

;{; Preambule :
ConsoleColor (12,0 )
ConsoleLocate (17,1)
Print ( " le plus beau casse brique de tout les temps " )
ConsoleColor (15,0 )
ConsoleLocate (3,2)
Print ( " ce programme necessite un pentium4 a 8 Ghz pour tourner correctement " )
ConsoleColor (14,0 )
ConsoleLocate (22,5)
Print ( " Votre Score est de: " + Str (point)+ " points" )
point=0
ConsoleColor (10,0 )
ConsoleLocate (10,10)
Print ( " pour jouer" )
ConsoleLocate (10,11)
Print ( " puis appuis sur la touche [espace] pour lancer la balle " )
ConsoleLocate (10,12)
Print ( " les fleches dirigent la raquette " )
ConsoleColor (15,0 )
ConsoleLocate (1,25)
Print ( " Programme realise par Dobro en purebasic v3.93 sur un Cray !! " )
yy:
Chaine$ = Inkey ()
Resultat = RawKey()
If Str(Resultat)<> "32" ;
  Chaine$= ""
  Goto yy
EndIf
;}

ClearConsole ()

Chaine$= ""
xr=35
yr=20
ybal=19
xbal=35
sensy=-1
sensx=1
bord$= "bas"

Dim brique(60,15)
Dim couleur(15)
; initialise le tableau
For yb=5 To 15 Step 2
  For xb=15 To 59 Step 2
    brique(xb,yb)=1
  Next xb
Next yb

; initialise les couleurs des briques
For coul=1 To 15
  couleur(coul)= Random (10)+5
Next coul
; **********************************

Gosub affiche


Repeat
  
  
  ; ********** position de la balle ****************************
  Gosub position_balle
  ; ****************************************************************
  Delay (50)
  
  
  ;{; ************ le clavier ******************
  Chaine$ = Inkey ()
  Resultat = RawKey()
  
  If Str(Resultat)= "39" ; fleche droite
    xr=xr+4 : If xr>58: xr=58: EndIf ; ceci determine le blocage de la raquette
  EndIf
  If Str(Resultat)= "37"  ; fleche gauche
    xr=xr-4: If xr<4: xr=4: EndIf
  EndIf
  If Str(Resultat)= "32"  ; espace
    start=1
  EndIf
  ; ****************************************
  ;}
  
  
  If start=1 ; la balle est lancé (gachette)
    ybal=ybal+sensy
    xbal=xbal+sensx
    
  EndIf
  ;{ ; *************** collision bord ****************
  
  If xbal >66 ; (touche bord droit)
    Gosub position_balle
    sensx=-sensx
    bord$= "droit"
  EndIf
  If xbal <8 ; (touche bord gauche)
    Gosub position_balle
    sensx=-sensx
    bord$= "gauche"
  EndIf
  
  If ybal >22 ; (touche bord bas)
    Gosub position_balle
    sensy=-sensy
    bord$= "bas"
  EndIf
  If ybal <2 ; (touche bord haut)
    Gosub position_balle
    sensy=-sensy
    bord$= "haut"
  EndIf
  ; ******************************************
  ; ************ si collision entre ball et raquette ***********
  If start=1
    If ( xbal=xr+4 Or xbal=xr+5 Or xbal=xr+6 Or xbal=xr+7 ) And ybal=20
      raquette=1
    EndIf
    
    If ( xbal=xr+3 Or xbal=xr+8 ) And ybal=20
      raquette=2
    EndIf
  EndIf
  
  ; *****************************************************************
  ;}
  
  Gosub affiche
ForEver

;{ ; AFFICHE
affiche:

; ClearConsole()
; ************* les briques *******************************
For yb=5 To 15 Step 2
  For xb=15 To 59 Step 2
    ConsoleColor (couleur(yb), 0)
    ConsoleLocate (xb,yb)
    
    If ybal>20 ; partie perdu
      Chaine$= ""
      CloseConsole ()
      Goto debut
    EndIf
    
    ; ************* si collision entre balle et brique *************
    If (xbal=xb And ybal=yb) And start=1 And brique(xb,yb)=1
      brique(xb,yb)=0 ; la brique disparait
      point=point+10 ; le score
      Gosub position_balle
      If bord$= "gauche" Or bord$= "droit" :sensx=-sensx: EndIf
      If bord$= "bas" Or bord$= "haut" : sensy=-sensy : EndIf
    EndIf
    ; ****************************************************************
    If raquette=1
      raquette=0
      sensy=-sensy
    EndIf
    If raquette=2
      raquette=0
      sensy=-sensy
      sensx=-sensx
    EndIf
    If brique(xb,yb)=1
      Print ( "=" )
    Else
      Print ( " " )
    EndIf
  Next xb
Next yb


; **************************************************

; ********* affiche la raquette **********************
ConsoleLocate (xr,yr) ; position la raquette
ConsoleColor (15, 0)
Print ( Chr(32)+"   =====   "+Chr(32)) ; la raquette
ConsoleLocate (0,yr-1)
Print ( Space (66)) ; efface les résidus
ConsoleLocate (0,yr+1)
Print ( Space (66)) ; efface les résidus
; ****************************************************
; ************** les bords *******************
For y=0 To 24
  ConsoleLocate (7,y)
  Print ( "|" )
  ConsoleLocate (67,y)
  Print ( "|" )
Next y

For x=0 To 79
  ConsoleLocate (x,1)
  Print ( "-" )
  ConsoleLocate (x,23)
  Print ( "-" )
Next x
  ; ********** LE SCORE ********************
ConsoleLocate (70,3)
ConsoleColor (11, 0)
Print ( "points" )
ConsoleLocate (72,4)
ConsoleColor (11, 0)
Print ( Str (point))
; *********************************************
Return
;}

;{;POSITION BALLE
position_balle:
If sensy<0 And sensx>0 ; va a droite ; ça monte
  ConsoleColor (14, 0)
  ConsoleLocate (xbal,ybal) ; position la balle
  Print ( "o" ) ; la balle
  ConsoleLocate (xbal-1,ybal+1) ; position la balle
  Print ( " " ) ; la balle
  Goto su2
EndIf
    
If sensy<0 And sensx<0 ; va a gauche ; ça monte
  ConsoleColor (14, 0)
  ConsoleLocate (xbal,ybal) ; position la balle
  Print ( "o" ) ; la balle
  ConsoleLocate (xbal+1,ybal+1) ; position la balle
  Print ( " " ) ; la balle
  Goto su2
EndIf
    
If sensy>0 And sensx>0 ; va a droite ça descend
  ConsoleColor (14, 0)
  ConsoleLocate (xbal,ybal) ; position la balle
  Print ( "o" ) ; la balle
  ConsoleLocate (xbal-1,ybal-1) ; position la balle
  Print ( " " ) ; la balle
  Goto su2
EndIf
    
If sensy>0 And sensx<0 ; va a gauche ça descend
  ConsoleColor (14, 0)
  ConsoleLocate (xbal,ybal) ; position la balle
  Print ( "o" ) ; la balle
  ConsoleLocate (xbal+1,ybal-1) ; position la balle
  Print ( " " ) ; la balle
  Goto su2
EndIf
su2:
Return
;}



Publié : mar. 24/mai/2005 18:22
par Oliv
8O Impressionant, mon PC ne permet pas de le faire tourner correctement, mais bon.....Il fallait au moins un cray pour le faire :lol:

Sinon c'est une bonne idée :)

Publié : mar. 24/mai/2005 19:57
par nico
Je trouve ça trop génial :D , par contre c'est trop dur!

Ma carte vidéo a beaucoup de mal à suivre, ça m'embête y a pas très longtemps que je l'ai changé. :roll: :wink:

Publié : mar. 24/mai/2005 20:23
par erix14
8O très impressionnant, les graphismes sont de toute beauté :D
Mais où vas-tu chercher ton inspiration :wink:

Publié : mar. 24/mai/2005 21:14
par Gratteur
Chapeau bas monsieur Dobro, ce casse brique va révolutionner la vie de nos ordinateurs !

Publié : mar. 24/mai/2005 22:06
par Dräc
Trop de la balle! :lol:


P'tite correction sur le Random car il donne une valeur entre 0 et 10 inclus:

Code : Tout sélectionner

For coul=1 To 15 
  couleur(coul)=Random(10)+5 
Next coul

Publié : mer. 25/mai/2005 7:32
par Progi1984
Trop dur !

Publié : mer. 25/mai/2005 9:33
par Dr. Dri
800 points à ma deuxieme partie

Dri

Publié : mer. 25/mai/2005 11:30
par Anonyme2
Ha, ça jette !

J'ai tout de même avec le debugger l'erreur à la ligne 142

Console color must be between 0 and 15


lorsque je lance une deuxième fois

Publié : mer. 25/mai/2005 12:36
par Progi1984
Moi, c'est au bout de la troisième fois !

Publié : mer. 25/mai/2005 18:09
par lionel_om
Sympa.

Moi dès la 1ère fois.
J'ai créer un EXE et là ca passe sans pb...

Faudrait penser à changer le nom du topic !!! : Le plus génialisime Pong de que l'Homme n'est jamais connu !!!

Publié : mer. 25/mai/2005 18:22
par Backup
Dräc a écrit :Trop de la balle! :lol:


P'tite correction sur le Random car il donne une valeur entre 0 et 10 inclus:

Code : Tout sélectionner

For coul=1 To 15 
  couleur(coul)=Random(10)+5 
Next coul
corrigé !! Merci :D ; je sais pas d'ou sort ce +6 !! :lol:

Publié : mer. 25/mai/2005 18:32
par Fred
Vraiment excellent :)

Publié : mer. 25/mai/2005 18:56
par KarLKoX
lol ! Je m'attendais pas à ca, plus oldschool que ça, tu meurs ! J'adore :D
Par contre, c'est un pwal dur :-p