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
;}