Code : Tout sélectionner
; German forum: http://www.purebasic.fr/german/viewtopic.php?t=3591&start=10
; Author: FGK (updated for PB 4.00 by Andre)
; Date: 07. June 2005
; OS: Windows, Linux
; Demo: Yes
; GridLock clone V0.8
; Employer la souris (presser le bouton gauche de la souris) pour déplacer les pierres.
; Ici ma contribution modeste au MiniGameContest :
; Un objectif « des Gridlock » c'est la pierre de maître de la percée
; poussée dans la paroi. Des pierres horizontales ne peuvent se déplacer que de travers
;
;
; On oriente avec la souris.
;
;
; ------------------------------------------------------------
; GridLock clone V0.8
; Pb version d'un F. Kastl pour le MiniGameContest '05
; Credits à des Riku Salkia l'auteur de la version P900
;
; ------------------------------------------------------------
;
#TailleBloc=24
#DemiBloc = #TailleBloc/2
#StatusX = 220 -25
#StatusY = 10
#Maitre = 0
#Horizontal = 1
#Vertical= 2
#Largeur=320
#Hauteur=200
#DeplacerCote = 2
#BonusBloc = 10
#ValeurNiveau= 5
#NiveauMaxi = 40
Structure Bloc
Typ.b
Size.b
XPos.l
YPos.l
dx.l
dy.l
XLen.l
YLen.l
XMap.b
YMap.b
MovePlus.b
MoveMinus.b
Col.l
SpriteID.l
EndStructure
Global HSprite1,HSprite2
Global VSprite1,VSprite2
Global MSprite,MapSprite
Global x,y,oldX,oldY
Global I,btn
Global Bonus.l,Score.l
Global Niveau.l,Moves.l
Global Done,Quit, SpriteID
Global Dim Map.b(7,7)
Global NewList Blocs.Bloc()
Procedure DrawShadowText(px.l,py.l,Texte$,FrontCol.l,ShadowCol.l)
FrontColor(FrontCol)
DrawingMode(1)
DrawText(px,py,Texte$)
FrontColor(ShadowCol)
DrawText(px+1,py-1,Texte$)
EndProcedure
Procedure DrawBox(px,py,w,h,Texte$)
StartDrawing(ScreenOutput())
DrawingMode(0)
Box(px,py,w,h,RGB($C0,$3F,$66))
Line(px,py,w,0,RGB($EA,$A8,$B9))
Line(px+w,py,0,h,RGB($EA,$A8,$B9))
DrawShadowText(w-TextWidth(Texte$)-15,h/2+10,Texte$,RGB(0,0,0),RGB($EA,$A8,$B9))
StopDrawing()
EndProcedure
Procedure DrawNiveau()
DisplaySprite(MapSprite,0,0)
ForEach Blocs()
DisplayTransparentSprite(Blocs()\SpriteID,#TailleBloc+Blocs()\XPos,#TailleBloc+Blocs()\YPos)
Next
EndProcedure
Procedure DrawStatus()
If Moves*#DeplacerCote<Bonus
t$="Bonus: " +RSet(Str(Bonus-Moves*#DeplacerCote),4,"0")
Else
t$="Bonus: " +RSet("",4,"0")
EndIf
StartDrawing(ScreenOutput())
DrawShadowText(#StatusX,#StatusY,"Niveau: " + RSet(Str(Niveau),2,"0"),RGB(255,255,255),RGB(0,0,0))
DrawShadowText(#StatusX,#StatusY+20,"Score: " + RSet(Str(Score),5,"0"),RGB(255,255,255),RGB(0,0,0))
DrawShadowText(#StatusX,#StatusY+40,"Déplacements: " +RSet(Str(Moves),4,"0"),RGB(255,255,255),RGB(0,0,0))
DrawShadowText(#StatusX,#StatusY+60,t$,RGB(255,255,255),RGB(0,0,0))
StopDrawing()
EndProcedure
Procedure.l GetBlock()
R=-1
ForEach Blocs()
If x>Blocs()\XPos+#TailleBloc And x<(Blocs()\XPos+Blocs()\XLen+#TailleBloc)
If y>Blocs()\YPos+#TailleBloc And y<(Blocs()\YPos+Blocs()\YLen+#TailleBloc)
R =ListIndex(Blocs())
Break
EndIf
EndIf
Next
ProcedureReturn R
EndProcedure
Procedure CheckMove()
Blocs()\MoveMinus=0
Blocs()\MovePlus=0
Select Blocs()\Typ
Case #Vertical
If Map(Blocs()\XMap+1,Blocs()\YMap)=1
Blocs()\MoveMinus=1
EndIf
If Map(Blocs()\XMap+1,Blocs()\YMap+Blocs()\Size+1)=1
Blocs()\MovePlus=1
EndIf
Case #Horizontal
If Map(Blocs()\XMap,Blocs()\YMap+1)=1
Blocs()\MoveMinus=1
EndIf
If Map(Blocs()\XMap+Blocs()\Size+1,Blocs()\YMap+1)=1
Blocs()\MovePlus=1
EndIf
Case #Maitre
If Map(Blocs()\XMap,Blocs()\YMap+1)=1
Blocs()\MoveMinus=1
EndIf
If Map(Blocs()\XMap+Blocs()\Size+1,Blocs()\YMap+1)=1
Blocs()\MovePlus=1
EndIf
EndSelect
EndProcedure
Procedure SetBlocksToMap(Mode.b)
Select Blocs()\Typ
Case #Horizontal
For l=1 To Blocs()\Size
Map(Blocs()\XMap+l,Blocs()\YMap+1)=Mode
Next l
Case #Vertical
For l=1 To Blocs()\Size
Map(Blocs()\XMap+1,Blocs()\YMap+l)=Mode
Next l
Case #Maitre
For l=1 To Blocs()\Size
Map(Blocs()\XMap+l,Blocs()\YMap+1)=Mode
Next l
EndSelect
EndProcedure
Procedure AlignBlocks()
If I>-1
SelectElement(Blocs(),I)
If Abs(Blocs()\dy) < #TailleBloc/4
Blocs()\dy=0
EndIf
If Abs(Blocs()\dx) < #TailleBloc/4
Blocs()\dx=0
EndIf
Blocs()\YPos =Blocs()\YMap * #TailleBloc
Blocs()\XPos =Blocs()\XMap * #TailleBloc
EndIf
EndProcedure
Procedure MoveBlocks()
I= GetBlock()
If I>-1
SelectElement(Blocs(),I)
CheckMove()
DeltaX = oldX-x
DeltaY = oldY-y
dy=0:dx=0
Select Blocs()\Typ
Case #Vertical
If DeltaY>0 ;orientation négative
If Blocs()\MoveMinus=1
ProcedureReturn
EndIf
Else ;orientation positive
If Blocs()\MovePlus=1
ProcedureReturn
EndIf
EndIf
DeltaX=0
Case #Horizontal
If DeltaX>0 ;orientation négative
If Blocs()\MoveMinus=1
ProcedureReturn
EndIf
Else ;orientation positive
If Blocs()\MovePlus=1
ProcedureReturn
EndIf
EndIf
DeltaY=0
Case #Maitre
If DeltaX>0 ;orientation négative
If Blocs()\MoveMinus=1
ProcedureReturn
EndIf
Else ;orientation positive
If Blocs()\MovePlus=1
ProcedureReturn
EndIf
EndIf
DeltaY=0
EndSelect
Blocs()\YPos-DeltaY
Blocs()\XPos-DeltaX
Blocs()\dx - DeltaX
Blocs()\dy - DeltaY
SetBlocksToMap(0)
If Blocs()\dy > #TailleBloc/4
Blocs()\YMap+1
Blocs()\dy=0
Blocs()\YPos =Blocs()\YMap * #TailleBloc
Moves+1
EndIf
If Blocs()\dy < -#TailleBloc/4
Blocs()\YMap-1
Blocs()\dy=0
Blocs()\YPos =Blocs()\YMap * #TailleBloc
Moves+1
EndIf
If Blocs()\dx > #TailleBloc/4
Blocs()\XMap+1
Blocs()\dx=0
Blocs()\XPos =Blocs()\XMap * #TailleBloc
Moves+1
EndIf
If Blocs()\dx < -#TailleBloc/4
Blocs()\XMap-1
Blocs()\dx=0
Blocs()\XPos =Blocs()\XMap * #TailleBloc
Moves+1
EndIf
SetBlocksToMap(1)
If Blocs()\Typ=#Maitre And Blocs()\XMap=5
Done=1
EndIf
If GetBlock()=-1
btn=0
EndIf
EndIf
EndProcedure
Procedure GetNiveau(LVL)
If LVL<=#NiveauMaxi
ClearList(Blocs())
Restore Map
For ty= 0 To 7
For tx= 0 To 7
Read.b Map(tx,ty)
Next tx
Next ty
Restore BlockCount
For l=1 To Niveau-1
Read o.b
Offset.l+(o*4) ;calculer la longueur d'octet
Next l
Read Count.b ;Lire le nombre de bloc
Bonus.l = Count * #BonusBloc ;Calculer le bonus dépendant du nombre de blocs
Restore NiveauTab
For l= 1 To Offset
Read o.b ;Passer octets de niveau
Next l
For l=1 To Count
AddElement(Blocs())
Read Blocs()\Typ
Read Blocs()\XMap
Read Blocs()\YMap
Read Blocs()\Size
Select Blocs()\Typ
Case #Horizontal
Blocs()\XLen = #TailleBloc * Blocs()\Size
Blocs()\YLen = #TailleBloc
If Blocs()\Size = 3
Blocs()\SpriteID = HSprite1
Else
Blocs()\SpriteID = HSprite2
EndIf
Case #Vertical
Blocs()\XLen = #TailleBloc
Blocs()\YLen = #TailleBloc*Blocs()\Size
If Blocs()\Size = 3
Blocs()\SpriteID = VSprite1
Else
Blocs()\SpriteID = VSprite2
EndIf
Case #Maitre
Blocs()\XLen=#TailleBloc * Blocs()\Size
Blocs()\YLen = #TailleBloc
Blocs()\SpriteID = MSprite
EndSelect
SetBlocksToMap(1)
Blocs()\XPos = Blocs()\XMap * #TailleBloc; + #TailleBloc
Blocs()\YPos = Blocs()\YMap * #TailleBloc; + #TailleBloc
Next l
Else
LVL = #NiveauMaxi
Quit = 1
EndIf
Moves = 0
Done = 0
EndProcedure
Procedure NextNiveau(Texte$)
DrawBox(#TailleBloc,#TailleBloc,6*#TailleBloc,6*#TailleBloc,Texte$)
FlipBuffers()
Delay(2000)
If Moves*#DeplacerCote<Bonus
Score=Score+(Bonus-Moves*#DeplacerCote)
EndIf
Score = Score + (Niveau*#ValeurNiveau)
Niveau+1
GetNiveau(Niveau)
EndProcedure
Procedure.l CreateBlockSprite()
Protected.b Typ
Protected.l Size
Protected.w R
Protected.w G
Protected.w b
Read.b Typ.b
Read.l Size.l
Read.w R.w
Read.w G.w
Read.w b.w
Select Typ
Case #Horizontal
x=Size*#TailleBloc
y=#TailleBloc
t$=""
Case #Vertical
x=#TailleBloc
y=Size*#TailleBloc
Case #Maitre
x=Size*#TailleBloc
y=#TailleBloc
t$="M"
EndSelect
c=RGB(R,G,b)
SpriteID = CreateSprite(#PB_Any, x, y, #PB_Sprite_PixelCollision)
StartDrawing(SpriteOutput(SpriteID))
DrawingMode(0)
;Box(0,0,SpriteWidth(SpriteID),SpriteHeight(SpriteID),c)
If Typ=#Horizontal Or Typ=#Maitre
Circle(#DemiBloc,#DemiBloc,#DemiBloc,c)
Circle(x-#DemiBloc,#DemiBloc,#DemiBloc,c)
Box(#DemiBloc,0,x-#TailleBloc,#TailleBloc,c)
DrawingMode(4)
DrawText((x-TextWidth(t$))/2,4, t$)
Else
Circle(#DemiBloc,#DemiBloc,#DemiBloc,c)
Circle(#DemiBloc,y-#DemiBloc,#DemiBloc,c)
Box(0,#DemiBloc,#TailleBloc,y-#TailleBloc,c)
EndIf
StopDrawing()
ProcedureReturn SpriteID
EndProcedure
Procedure.l CreateMapSprite(Size.l)
back = RGB(0,255,255)
dark = RGB($6B,$91,$94)
light = RGB(220,255,255)
Restore Map
For y= 0 To 7
For x= 0 To 7
Read.b Map(x,y)
Next x
Next y
x=#Largeur
y=#Hauteur
SpriteID = CreateSprite(#PB_Any,x,y,0)
StartDrawing(SpriteOutput(SpriteID))
DrawingMode(0)
Box(0,0,SpriteWidth(SpriteID),SpriteHeight(SpriteID),RGB(192,192,192))
x=Size*#TailleBloc
y=Size*#TailleBloc
Box(0,0,x,y,back)
For y=0 To 7
For x = 0 To 7
If Map(x,y)=1
DrawingMode(0)
Box(x*#TailleBloc,y*#TailleBloc,#TailleBloc,#TailleBloc,RGB(220,255,255))
DrawingMode(4)
Box(x*#TailleBloc,y*#TailleBloc,#TailleBloc,#TailleBloc,RGB(180,180,255))
EndIf
Next x
Next y
Restore LineTab
x=0:y=0
For l= 1 To 12
Read.l x2
Read.l y2
LineXY(x*#TailleBloc,y*#TailleBloc,x2*#TailleBloc,y2*#TailleBloc,dark)
x=x2:y=y2
Next l
StopDrawing()
ProcedureReturn SpriteID
EndProcedure
Procedure CreateGameGfx()
MapSprite=CreateMapSprite(8)
Restore Blk_Master
MSprite=CreateBlockSprite()
Restore Blk_Hor1
HSprite1=CreateBlockSprite()
Restore Blk_Ver1
VSprite1=CreateBlockSprite()
Restore Blk_Hor2
HSprite2=CreateBlockSprite()
Restore Blk_Ver2
VSprite2=CreateBlockSprite()
EndProcedure
If OpenWindow(0, 100, 200, 640,400, "PB Gridlock V0.8", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_WindowCentered)
If InitSprite()
If CreateMenu(0, WindowID(0))
MenuTitle("Jeu")
MenuItem( 1, "&Relancer")
MenuItem( 2, "&Sauter Niveau")
MenuItem( 3, "&Quitter")
MenuTitle("?")
MenuItem(4, "A propos")
EndIf
If OpenWindowedScreen(WindowID(0),0,0,#Largeur,#Hauteur,1,0,0)
CreateGameGfx()
Niveau=1
GetNiveau(Niveau)
Repeat
DrawNiveau()
oldX=x:oldY=y
x=WindowMouseX(0)/2
y=WindowMouseY(0)/2
EventID.l = WindowEvent()
Select EventID
Case #PB_Event_Menu
Select EventMenu()
Case 1 ; Restart Niveau
DrawBox(#TailleBloc,#TailleBloc,6*#TailleBloc,6*#TailleBloc,"Relancer Niveau")
FlipBuffers()
Delay(1000)
GetNiveau(Niveau)
Case 2
NextNiveau("Sauter Niveau")
Bonus=0
Case 3 ; Exit
Quit=1
Case 4 ; About
MessageRequester("PB-GridLock", "PB-Version de GridLock" + Chr(10) + "écrit pour " + Chr(10) + "www.pure-board.de" + Chr(10) + "Mini-GameContest '05" + Chr(10) + "" + Chr(10) + "Auteur: F.G.K " + Chr(10) + "" + Chr(10) + "Credits à Riku Salkia l'auteur de la version Phone Symbian", #MB_OK|#MB_ICONINFORMATION)
EndSelect
Case #WM_LBUTTONDOWN
btn=1
Case #WM_LBUTTONUP
btn=0
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
If btn
MoveBlocks()
Else
AlignBlocks()
EndIf
DrawStatus()
If Done=1
NextNiveau("Bien Joué!")
EndIf
FlipBuffers()
Delay(10)
Until Quit = 1
EndIf
Else
Debug "Error initsprite"
EndIf
EndIf
End
;{ DatasSection
DataSection
Blk_Master:
Data.b #Maitre
Data.l 2
Data.w 192
Data.w 192
Data.w 192
Blk_Hor1:
Data.b #Horizontal
Data.l 3
Data.w 0
Data.w 0
Data.w 255
Blk_Hor2:
Data.b #Horizontal
Data.l 2
Data.w 255
Data.w 255
Data.w 0
Blk_Ver1:
Data.b #Vertical
Data.l 3
Data.w 255
Data.w 0
Data.w 0
Blk_Ver2:
Data.b #Vertical
Data.l 2
Data.w 0
Data.w 255
Data.w 0
LineTab:
Data.l 8,0,8,3,7,3
Data.l 7,1,1,1,1,7
Data.l 7,7,7,4,8,4
Data.l 8,8,0,8,0,0
Map:
Data.b 1,1,1,1,1,1,1,1
Data.b 1,0,0,0,0,0,0,1
Data.b 1,0,0,0,0,0,0,1
Data.b 1,0,0,0,0,0,0,0
Data.b 1,0,0,0,0,0,0,1
Data.b 1,0,0,0,0,0,0,1
Data.b 1,0,0,0,0,0,0,1
Data.b 1,1,1,1,1,1,1,1
BlockCount:
Data.b 8,11, 6, 7,11,11, 9,14,12,12
Data.b 8, 8,13,12,14,11,12, 9, 8,10
Data.b 7,12,10,10,13,12,10,12,12,10
Data.b 11,11,12,12,11,12,13,11,12,13
NiveauTab:
;- Niveau1:
Data.b #Horizontal,0,0,2
Data.b #Vertical,0,1,3
Data.b #Vertical,0,4,2
Data.b #Horizontal,2,5,3
Data.b #Horizontal,4,4,2
Data.b #Maitre,1,2,2
Data.b #Vertical,3,1,3
Data.b #Vertical,5,0,3
;-Niveau2:
Data.b #Vertical,0,0,2
Data.b #Maitre,0,2,2
Data.b #Horizontal,0,3,3
Data.b #Vertical,2,4,2
Data.b #Horizontal,0,5,2
Data.b #Horizontal,3,5,2
Data.b #Horizontal,4,4,2
Data.b #Vertical,4,2,2
Data.b #Vertical,5,1,3
Data.b #Horizontal,3,0,3
Data.b #Vertical,3,1,2
;-Niveau3:
Data.b #Vertical,1,4,2
Data.b #Horizontal,1,3,2
Data.b #Horizontal,2,5,2
Data.b #Vertical,3,2,3
Data.b #Maitre,1,2,2
Data.b #Vertical,5,3,3
;-Niveau4:
Data.b #Vertical,0,0,3
Data.b #Maitre,1,2,2
Data.b #Vertical,2,3,2
Data.b #Horizontal,2,5,3
Data.b #Vertical,5,4,2
Data.b #Horizontal,3,3,3
Data.b #Vertical,3,0,3
;-Niveau5:
Data.b #Vertical,0,4,2
Data.b #Horizontal,4,4,2
Data.b #Horizontal,4,5,2
Data.b #Vertical,5,2,2
Data.b #Vertical,5,0,2
Data.b #Vertical,4,1,3
Data.b #Vertical,3,0,3
Data.b #Horizontal,1,3,3
Data.b #Maitre,1,2,2
Data.b #Vertical,0,1,3
Data.b #Horizontal,0,0,2
;-Niveau6:
Data.b #Horizontal,3,5,3
Data.b #Vertical,3,2,3
Data.b #Vertical,4,1,3
Data.b #Vertical,5,1,3
Data.b #Vertical,3,0,2
Data.b #Maitre,1,2,2
Data.b #Horizontal,0,1,2
Data.b #Horizontal,0,0,2
Data.b #Horizontal,0,3,2
Data.b #Vertical,2,3,2
Data.b #Vertical,0,4,2
;-Niveau7:
Data.b #Vertical,5,0,2
Data.b #Vertical,4,0,2
Data.b #Vertical,5,2,2
Data.b #Vertical,3,1,2
Data.b #Maitre,1,2,2
Data.b #Vertical,1,0,2
Data.b #Horizontal,2,0,2
Data.b #Horizontal,2,3,2
Data.b #Vertical,3,4,2
;-Niveau8:
Data.b #Vertical,5,0,3
Data.b #Horizontal,4,3,2
Data.b #Horizontal,3,4,3
Data.b #Horizontal,3,5,3
Data.b #Vertical,2,4,2
Data.b #Horizontal,0,4,2
Data.b #Horizontal,0,5,2
Data.b #Horizontal,0,3,2
Data.b #Maitre,0,2,2
Data.b #Vertical,2,2,2
Data.b #Vertical,3,2,2
Data.b #Horizontal,2,1,2
Data.b #Horizontal,3,0,2
Data.b #Vertical,4,1,2
;-Niveau9:
Data.b #Vertical,1,0,2
Data.b #Maitre,0,2,2
Data.b #Vertical,0,3,3
Data.b #Horizontal,1,3,3
Data.b #Vertical,2,4,2
Data.b #Vertical,5,4,2
Data.b #Vertical,5,2,2
Data.b #Horizontal,4,1,2
Data.b #Horizontal,4,0,2
Data.b #Horizontal,2,0,2
Data.b #Vertical,3,1,2
Data.b #Vertical,4,2,3
;-Niveau10:
Data.b #Horizontal,4,0,2
Data.b #Horizontal,4,1,2
Data.b #Vertical,5,2,3
Data.b #Horizontal,4,5,2
Data.b #Vertical,3,4,2
Data.b #Horizontal,1,3,3
Data.b #Vertical,0,2,3
Data.b #Horizontal,0,5,2
Data.b #Horizontal,0,1,2
Data.b #Horizontal,0,0,2
Data.b #Vertical,2,0,2
Data.b #Maitre,1,2,2
;-Niveau11:
Data.b #Vertical,5,4,2
Data.b #Horizontal,3,3,3
Data.b #Horizontal,2,5,3
Data.b #Vertical,2,3,2
Data.b #Maitre,1,2,2
Data.b #Vertical,0,0,3
Data.b #Horizontal,1,0,2
Data.b #Vertical,3,0,3
;-Niveaul12:
Data.b #Vertical,5,0,3
Data.b #Horizontal,3,3,3
Data.b #Vertical,4,4,2
Data.b #Vertical,2,1,3
Data.b #Maitre,0,2,2
Data.b #Vertical,0,0,2
Data.b #Horizontal,1,0,2
Data.b #Horizontal,0,5,3
;-Niveau13:
Data.b #Horizontal,4,4,2
Data.b #Horizontal,4,5,2
Data.b #Vertical,3,4,2
Data.b #Vertical,0,3,3
Data.b #Horizontal,1,5,2
Data.b #Vertical,1,2,2
Data.b #Vertical,2,1,2
Data.b #Maitre,3,2,2
Data.b #Horizontal,0,0,2
Data.b #Horizontal,2,0,2
Data.b #Vertical,4,0,2
Data.b #Vertical,5,1,3
Data.b #Horizontal,3,3,2
;-Niveau14
Data.b #Horizontal,4,4,2
Data.b #Vertical,4,2,2
Data.b #Vertical,5,2,2
Data.b #Horizontal,4,1,2
Data.b #Maitre,2,2,2
Data.b #Horizontal,2,3,2
Data.b #Vertical,2,4,2
Data.b #Vertical,2,0,2
Data.b #Horizontal,0,0,2
Data.b #Vertical,0,2,2
Data.b #Vertical,1,2,2
Data.b #Horizontal,0,5,2
;-Niveau15:
Data.b #Horizontal,1,5,2
Data.b #Horizontal,3,5,2
Data.b #Vertical,3,3,2
Data.b #Vertical,2,3,2
Data.b #Maitre,2,2,2
Data.b #Horizontal,2,1,2
Data.b #Horizontal,3,0,2
Data.b #Horizontal,1,0,2
Data.b #Vertical,5,1,3
Data.b #Vertical,4,1,3
Data.b #Horizontal,4,4,2
Data.b #Vertical,1,2,3
Data.b #Vertical,0,2,3
Data.b #Horizontal,0,1,2
;-Niveau16:
Data.b #Vertical,5,0,3
Data.b #Horizontal,3,3,3
Data.b #Maitre,3,2,2
Data.b #Vertical,4,0,2
Data.b #Horizontal,2,0,2
Data.b #Horizontal,2,1,2
Data.b #Vertical,2,2,3
Data.b #Horizontal,0,5,2
Data.b #Horizontal,0,0,2
Data.b #Vertical,0,1,2
Data.b #Vertical,1,2,2
;-Niveau17:
Data.b #Horizontal,0,5,3
Data.b #Horizontal,0,4,3
Data.b #Vertical,3,3,3
Data.b #Vertical,4,4,2
Data.b #Vertical,5,4,2
Data.b #Vertical,2,2,2
Data.b #Maitre,0,2,2
Data.b #Horizontal,0,3,2
Data.b #Vertical,0,0,2
Data.b #Horizontal,1,0,3
Data.b #Horizontal,4,1,2
Data.b #Horizontal,2,1,2
;-Niveau18:
Data.b #Horizontal,0,5,3
Data.b #Horizontal,1,4,2
Data.b #Vertical,0,2,3
Data.b #Horizontal,1,3,3
Data.b #Maitre,1,2,2
Data.b #Vertical,3,0,3
Data.b #Vertical,2,0,2
Data.b #Horizontal,0,1,2
Data.b #Horizontal,0,0,2
;-Niveau19:
Data.b #Horizontal,3,0,2
Data.b #Vertical,2,0,2
Data.b #Maitre,2,2,2
Data.b #Vertical,4,1,2
Data.b #Vertical,4,3,2
Data.b #Horizontal,2,3,2
Data.b #Horizontal,1,4,3
Data.b #Vertical,1,2,2
;-Niveau20:
Data.b #Vertical,5,2,3
Data.b #Horizontal,3,5,3
Data.b #Horizontal,3,4,2
Data.b #Vertical,2,4,2
Data.b #Vertical,2,2,2
Data.b #Vertical,3,1,2
Data.b #Horizontal,1,1,2
Data.b #Vertical,0,0,2
Data.b #Maitre,0,2,2
Data.b #Horizontal,3,0,3
;-Niveau21:
Data.b #Horizontal,3,5,3
Data.b #Horizontal,0,0,2
Data.b #Vertical,2,0,2
Data.b #Vertical,3,0,3
Data.b #Horizontal,1,3,3
Data.b #Maitre,1,2,2
Data.b #Vertical,0,1,3
;-Niveau22:
Data.b #Vertical,5,4,2
Data.b #Horizontal,4,3,2
Data.b #Horizontal,4,1,2
Data.b #Horizontal,3,0,3
Data.b #Vertical,3,1,3
Data.b #Vertical,2,0,2
Data.b #Maitre,1,2,2
Data.b #Vertical,0,1,2
Data.b #Vertical,1,3,2
Data.b #Vertical,0,4,2
Data.b #Horizontal,1,5,3
Data.b #Horizontal,2,4,2
;-Niveau23:
Data.b #Horizontal,2,5,3
Data.b #Horizontal,4,4,2
Data.b #Horizontal,4,3,2
Data.b #Vertical,3,3,2
Data.b #Vertical,2,3,2
Data.b #Vertical,2,1,2
Data.b #Maitre,3,2,2
Data.b #Horizontal,3,1,2
Data.b #Horizontal,2,0,3
Data.b #Vertical,5,0,3
;-Niveau24:
Data.b #Horizontal,0,5,2
Data.b #Horizontal,0,4,3
Data.b #Horizontal,1,3,2
Data.b #Vertical,0,2,2
Data.b #Vertical,1,1,2
Data.b #Maitre,2,2,2
Data.b #Vertical,2,0,2
Data.b #Horizontal,3,0,2
Data.b #Vertical,4,4,2
Data.b #Vertical,4,2,2
;-Niveau25:
Data.b #Horizontal,4,5,2
Data.b #Horizontal,4,4,2
Data.b #Vertical,5,1,3
Data.b #Vertical,4,2,2
Data.b #Horizontal,4,0,2
Data.b #Horizontal,0,0,2
Data.b #Horizontal,0,1,2
Data.b #Vertical,2,0,2
Data.b #Maitre,1,2,2
Data.b #Vertical,0,2,3
Data.b #Vertical,1,4,2
Data.b #Horizontal,1,3,3
Data.b #Vertical,3,4,2
;-Niveau26:
Data.b #Vertical,5,4,2
Data.b #Vertical,5,2,2
Data.b #Horizontal,3,0,3
Data.b #Vertical,4,1,3
Data.b #Vertical,3,1,2
Data.b #Horizontal,1,3,3
Data.b #Maitre,1,2,2
Data.b #Vertical,1,0,2
Data.b #Vertical,0,1,2
Data.b #Vertical,0,3,2
Data.b #Vertical,2,4,2
Data.b #Horizontal,3,5,2
;-Niveau27:
Data.b #Horizontal,3,5,3
Data.b #Vertical,5,2,3
Data.b #Horizontal,3,3,2
Data.b #Vertical,2,4,2
Data.b #Vertical,2,2,2
Data.b #Maitre,0,2,2
Data.b #Vertical,0,0,2
Data.b #Horizontal,1,0,2
Data.b #Horizontal,1,1,2
Data.b #Vertical,3,0,3
;-Niveau28:
Data.b #Vertical,5,3,3
Data.b #Horizontal,4,1,2
Data.b #Vertical,3,0,2
Data.b #Horizontal,0,0,3
Data.b #Vertical,2,1,3
Data.b #Maitre,0,2,2
Data.b #Vertical,0,3,2
Data.b #Vertical,1,3,2
Data.b #Horizontal,0,5,2
Data.b #Horizontal,2,5,2
Data.b #Horizontal,2,4,3
Data.b #Horizontal,3,3,2
;-Niveau29:
Data.b #Vertical,5,4,2
Data.b #Vertical,5,2,2
Data.b #Vertical,4,0,3
Data.b #Horizontal,3,3,2
Data.b #Vertical,3,4,2
Data.b #Horizontal,0,5,3
Data.b #Vertical,0,3,2
Data.b #Horizontal,1,4,2
Data.b #Horizontal,1,3,2
Data.b #Maitre,0,2,2
Data.b #Vertical,2,1,2
Data.b #Horizontal,0,0,3
;-Niveau30:
Data.b #Vertical,5,3,3
Data.b #Horizontal,3,0,3
Data.b #Vertical,3,1,2
Data.b #Vertical,2,0,2
Data.b #Maitre,1,2,2
Data.b #Vertical,0,0,3
Data.b #Horizontal,0,3,2
Data.b #Horizontal,2,3,2
Data.b #Horizontal,2,5,2
Data.b #Horizontal,0,5,2
;-Niveau31:
Data.b #Horizontal,3,5,3
Data.b #Vertical,5,2,3
Data.b #Horizontal,4,1,2
Data.b #Horizontal,3,0,3
Data.b #Horizontal,0,0,2
Data.b #Vertical,3,1,2
Data.b #Horizontal,3,3,2
Data.b #Vertical,2,3,3
Data.b #Maitre,1,2,2
Data.b #Vertical,0,2,2
Data.b #Horizontal,0,4,2
;-Niveau32:
Data.b #Vertical,5,3,3
Data.b #Horizontal,4,0,2
Data.b #Vertical,3,0,2
Data.b #Vertical,2,0,3
Data.b #Horizontal,0,0,2
Data.b #Maitre,0,2,2
Data.b #Vertical,0,3,2
Data.b #Horizontal,0,5,2
Data.b #Horizontal,1,3,2
Data.b #Vertical,3,4,2
Data.b #Horizontal,3,3,2
;-Niveau33:
Data.b #Vertical,5,3,3
Data.b #Horizontal,3,3,2
Data.b #Vertical,4,4,2
Data.b #Vertical,3,4,2
Data.b #Horizontal,0,5,3
Data.b #Horizontal,1,4,2
Data.b #Horizontal,1,3,2
Data.b #Vertical,0,3,2
Data.b #Maitre,0,2,2
Data.b #Vertical,1,0,2
Data.b #Vertical,2,0,3
Data.b #Horizontal,4,0,2
;-Niveau34:
Data.b #Vertical,0,0,2
Data.b #Maitre,0,2,2
Data.b #Horizontal,0,3,3
Data.b #Vertical,2,4,2
Data.b #Horizontal,0,5,2
Data.b #Horizontal,3,5,2
Data.b #Horizontal,4,4,2
Data.b #Vertical,3,3,2
Data.b #Vertical,4,2,2
Data.b #Vertical,3,1,2
Data.b #Horizontal,3,0,3
Data.b #Vertical,5,1,3
;-Niveau35:
Data.b #Vertical,5,0,3
Data.b #Horizontal,3,0,2
Data.b #Vertical,3,1,2
Data.b #Vertical,2,0,3
Data.b #Maitre,0,2,2
Data.b #Vertical,0,3,2
Data.b #Horizontal,0,5,2
Data.b #Horizontal,1,4,2
Data.b #Vertical,3,4,2
Data.b #Vertical,4,4,2
Data.b #Horizontal,1,3,3
;-Niveau36:
Data.b #Horizontal,4,0,2
Data.b #Vertical,5,1,3
Data.b #Horizontal,4,4,2
Data.b #Vertical,3,3,2
Data.b #Horizontal,0,5,2
Data.b #Vertical,2,4,2
Data.b #Horizontal,0,3,3
Data.b #Vertical,0,0,3
Data.b #Horizontal,1,0,3
Data.b #Vertical,1,1,2
Data.b #Horizontal,2,1,2
Data.b #Maitre,2,2,2
;-Niveau37:
Data.b #Horizontal,4,5,2
Data.b #Horizontal,4,4,2
Data.b #Vertical,5,1,3
Data.b #Vertical,4,1,3
Data.b #Horizontal,4,0,2
Data.b #Vertical,3,4,2
Data.b #Horizontal,0,5,2
Data.b #Vertical,0,2,3
Data.b #Horizontal,0,0,2
Data.b #Horizontal,0,1,2
Data.b #Vertical,2,0,2
Data.b #Maitre,1,2,2
Data.b #Horizontal,1,3,3
;-Niveau38:
Data.b #Horizontal,3,5,3
Data.b #Vertical,5,2,3
Data.b #Horizontal,3,0,3
Data.b #Vertical,3,1,2
Data.b #Vertical,0,0,2
Data.b #Maitre,0,2,2
Data.b #Horizontal,1,1,2
Data.b #Vertical,2,2,2
Data.b #Vertical,2,4,2
Data.b #Horizontal,3,3,2
Data.b #Horizontal,3,4,2
;-Niveau39:
Data.b #Vertical,5,2,3
Data.b #Horizontal,3,0,3
Data.b #Vertical,2,0,2
Data.b #Vertical,2,2,2
Data.b #Vertical,3,1,2
Data.b #Horizontal,3,3,2
Data.b #Vertical,0,4,2
Data.b #Vertical,1,4,2
Data.b #Horizontal,2,5,2
Data.b #Horizontal,2,4,2
Data.b #Horizontal,0,3,2
Data.b #Maitre,0,2,2
;-Niveau40:
Data.b #Horizontal,0,5,2
Data.b #Vertical,2,4,2
Data.b #Horizontal,3,5,2
Data.b #Vertical,3,3,2
Data.b #Horizontal,4,4,2
Data.b #Vertical,5,1,3
Data.b #Vertical,4,0,2
Data.b #Maitre,3,2,2
Data.b #Vertical,2,1,2
Data.b #Vertical,1,1,2
Data.b #Horizontal,1,0,2
Data.b #Vertical,0,0,3
Data.b #Horizontal,0,3,3
EndDataSection
;}