Morpion (canvas)

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Morpion (canvas)

Message par Ar-S »

Suite au Tic Tac Toe de Venom j'ai voulu me faire une version avec Canvas.
Je viens juste de terminer la partie 1vs1 humain. Je me permets de le poster car je n'ai pas du tout procédé comme Venom.
Comme quoi en pb on a mille et une façons d'atteindre son but.

La prochaine étape c'est de pondre une IA.. J'ai commencé à lire quelques topics divers sur l'IA au morpion.
A suivre

Code : Tout sélectionner

; Morpion by Ar-S // Start : oct 2014
; Compilé en PB 5.31 x86 x64

; v02 - insersion des images en datas
  

; v01 - Creation de l'interface et interaction des boutons
; vérification de victoire à chaque tour.
; Affichage du joueur victorieux


UsePNGImageDecoder()

Declare DrawAction(cellule,forme,transp=255)
Declare GetCanvasCell()
Declare InitTable()
Declare CheckVictoire()

Macro SetImageID (Cellule, NumImage)
	
	Select Numimage
		Case #ROND
			etatcase(Cellule)\IDimage = Irond
			etatcase(Cellule)\val = -3
			etatcase(Cellule)\Clicable = #False
		Case #CROIX
			etatcase(Cellule)\IDimage = Icroix
			etatcase(Cellule)\val = 3
			etatcase(Cellule)\Clicable = #False
		Case #VIDE
			etatcase(Cellule)\IDimage = Ivide
			etatcase(Cellule)\val = 0
			etatcase(Cellule)\Clicable = #True
	EndSelect

EndMacro


; * //////////////////////////////////////////////////////////////////////////////////////////////////////////
;- * Initialisation *************************************************************
; * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Enumeration Fenetre
#ARS
EndEnumeration

Enumeration Gadgets
#C
#BT
#INFO
#BT_START_P
#BT_START_IA
#BT_START
EndEnumeration

Enumeration Images
#Ifull
#Icroix
#Irond
#Ivide
EndEnumeration

#ROND = 2
#CROIX = 1
#VIDE = 0

Global.b EtatPartie,ia, humain
Global Icroix, Irond, Ivide, Xm, Ym, Symb


; * //////////////////////////////////////////////////////////////////////////////////////////////////////////
;- ** Créations des images *************************************************************
; * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

	ImageFull = CatchImage(#IFull, ?Spritesheet_S)
	Icroix = GrabImage(#IFull, #Icroix,0,0,100,100)
	Irond = GrabImage(#IFull, #Irond,100,0,100,100)
	Ivide = GrabImage(#IFull, #Ivide,200,0,100,100)

	FreeImage(#IFull)
; ************ -------------------------------------------------------------------------------------------



; * //////////////////////////////////////////////////////////////////////////////////////////////////////////
;- ** Initialisation des Structures et Global ***********************************************
; * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Structure EtatCase
	image.b
	val.i 
	IDimage.i
	Xcase.i
	Ycase.i
	Clicable.b
EndStructure

Structure J
	symbole.b
	iAData.s
	jData.s
EndStructure

Global Dim etatcase.etatcase(8) ; 9 cases du jeu
Global Dim j.j(1) ; 2 joueurs (joueur + ia)

; remplissage des données des joueurs
humain = 0
ia = 1

j(0)\symbole = #CROIX
j(0)\jData = "000000000"
j(0)\iAData = "000000000"

j(1)\symbole = #ROND
j(1)\jData = "000000000"
j(1)\iAData = "000000000"
; ************ -------------------------------------------------------------------------------------------





; * //////////////////////////////////////////////////////////////////////////////////////////////////////////
;- * ** PROCEDURES **********************************
; * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

; Gestion de l'état des buttongadget()
Procedure SetButtonState(EtatBouton)
	If EtatBouton = 0 
    	DisableGadget(#BT_START_P, 0)
    	DisableGadget(#BT_START_IA, 0)
    	DisableGadget(#BT_START, 1)
    	EtatBouton = 1
    ElseIf EtatBouton = 1
		DisableGadget(#BT_START_P, 1)
    	DisableGadget(#BT_START_IA, 1)
    	DisableGadget(#BT_START, 0)
    	EtatBouton = 0
   		
    EndIf	
    
    ProcedureReturn EtatBouton
EndProcedure


; Dessin du symbole dans le canvas
; La numérotation des cellules va de 0 à 8 pour être en phase avec le tableau "etatcase"
Procedure DrawAction(cellule,forme,transp=255)

	StartDrawing(CanvasOutput(#C))
		SetImageID(cellule, forme) 
		DrawAlphaImage(etatcase(cellule)\IDimage, etatcase(cellule)\Xcase, etatcase(cellule)\Ycase,transp) 
		Select forme
			Case #CROIX
				etatcase(Cellule)\val = 3
			Case #ROND
				etatcase(Cellule)\val = -3
			Case #VIDE
				etatcase(Cellule)\val = 0	
		EndSelect		
	StopDrawing()

EndProcedure



; Récupération des coord de la souris pour connaître la cellule survollée
Procedure GetCanvasCell()

	Xm = GetGadgetAttribute(#C, #PB_Canvas_MouseX)
	Ym = GetGadgetAttribute(#C, #PB_Canvas_MouseY)
	
	 ; Debug "Coord : " + Xm + " x " + Ym
	 
	 If Xm > -1 And Xm < 101
	 	If Ym < 101
	 		CelluleHover = 0
	 	ElseIf Ym > 100 And Ym < 201
	 		CelluleHover = 3
	 	ElseIf Ym > 200
	 		CelluleHover = 6
	 	EndIf
	
	ElseIf Xm > 100 And Xm < 201
		If Ym < 101
	 		CelluleHover = 1
	 	ElseIf Ym > 100 And Ym < 201
	 		CelluleHover = 4
	 	ElseIf Ym > 200
	 		CelluleHover = 7
	 	EndIf
	
	ElseIf Xm > 200 And Xm < 301
		If Ym < 101
	 		CelluleHover = 2
	 	ElseIf Ym > 100 And Ym < 201
	 		CelluleHover = 5
	 	ElseIf Ym > 200
	 		CelluleHover = 8
	 	EndIf
	
	EndIf
	
	If EtatPartie = 1
	If etatcase(CelluleHover)\Clicable = #True
	 	SetGadgetAttribute(#C, #PB_Canvas_Cursor, #PB_Cursor_Hand)
	 	Else
	 	SetGadgetAttribute(#C, #PB_Canvas_Cursor, #PB_Cursor_Denied)
	 EndIf
	 Else
	 SetGadgetAttribute(#C, #PB_Canvas_Cursor, #PB_Cursor_Default)
	EndIf 
	 
	 Debug "cellule " + CelluleHover
	 ProcedureReturn CelluleHover
	 
EndProcedure

Procedure InitTable()
; * //////////////////////////////////////////////////////////////////////////////////////////////////////////
; ************ Initialisation du tableau pour indiquer les coords et l'etat des 9 cases ************
; * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
i=0
SetGadgetColor(#info,#PB_Gadget_BackColor, $FFFFFF)
For CY = 0 To 2
	For CX = 0 To 2

	SetImageID (i, #VIDE)
	etatCase(i)\Xcase = CX * 100
	etatCase(i)\Ycase = CY * 100
	etatcase(i)\Clicable = #True
	
;	Debug "Tableau (case) : " + i  +" Coord : " + etatCase(i)\Xcase + "-" + etatCase(i)\Ycase
	
	i+1
	
	Next
Next	

StartDrawing(CanvasOutput(#C))
	For i = 0 To 8
		DrawImage(etatcase(i)\IDimage, etatcase(i)\Xcase, etatcase(i)\Ycase) 
	Next 
StopDrawing()
	
; ************ -------------------------------------------------------------------------------------------
EndProcedure




Procedure CheckVictoire() 
	Protected  Jpts	
	
	; Calcule points joueur par ligne de victoire
		Jpts = 0
		Restore ConditionVictoire:
	; on vérifie s'il y a victoire
	For i = 1 To 8
		Read.b C1
		Read.b C2
		Read.b C3

		ValC1 = etatcase(C1)\val
		ValC2 = etatcase(C2)\val
		ValC3 = etatcase(C3)\val
		
		jpts = ValC1 + ValC2 + ValC3
		
		If Jpts = 9 Or Jpts = -9
			Debug "Bonne combinaison cellules " +  c1 + c2 + c3
			For i = 0 To 8
			  DrawAction(i, #vide)
			Next
			
			DrawAction(C1, Symb)
			DrawAction(C2, Symb)		
			DrawAction(C3, Symb)
				
			ProcedureReturn 1
		EndIf
		
	Next
		
	ProcedureReturn 0
			
EndProcedure








; * //////////////////////////////////////////////////////////////////////////////////////////////////////////
;- * PROGRAMME *************************************************************
; * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\



	Hwnd = OpenWindow (#ARS, #PB_Ignore, #PB_Ignore, 300,362,"Morpion", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
	CanvasGadget(#C, 0, 0, 300, 300, #PB_Canvas_ClipMouse)
	StringGadget(#INFO, 0,301,300,20,"Morpion v1.0 - by Ar-S",#PB_String_ReadOnly|#ES_CENTER)
	ButtonGadget(#BT_START_P, 0,321,150,20,"Le joueur 1 : X commence")
	ButtonGadget(#BT_START_IA, 150,321,150,20,"Le joueur 2 : 0 commence")
	ButtonGadget(#BT_START, 0,341,300,20,"Nouvelle partie")
	
	DisableGadget(#BT_START_P,1)
	DisableGadget(#BT_START_IA,1)
	
	InitTable()
					

; * //////////////////////////////////////////////////////////////////////////////////////////////////////////
;- * ***boucle *************************************************************
; * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 Repeat
     Event = WaitWindowEvent(10)

     
     Select Event
     	Case #PB_Event_Gadget
     		Select EventGadget()
     			
     			;- Boutons Start
     			Case #BT_START
     				InitTable()
     				EtatB = SetButtonState(EtatB)
     				SetGadgetText(#info, "Qui va commencer ?")
     				
     			;- Boutons Start joueur 1
     			
     			Case #BT_START_P
     				EtatB = SetButtonState(EtatB)
     				EtatPartie = 1 : NumCoup = 0
     				SetGadgetText(#info, "Au joueur 1 de commencer !")
     				JOUEUR = humain
     				
     				     				
     			;- Boutons Start IA
     			Case #BT_START_IA
     				EtatB = SetButtonState(EtatB)
     				EtatPartie = 1 : NumCoup = 0
     				SetGadgetText(#info, "Au joueur 2 de commencer !")
     				JOUEUR = ia
     				
     				
     			;- Canvas
     			Case #C
     				Select EventType()
     					Case #PB_EventType_MouseMove
     						If EtatPartie = 1
     							Cellule = GetCanvasCell()
     						EndIf
     						
     					Case #PB_EventType_LeftClick
     						
     						; Si la partie est en cours
     						If EtatPartie = 1
     							
	     						If etatcase(GetCanvasCell())\Clicable = #True	;	Si la cellule est vide
									Symb = j(joueur)\symbole
	     							DrawAction(Cellule, Symb)
	     							
	     							NbrCoup+1
	     							     						
		     						
		     						; S'il y a victoire
		     						If  CheckVictoire() = 1 
		     							SetGadgetColor(#info,#PB_Gadget_BackColor, $00FF00)
		     							EtatPartie = 0
		     							NbrCoup = 0
		     							SetGadgetAttribute(#C, #PB_Canvas_Cursor, #PB_Cursor_Default)
		     							SetGadgetText(#info, Joueur$)
		     						
		     						; Si Maximum de coup joué sans victoire - Match nul			
		     						ElseIf Victoire = 0 And NbrCoup = 9
		     								
		     							EtatPartie = 0
		     							NbrCoup = 0
		     							SetGadgetAttribute(#C, #PB_Canvas_Cursor, #PB_Cursor_Default)
		     							SetGadgetColor(#info,#PB_Gadget_BackColor, $00FF00)
		     							SetGadgetText(#info, "Partie terminée - Match nul !")
		     							
		     						Else
		     						; Sinon on continue la partie
			     						If JOUEUR = humain 
			     							joueur = ia
			     							SetGadgetText(#info, "Au tour du joueur 2")
			     							Joueur$ = "Le joueur 2 à gagné !)" ; anticipation du texte si joueur adverse gagne
			     						Else
			     							joueur = humain 
			     							SetGadgetText(#info, "Au tour du joueur 1")
			     							Joueur$ = "Le joueur 1 à gagné !" ; anticipation du texte si joueur adverse gagne
			     						EndIf	
		     								
		     						EndIf
 							
	     							
	     							     						
	     						Else	; Si cellule déjà remplie

	     							SetGadgetText(#INFO, "Impossible de sélectionner cette case !")
		     							
		     					EndIf					
  						EndIf			

     						
     				EndSelect
     				
     				
     		EndSelect	
     	
                 
      Case #PB_Event_CloseWindow
      	End     
            
     EndSelect
   Until Event = #PB_Event_CloseWindow


	FreeImage(#PB_All)
	End
	

; * //////////////////////////////////////////////////////////////////////////////////////////////////////////
;- * Datas Section *************************************************************
; * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 DataSection
  
    ConditionVictoire:
      Data.b 0,1,2,3,4,5,6,7,8,0,3,6,1,4,7,2,5,8,0,4,8,2,4,6	; tous les cas de victoire par suite de 3
 
 	; Version développée pour comprendre
 	; Les numéros représentent la position des cellules allant de 0 à 8 (9 cellules)
 	
;       Data.b 0,1,2	; Horiz 1
;       Data.b 3,4,5	; Horiz 2
;       Data.b 6,7,8	; Horiz 3
;       Data.b 0,3,6	; Vert 1
;       Data.b 1,4,7	; Vert 2
;       Data.b 2,5,8	; Vert 3
;       Data 0,4,8		; Diag1
;       Data 2,4,6	; Diag2

	Spritesheet_S:
	Data.l $474E5089,$0A1A0A0D,$0D000000,$52444849,$2C010000,$64000000,$00000308,$CDD87C01,$00000064,$58457419,$666F5374,$72617774
	Data.l $64410065,$2065626F,$67616D49,$61655265,$C9717964,$00003C65,$4C500003,$3B3B4554,$DEFBD22C,$25222222,$DCBE2525,$9EC1ACBB
	Data.l $191A2222,$50501819,$B3D1BB3D,$0D65817C,$15150D0D,$40545415,$2C184412,$C4AD222C,$283535A3,$8B597573,$D1BA7493,$A3A4A4AD
	Data.l $CABBDDC1,$E0C5D0F1,$5D7B79BA,$B66F8D85,$0000B1D3,$839C9700,$C6CBECC9,$4545CEF0,$617E7B44,$1B707070,$B3A2151B,$8BAC9D91
	Data.l $0A244513,$A196090A,$4C4C4C82,$3287ACA4,$3C3C2532,$64838331,$835B5B5B,$62626C8A,$36363662,$0684A498,$54540506,$34343453
	Data.l $CE9CBEA9,$E0BBD5F5,$97B59DC0,$8B2E2E2E,$31316A8C,$CCEEC631,$926C6C6C,$9B919292,$123D097D,$CC383838,$9593D1F0,$57717073
	Data.l $A82B2B2B,$85858BB0,$28282884,$694A5C5C,$7876516A,$3E43435C,$62D4F5CA,$10105662,$3A4D4D0C,$5D7D7E7E,$3232465D,$C6E8C232
	Data.l $8B99BAA5,$FACF8B8B,$CFEFCADA,$619C9D9D,$59594962,$1E1E1E47,$2AA9CEBA,$EAC46A57,$5A716EC9,$6E303F3F,$1C1C546F,$B7E3CE1B
	Data.l $C02C2C2C,$1212BFE0,$B0CEB912,$4BD9F6D2,$1010384B,$96A7A410,$C9C4E6C1,$4E4EC7DD,$214E1E46,$AD4A5353,$663DACCB,$6D919137
	Data.l $8DD4F2CE,$C4B27B99,$6A7C7CA0,$46A8B7B4,$FACC3546,$4C6565D9,$3F516D6D,$CAC43E3F,$3E4D4DBC,$C7C7E9C3,$ECC4D0F1,$3D6D46CA
	Data.l $5E95B9AA,$9D99525E,$A9CCB27A,$9D374848,$5A597EA2,$C5E7C943,$BFD2F4CC,$6666C3E4,$1D25255A,$9CB4D8C0,$5A2E89A2,$6074732C
	Data.l $16171D1D,$0C0C1116,$6A86800B,$42586C6C,$CAB23642,$AED0B5A8,$CBB9DABB,$C9B0D6F7,$AECFB1A6,$864D6868,$C1A67290,$1F2828A2
	Data.l $8DA9C9B4,$E2CD7795,$4C6161CB,$C97D9691,$E5C5D2F3,$759998C5,$CE526B6A,$AA96C3EB,$B6D4BD8C,$07D6F3D0,$6A6A0707,$C1E5C654
	Data.l $AABADAB7,$CEB58FB4,$D7F7CFAB,$6C98BDAF,$F8CC546D,$3A3C3CD7,$94BAD6C0,$78777798,$252E2E65,$67526867,$C6AF6767,$809E8FA4
	Data.l $293F4A4A,$BABA2957,$324343B2,$A4385427,$646494B7,$B1D4BF4D,$77C2E2C3,$FCD47677,$2C3737DF,$338FAF9F,$A89C305E,$D7F5CF87
	Data.l $CEACCBB6,$E9CFD8F9,$CCEDC3CF,$31CBECC2,$13132F5D,$1820200E,$9871908A,$5B5B9498,$828E8E45,$330F3A05,$30302C33,$2F393929
	Data.l $296A7474,$F9CB2929,$030303D8,$CEDCFBCF,$6363DAFB,$6787874B,$C0265325,$AEACC0E2,$607F7FA4,$BCA5C6B7,$C9B8B0C1,$425757A1
	Data.l $B8ABD6C5,$E9C4B4D6,$DAF8D0CD,$5F9CC9C0,$DFD0485F,$506666B1,$C8789587,$8EF5C2E1,$00009DD5,$4449A927,$DA785441,$4BBFD05C
	Data.l $80183103,$9C8770E1,$05FC5898,$53A09F2E,$B823A706,$D22913D4,$E0822EC3,$7A0A52E0,$874E1B94,$52AE0BFE,$44F45A38,$11054ED7
	Data.l $11051532,$D051DDC1,$C1122825,$F8B883B1,$E295ED25,$EF72E10D,$A91C8493,$69E8D495,$B050B1DB,$EC6A6A9F,$151EA521,$9A638B32
	Data.l $A09B4779,$7CB377F9,$8693BEBB,$1E640A8F,$1289B796,$DC893C8B,$7F9A257A,$3AF8806F,$3A184E63,$05459773,$63210620,$3440A20D
	Data.l $FDF42893,$C3AF07D6,$09CC94BE,$E1CAB5FC,$4D4D321B,$275E2208,$A60FD166,$F133E356,$EE0049D2,$018334D9,$3E35C120,$6C40C306
	Data.l $7B4F4B79,$35EF8B21,$0C3578CE,$996CA702,$04D16E66,$9EF440CB,$E8CBAEAB,$7EE0999D,$DBED5B8E,$30DB1000,$2E9D1760,$16CD198F
	Data.l $8B280906,$A40C87A7,$A54D9609,$97043620,$DE79EED9,$F0CE4BF8,$56CB4927,$86EE7352,$E55F54D6,$C47675ED,$59918DCC,$25ABAE85
	Data.l $770E9EAC,$0C63D1BB,$85435124,$D9EF04EE,$3573C099,$338C03E9,$F474ED20,$F8CD8E2E,$207D7BF0,$13FB1FE1,$11C70C40,$8E07CBF1
	Data.l $C73E476D,$A180E847,$B1B37B2B,$CE464E7A,$FBBD9C8C,$FFCD9180,$ABB774AA,$B23037B8,$24C25E65,$C8330EDC,$83A97764,$00A27AE3
	Data.l $25A3AE30,$F07D71C1,$28114F35,$1912C01C,$320C56EA,$A0D9D932,$96BDF6A8,$A268F193,$99AA3410,$7C81A52E,$39034907,$32554019
	Data.l $6EEC81D9,$293699BE,$82BD1E33,$330734C7,$49C0CA24,$95480660,$93E0604C,$CF44604C,$4446B470,$66240C74,$A20029C1,$0258264A
	Data.l $F833CF14,$2CF111A2,$00488324,$04775510,$A3024E38,$2D63B379,$CA579A22,$337FE220,$11C05548,$938E1919,$1F8DD59B,$5963C335
	Data.l $862220F9,$AA818DD4,$6C413A02,$8D2F938E,$03B9BD1F,$46E4B293,$AAA0708A,$E05A6800,$F1C60248,$4E10CD8B,$48CDF4F5,$0192F411
	Data.l $D9441262,$AA979923,$7E918127,$0CBA72C7,$4010600A,$80F839B0,$BAC08CC4,$68326CAF,$18802000,$0576478E,$E4646464,$3198CF70
	Data.l $3B9B9B83,$D6278327,$F9D16F73,$2D401586,$9E0940EA,$FE3B7F27,$FB3AC85F,$4809E636,$EA23CEC2,$4D024411,$98025007,$BAFBB3CD
	Data.l $3CDCBF36,$3D878723,$79D80816,$2DA7D472,$187ED65F,$7336C094,$75FB3CFC,$2DC24422,$A7DCDAE6,$600A9E3C,$512F9789,$0067A875
	Data.l $3C99C025,$4076677B,$932C4F0E,$69A98D9B,$83939588,$948CFF00,$730F40BD,$A19DAABC,$64F0908E,$18F7EBFE,$D94E0124,$19B112C8
	Data.l $D01D40EA,$1CED9E2C,$95AA7208,$E4C2A1A9,$ECCC63CC,$1E99B833,$059EEB19,$CDCBC546,$27091039,$662B5343,$265E014F,$95408E68
	Data.l $8060E900,$6E0718CA,$6149E40A,$59CB2BDE,$4C036A60,$1E7833C5,$874DFB05,$30067D46,$1A98DB95,$9B982482,$3E729093,$07500492
	Data.l $38C65C03,$E103E7F0,$DD3DB365,$339ED2D2,$E1C8CCF1,$8F045B13,$EF4019A1,$BC622540,$922A7391,$841C8CC4,$F4773259,$80BBC425
	Data.l $0C0292B1,$6E750CCE,$2468BEBE,$50DCC64D,$2842AF89,$A1211EB9,$EB370DCE,$6002D70E,$0B61C651,$39DCD94C,$CB72C0DC,$97DBE3F1
	Data.l $825EBA28,$C99C6624,$AE9E847E,$4075425E,$3AE00ACD,$38C82D02,$BF1A4F9A,$47EE4204,$31B3ABCA,$CD271974,$0B30C1E4,$01D4012C
	Data.l $E4002B36,$39A3B826,$CA5E93E4,$2478CF18,$7BD3BD33,$CD96AA33,$67B95F1C,$A40B3360,$00AEE40F,$51131DC5,$81A6C145,$D5861AEA
	Data.l $E21077B5,$28363877,$289297A3,$A7CF8879,$1DA62273,$8E49CD1C,$2D77CF10,$C1C75969,$BBF811C1,$E21B4B89,$01669C4A,$7CBBE004
	Data.l $E3089A43,$C5DC7E38,$B14DBA4E,$25061122,$59609E67,$2C6CB2F3,$7B0B654A,$6F558B61,$90D640F4,$2B0BD6D1,$6485C156,$2E17C5FF
	Data.l $2AFA1B68,$17AEF463,$8264451D,$61252142,$5B41465B,$29C481C9,$0BE64504,$CF3DFA21,$FB776DDD,$F3DBBDE3,$9E79FBE5,$BEFCF6E7
	Data.l $D988E7BF,$D3C4B901,$F0CEFB3E,$90D2B2A3,$99720DC8,$D47881A7,$850D86C2,$A4D20E1A,$EFBEE76B,$16C12EE7,$FD0B1091,$C3F4FDFA
	Data.l $71EE6397,$F9E68412,$9826B223,$D820481D,$24ACC685,$0A3A3CF1,$4133F56A,$79D3F46A,$CA4945B4,$BF2FB6D8,$9C9C9BAC,$92BDBDAC
	Data.l $C749A71E,$F35C79FE,$102C0E85,$85A17676,$1F0E7855,$D0085239,$DC3304C1,$DF8CDD39,$F2EEF64A,$058D149E,$F2BB5FCA,$54380D84
	Data.l $383B3141,$AB900906,$625632B0,$4140B482,$81287835,$51F1AE1E,$7962C883,$CC1FCCFF,$A6F0E409,$283098BA,$706D956B,$018E1958
	Data.l $C0392501,$5D90A062,$9710484E,$DD66B7B3,$2580F41B,$527EE57E,$721E0BCA,$ED24C5E9,$0272B031,$C0E070CD,$966003BD,$0102CC30
	Data.l $5138E8E2,$24481633,$6CE3B804,$FA849CF9,$6B4705D0,$D5FBB93F,$8E47A0B0,$8722B049,$5DD8ADDA,$C698168D,$8D4C72E3,$425DA646
	Data.l $A94A8398,$E829B65A,$4742AB38,$11E5C387,$72521F56,$051B9CEE,$085950E4,$34C2B516,$D5C8D18E,$100A270E,$E6DDA959,$AAC08355
	Data.l $A324EFCF,$43E7AE07,$872028CA,$A46152C6,$7A644EE7,$C324A50A,$9E9A99C8,$CC5E079C,$9F1C56A9,$0DDB9BBD,$C0106371,$6CECB3A1
	Data.l $5C0A91BA,$B8703C88,$40AECE5C,$AD372138,$309EE934,$5858CB7E,$286951BA,$8E008335,$8EC10B1C,$FFF58E77,$287A77E8,$718854A4
	Data.l $855287A3,$376B38A8,$239CA8C3,$FF67B2CF,$E007741C,$491451F4,$5D793987,$A3771AF4,$D1F88209,$BCD6AA9C,$F0B43083,$668F7FC3
	Data.l $8405E7A1,$D93E1C00,$77416067,$F89884D5,$5C0E1CD5,$51E441DE,$F4D18B7D,$5CAE1665,$93906B56,$371890E4,$B2163107,$84A2CFE2
	Data.l $1E441DD6,$63D92AB5,$D0E38FF5,$248CC38F,$4CE255C9,$6122A841,$28B2AD66,$A10774B7,$A08F4EA3,$853043A4,$405BE0E3,$457CD666
	Data.l $90A4E02B,$DA44BDAF,$43420EAB,$A1AA2D0D,$DC3C6189,$F926E016,$21D45BDA,$32EAE932,$58D143AD,$08E6EA4A,$E6C70DA7,$98EDC6B6
	Data.l $A151DB15,$7BFC7A14,$5A23A533,$BEA92967,$AA372E45,$357424C2,$38164EE9,$A949DD2C,$2CABDC4C,$C338F940,$E8F18628,$67BEE596
	Data.l $0EC5AFBE,$5CBE15F9,$6581E0EB,$B43E155E,$FB860067,$9AAD7BA6,$755CCFCF,$41BF2DF1,$2509921B,$0AE3E435,$5B0C1146,$B5E2AB12
	Data.l $514AAAA4,$DE0C73DB,$8C5D5580,$B7DCD802,$C92D7501,$08CDF109,$BFDB47B4,$E37C50B6,$6D1328F6,$F1895C23,$7D2DFD6C,$757FAC67
	Data.l $C9CF6CE2,$A7F68CA6,$17FD6796,$8FB33380,$E38CE269,$B6CED1F8,$DC5617DA,$A234CC46,$A89D5DD5,$2273B383,$EC8514C6,$EA21DD04
	Data.l $D48494DC,$324B4166,$B93A18EB,$365D3985,$14ECB21B,$318D128F,$9238952C,$70D961FD,$1641320E,$C821A1D3,$EB58FF32,$6B8189D8
	Data.l $68FF3317,$F6688DB2,$BEBB9E7B,$F9F437D1,$4F9210A3,$F3DFDFBF,$397BF3DC,$7CFF9B88,$5A9133ED,$B76D5A9D,$1D6AD5AB,$82C8875C
	Data.l $D0AFE1DF,$FA589560,$7EAC560B,$4D8EE96D,$B0727F7F,$660D20D1,$DDCEC231,$7AD9A73F,$9EC7E7AB,$DB8EFBCB,$650AD3EE,$8FFB788C
	Data.l $84145F77,$0D264499,$E6CE104C,$5762A6E2,$B02A01A0,$E0AB849B,$8927C2F5,$C174720A,$579485D5,$C776B2DA,$1FEF83B1,$3BE55A73
	Data.l $37860888,$6D1D1F86,$09C9C9CA,$E9CE5646,$81AE952D,$FD103B5A,$18DF562B,$64937379,$6B32264B,$EEE80844,$3DE28E4D,$424F0766
	Data.l $40522EC7,$876151B8,$B038D418,$F000C87A,$FA7ADA5D,$0775A2F0,$11191CFE,$860D2522,$EDDE5B21,$0D85F060,$09C29A95,$A4A9528F
	Data.l $E7FB81E9,$2EAB3DF4,$0A7FBA85,$B5D5A84F,$DAC15174,$9884711B,$E5B50359,$05078112,$7CD7E393,$15E4CBB3,$650366A5,$C9028549
	Data.l $DD45E640,$81A1AE82,$3F97BE6F,$65ADB834,$8888EAC5,$34735557,$BECB7778,$0CDD2695,$6E174142,$B1B7D0DD,$ECEBC6CA,$42316593
	Data.l $43569672,$25E8A24B,$C0399E42,$63B097D8,$9CA128EE,$95C128AC,$5262A4AA,$74D12CA9,$CF19CFE5,$9695A9D5,$E2844902,$4F076FC7
	Data.l $DDF80E57,$616509A9,$5550D5CF,$C84629A1,$255CE2B6,$E9680A10,$4C06B191,$3017C744,$08ECD776,$5D08C834,$2297BA81,$2D2DDB54
	Data.l $BA6A2F9F,$074278F4,$1614E8C1,$BE26E22C,$C9D77E08,$EE92FEC1,$C9676264,$3FDCF07B,$DCF0BC18,$132D47B4,$969BECB1,$8D618C90
	Data.l $E4C849B8,$ECD9BE58,$B733A150,$E34265C3,$FD4F3412,$699D5F05,$1B76703A,$0588198D,$B735F889,$A4121F83,$B9A19594,$E0CA204C
	Data.l $71142763,$A3DCE285,$AD637ED0,$4656C132,$3711AA22,$4D636154,$AE956AE6,$4A10331E,$75361951,$041150FD,$5DDB8C03,$4611076F
	Data.l $479ED2FF,$C5AA489E,$590947E1,$C28A52C5,$96CFDD1F,$330AD68F,$227A53F3,$202441A2,$35FF28E8,$4C907357,$B6971ED0,$CAE675BC
	Data.l $F70E8FDC,$9A8AF743,$3AB46061,$D77D2041,$C572AB42,$E14173F8,$914A9FC7,$CB47D844,$8426B743,$2D2E89E4,$33106B21,$7D54CA10
	Data.l $831909A7,$75B2D67E,$D7B995D1,$5059950F,$2B415D53,$D806BAEC,$5550417E,$9335AE85,$E96A3249,$9D052E21,$99776128,$08371CE7
	Data.l $1A7C0AA9,$9220D242,$DD6C6410,$C99ED5CF,$FE6CDF43,$CEC16CED,$08C96912,$DF56B634,$205E50D1,$2F446879,$D05CE029,$03118AF5
	Data.l $4ECBD997,$9998CD21,$441AC092,$FB19040A,$E6EF5AE1,$940F834B,$F4D0B728,$2B4D24E4,$182B4425,$FF61DF5A,$9191A7F2,$508C51B2
	Data.l $B6F2D985,$2A42BDB4,$29106B02,$7D76A85B,$7FDF5F6F,$A251738F,$9C400E04,$15FDF0F2,$BB2CD30C,$DFDD4997,$4F1FBBE0,$6AB661F0
	Data.l $4E496D2C,$148D6045,$D13F44B6,$FFB43751,$47DD65DB,$AD5C799A,$35012AA4,$5B842A02,$B177E830,$7569FD7B,$D78204C8,$E96D95B3
	Data.l $B020A56D,$302D9246,$F3E4EF35,$F1491CAD,$744E77D5,$4F217741,$F088F5BF,$9582DD7A,$0F2D9578,$E2A1D064,$D595AE08,$9ADA333B
	Data.l $198D6049,$988644B6,$E6143757,$D18152BC,$E5D93B2C,$1B06876B,$50047B95,$CEA60880,$991F5EA9,$0C13074D,$A148E4F1,$78AD9B35
	Data.l $B048D242,$1AED4C85,$6FA2E71A,$D831906D,$950A76B1,$87E0007D,$95A81056,$E416A6F7,$A075598A,$BCD4F053,$B3080AE1,$642115B0
	Data.l $605B388D,$45DD496A,$CB84BE38,$47CD8C82,$04A6E4C6,$89242D6C,$1E797DE5,$E88C9B2A,$3427C2E5,$B696662A,$824F9D22,$9D19912D
	Data.l $9C7E7757,$301C3A4B,$BE71BC36,$02945DAD,$9216B642,$56A7F3A3,$2A2CC919,$F7F4EE64,$CED49E2E,$D36456DA,$A9B0B6A2,$4A5C358B
	Data.l $BBAC6425,$0D83190B,$C508B120,$A1775C7D,$F0CDE546,$FAEF14F5,$A1918D60,$B6F66264,$05B60690,$3C9C96A6,$0DA5CE35,$86680A9F
	Data.l $263B484F,$33399DCA,$7175355A,$7EA643DC,$E55244C4,$67DEBF5A,$3E2D0742,$804C2D9D,$2EAA642D,$D8D92993,$90F78DEE,$CC0B68B1
	Data.l $6C2F3B18,$4C7072AF,$55AA70D2,$AFB7A6D9,$A7E499B1,$C16DA9EF,$8C656514,$9F9D764B,$283DB2E6,$BB8B1DD1,$D6DE5EEE,$DDDD8A79
	Data.l $037221A9,$61867EED,$C7BCEDFC,$A77ADCD8,$13D9A3BB,$B62CFB73,$7A7E0E1E,$29BB26B5,$787E98C9,$C258C771,$EFCA089B,$782EB5F1
	Data.l $14D4F17D,$9F97AD2B,$A6037D84,$167DB384,$3634BF5B,$B30834DE,$E367565C,$2FC96D67,$8306AD65,$D8DB66F3,$0F6DEFD8,$F26B069D
	Data.l $115ED43F,$2FFD769E,$1F66EB00,$8671C4DC,$2C648D71,$9A90BE81,$7623E19A,$2A1A9288,$4944621B,$B63247F1,$43611AB1,$10DC60CF
	Data.l $C6B22950,$30654521,$1CA92685,$184C0928,$3128969B,$84312896,$4D0D0F50,$F9A4401D,$49113430,$A240A4A1,$22D0ED32,$63C84613
	Data.l $DB97C49F,$1EA664D1,$7777DDA6,$DF3BA4EF,$FD53B649,$EFCFC7AD,$FBBB5776,$F159EF3E,$8916B9D9,$C7CC9CCE,$6E71D2D0,$6549848D
	Data.l $90C9C425,$A9FD4B28,$5AC66335,$FD3CD8A3,$53DD11BA,$DE0B2375,$55E0B475,$B64BCBD9,$E73F9ECD,$789FCFB1,$4E57CFEA,$6BE5C6DC
	Data.l $E540AF21,$2DBFB1A0,$9399D6F9,$EB0DEF27,$4AE8FDBD,$FC78A69E,$25DE6FA9,$4A385893,$EC50AC0F,$6B53903C,$9CE4308C,$FE35B5C4
	Data.l $83D75290,$53B74C8B,$73448CD5,$EEE2793E,$82FDBF95,$2D41D554,$8BBAE855,$DECB9B56,$C7E578BB,$E2717C5F,$68FAFFBF,$61EDBDE6
	Data.l $E6289395,$169DDAE3,$9322BCFB,$7450A707,$D79D3CF4,$EFE3F313,$F4F0EAA6,$78521C42,$6AB9AAB7,$FE5F27F6,$EFBFC4F6,$C6C92A1A
	Data.l $36AB0704,$DD6EF3E2,$F5A82795,$BA9C3FAB,$46E7DFBA,$6320540A,$61D3BA17,$5E0F6645,$7A8430A1,$02359711,$80FA3747,$96BF8024
	Data.l $545A68F6,$374B380F,$FEABCDCE,$938F97F9,$AB9F020D,$D3574EDA,$9FC41F7B,$AB7ED4BC,$7D17A9AE,$BBC5CC9A,$AF1306F2,$DCC7D4CE
	Data.l $472818A8,$B2D8FC43,$69A3441F,$0F467127,$0CA8A15E,$7BA7AE20,$C61C0C62,$0F171B36,$6900F970,$CA02A05D,$F8F7BFDD,$FB2C9FCA
	Data.l $B9FD197C,$DD332FA3,$8D1FDBBB,$5BAF694F,$551935EC,$C40FB850,$AE2ECFFA,$789155DB,$AE7F66BF,$3D2CAD5A,$83CE7B3D,$89390529
	Data.l $F3203D65,$94450AA7,$D09A840D,$36B48578,$EE0AA596,$A274EB16,$A2C3AA35,$C4DEE848,$CCAFA3FC,$B4C1E479,$D5E6BE5D,$1EF6A9F8
	Data.l $321611AF,$8E9D2855,$8B93D9F0,$A23A9E96,$9761D6E9,$20BD0534,$21A078C8,$380A70F4,$072B807C,$054140B8,$C2AFDAF8,$FC8805B1
	Data.l $F95D55A1,$5B6D36D3,$EE11FF32,$A18A23D9,$E67DF8EA,$589D3EF3,$AD9D8AA1,$08D134F9,$3CB28599,$0833E0A5,$85CA0F19,$73547015
	Data.l $CA104C5C,$385B1A70,$66E6F6EC,$01C07DBB,$C6FB85A1,$7D8AAE85,$928E1DFB,$4770E607,$1E2CABB5,$F46DDF6F,$AA14247B,$128BC5FE
	Data.l $2C872FAF,$58F05785,$B2381E32,$41585C41,$EB88106E,$2C6D4E4E,$4816A7C2,$4814C381,$472A1C53,$FCAEC9D1,$9D4EAE7D,$367A7ED3
	Data.l $8B840931,$6D2DF1E3,$85695A9D,$4E29A632,$56EC91BC,$ADFC14A7,$74E15A45,$5875AE13,$945BEE41,$A6D11ACB,$481BCA49,$BE5A5BAD
	Data.l $F933EF64,$025BF773,$5890A610,$FBAC6828,$F2E65E20,$C5784D0B,$DF694A80,$CBF89C5E,$52B55CF6,$2AC9241C,$812444A0,$B1241F0D
	Data.l $A3CC2B01,$A878CFD5,$3A9A19A4,$DAAA4738,$FCC4F1F8,$5A7D6D6B,$FB6E28F4,$FB613069,$BE32FC2E,$34847CE8,$20284705,$6C0E504D
	Data.l $E6B895BF,$B0855372,$605691C8,$5DC1E22E,$EF57099A,$66879D0D,$292A763C,$F9E9BD39,$6C8F2BE3,$AEA0E874,$5A70AB54,$884DB4C5
	Data.l $C23EAF7F,$74AAD2A6,$D2E50945,$26753ACF,$E4C956E6,$3415235B,$D48F02DF,$AD603E5D,$4265E341,$A43908BB,$5553C670,$F3D36DB5
	Data.l $BA3EAC7F,$8D5386FA,$8A59C51F,$A1C66C4C,$2CABBBF8,$3C388D2C,$76154542,$63395019,$6B2607C3,$0A21587C,$BC14E445,$81F2AA47
	Data.l $D394BAF1,$47D1D26B,$A613D121,$AAE5FFBA,$875AA501,$DA8F2FB6,$D5A04C81,$F1B21C5B,$4140B145,$2ADE205D,$C26A2732,$BEE8874E
	Data.l $7BC14195,$686417A4,$ABCEDEBC,$7C75A935,$B06784F2,$6FEFFEFA,$2DCE872B,$653A1684,$8B1ACA34,$30D43FE3,$414E1742,$29323442
	Data.l $21E34D2A,$BE294A8D,$70506606,$BBC10A1E,$03D5C059,$8740E85C,$A8455905,$9CA77C96,$E2488824,$F503468C,$DD43E317,$A0DE30AC
	Data.l $4A56BA0A,$EE1DC2B0,$4786D44D,$70506560,$1AAAC21E,$01CA5D71,$7B62182E,$4446C969,$0F2BDAF5,$E8D0A3C0,$CECA4209,$49BBF8A6
	Data.l $1442E446,$186B69E5,$AFFA7C29,$49536E1E,$0AB281A4,$20CC21EA,$10D0B8D2,$18FD9C37,$01FE158F,$F611900F,$D695A3A8,$4C8B128F
	Data.l $370B9136,$A4732429,$E66BB70A,$1203D58E,$05597977,$234710F5,$7E8DCB94,$7B25F629,$508CFF8F,$09DF9035,$3124611A,$49EFBFAC
	Data.l $5C881A51,$BEC0A4C8,$AA48778D,$753CDD08,$62552C26,$87882AC8,$EBC24838,$EC27A72B,$AFF72B56,$F47D589D,$E50DD3E5,$1B78E50D
	Data.l $C356E2E6,$5DDFD2F0,$5A2EC467,$9BDB1D12,$15E140E1,$A4C17D4A,$8D8992FD,$D23A429C,$61B55CA5,$9FAFFF5F,$1555FB41,$92F26B1F
	Data.l $73C49A96,$B7C8E0DE,$DA85C081,$DB750AF0,$959EBFB1,$1464920E,$EB845832,$ED7E8D40,$D91E57DF,$5380E0D4,$F31D14BE,$F45D649C
	Data.l $2EEB50DC,$02ED2B05,$8574FA0D,$4BA935CE,$FFE99063,$87882A4A,$B5A94854,$FBCEDF9A,$4795C5F6,$D3D3DBB6,$F2C92756,$5AB71DA3
	Data.l $67A498B7,$526D4745,$8AF3228A,$95B641A4,$1EC0A52C,$CB2E9152,$7FAACA28,$46BB68F5,$F0D65DC5,$ADC70D5D,$4B797248,$4CAB16EB
	Data.l $2B13AB3C,$2E96EA8A,$5692C396,$A4C90F60,$F43AD0B9,$5B3BEB4E,$BEE1ABCE,$70C085CD,$BD4B8351,$4D34162C,$514562B4,$963CA0DD
	Data.l $487B02A4,$77730561,$3FE53EBF,$C5EE07F9,$BF721EFC,$5F743245,$4F5AF7C7,$1C996AF4,$56BE3C16,$1737E8A8,$49603324,$0487B028
	Data.l $39373056,$9BDAE2A1,$BABE1B43,$42ED2460,$FDC69C2E,$B14768BE,$8FA2DAE4,$C22A141F,$431A3935,$AC4468C6,$02C69428,$5D731DAA
	Data.l $9DF326B9,$0C8D37E9,$83E05329,$B92469C3,$BDFD6E6D,$18CF9582,$7F4C15D3,$2CB682DD,$4150B349,$1160463C,$C6C4452A,$9BAB8158
	Data.l $141D55A1,$45C4A873,$5A179692,$3306F43F,$62BCFFE6,$61D66B9D,$9C00D657,$C621E11D,$77935442,$C5C053EC,$E0057293,$01510B9A
	Data.l $C491CD0E,$2533BFA0,$FF4B64C9,$F6DD4289,$646EB78F,$B159E5CF,$452B0887,$AD728335,$12015CC2,$5240DBE5,$E0E87AE9,$8FACBED6
	Data.l $5C87138F,$F77D41FD,$56376268,$E2C421E8,$FBA59066,$01BCD597,$9870D973,$60020101,$960DD775,$1F596C99,$6B0FE21F,$7BAF64ED
	Data.l $2B206954,$216010F0,$AA2905AA,$D7215714,$12416060,$51FEEC8D,$4D19868E,$FE7FC24B,$6EAB5AD0,$C0A52174,$4C4B1D23,$F3067385
	Data.l $0ABEB41E,$D9C0D121,$15056009,$DDCD06F3,$482B9AD9,$164BE851,$1BAEE7D4,$CD25736D,$982B0D23,$21505FAB,$755CC2A0,$BC60BA7B
	Data.l $5801AE68,$4B0BE76C,$64CF5B9F,$8E2889B7,$3C470E1D,$08AE6D63,$84D510B0,$E5151102,$C173CE9A,$CF9E8472,$633AC1BC,$8CCF9EB6
	Data.l $9FF27760,$D1817DF5,$3DE0CD63,$DAA02C78,$708A8231,$8C3E986D,$161C15DB,$277EB96B,$DB25B767,$87BC5A34,$D0A631CC,$5C00A633
	Data.l $58330588,$B8454120,$FC2E1056,$04982E9A,$59C1E643,$2E4648DE,$42352368,$231DA14A,$14D52D96,$9501F60E,$B808D24B,$B85CA45E
	Data.l $C26F09CD,$58379F9D,$4CD860AC,$7B55D654,$390AFBEA,$643A58C5,$53139B5C,$3CC9734D,$BA2F1E3E,$6C416DEE,$13345AC2,$E42AA75A
	Data.l $0D510BC7,$4FF1EA0F,$0ED63838,$194DBC19,$D7454ACD,$2242E617,$5F5246FA,$A9D6D3F2,$BACCBF2E,$C34C45B7,$0143CBAD,$DAC720BC
	Data.l $8771615C,$6426A80C,$535CC2A2,$E30D7457,$89A90E77,$D6C62D0D,$A573EB5B,$616C773A,$A5E7ABA7,$F24E8864,$513E7A78,$D731554C
	Data.l $63017195,$81CBE9AE,$F5B1338B,$6D6ACFD5,$83F9361C,$F378F8AC,$1D8FEA87,$A5B918D2,$982C2E37,$99698AC1,$EFBAE8A9,$C4DE2E02
	Data.l $FD6D77E6,$F5334BEE,$2DAD4EA6,$4B6505FD,$E0A67BC8,$1F8FAF59,$13F571C7,$058DF4FB,$7151B387,$63CD1EEB,$8C6584CA,$AE9767FA
	Data.l $6BDD7498,$9DA059F5,$BE2C44C8,$76B34B90,$26F46FCF,$356BF04B,$8D345AEE,$53B2D705,$7F7C79D1,$057E97D8,$C9C25A0E,$D839EC6F
	Data.l $5E957535,$51BDFF03,$FDAE49AF,$4985C1E9,$DEFA6E45,$CDAC1E31,$0A8E8D0F,$F0DCCD73,$52A5A686,$A62DB8B0,$FA7F9BFA,$2CE5DF03
	Data.l $AF5BD858,$1F8231F0,$76B078E8,$746FB8BE,$EF1E6454,$29573C2C,$5F11E05A,$7EBFABD8,$D6D36B61,$BC6B9737,$2025A30A,$C1E373FA
	Data.l $7979D8EA,$4ACE6DD4,$9B9DD5C3,$D91CAB3F,$DCB434E4,$F97AB8EE,$16B9C772,$D1FFE183,$FFD6FD7C,$DCE5E804,$B23A9AE3,$31577E38
	Data.l $1310C6A4,$455D16AB,$A068351B,$155AA6AC,$5F2F0963,$5B116188,$6E08F895,$F8A96151,$9681376C,$B8A8AF87,$5160916C,$52DB3511
	Data.l $D562DA2A,$8B1B6D16,$54B9F1B2,$2816DBAA,$14602D15,$F93F67CB,$7EB2E9F8,$DCEE6776,$0970DCC7,$97F3A009,$E5FDC87F,$B9CCE77C
	Data.l $B9CE7333,$8DBCE5C4,$CC6EB75B,$9C4FE54B,$7C6860F6,$6E6F5A7C,$BAAECF05,$47EBAE3C,$6A6DFCA3,$1E556B6A,$98261034,$535AAAF3
	Data.l $AE8CC953,$DC6CBF1B,$7D4F3BB8,$3873038C,$2143B7FC,$B9120C47,$8745A456,$4B6D3235,$C9936E67,$D123E781,$D1A50AC0,$D7BC021D
	Data.l $9DFE789B,$BFC7E351,$BE1FD2FC,$ECC6F179,$E5FF0757,$FDAD7FDD,$AD8DCDF4,$32EC1A3E,$1E0359C4,$522573F5,$7DB8927D,$DB6F845E
	Data.l $9B4DE0C3,$0F1F8FC2,$FC14DF0F,$E22A2DB0,$C3238954,$8128D010,$1ACEBFB5,$71FC6F33,$BDAF6BF6,$E0C964BA,$1716D0C1,$83B7DD1A
	Data.l $6EB441A3,$FAF10D8C,$3CD2713C,$9CDF3593,$419FA5AC,$F81593A5,$22CBD360,$844A28AE,$12096CA3,$1B9BE97A,$DFF9FF3F,$F4FDAE1F
	Data.l $01FF77C3,$382F16BD,$DA1AB115,$2DF203D5,$AAF89B52,$17C7702C,$FDACF6D7,$877E3527,$DAD7F806,$FB6DCF3D,$55764DAA,$F6B00A6C
	Data.l $0D70E9D5,$96C02734,$825A7F57,$E8D272C3,$0D5C1D91,$625527C2,$DC49AB2A,$2925700C,$EA5ACCEB,$A0F8E5B9,$E119F025,$0295134C
	Data.l $CD6E801F,$B4BF9C67,$7F9F97FD,$9B77DFFD,$AFF7FCDF,$05C09783,$24167CEE,$0B35A81F,$09DDB694,$2DAEB381,$D7F7F986,$F0BCE5CF
	Data.l $3B5DACD6,$D763338E,$9486B784,$DBB6DF46,$535C8FEF,$6F1156D3,$560896AA,$A68D4379,$2D9193E9,$581C2994,$EC4F4698,$6841A8E8
	Data.l $6B720534,$624D4552,$B2A4E258,$2D7E6524,$8785A879,$C0CA1535,$01855397,$600ECBB4,$4CDDE506,$D501434D,$FE777020,$F3DFB7F6
	Data.l $E5F61CDA,$3CFD3FAF,$CD6CF67B,$8ED64E1D,$DDD82E7C,$A4D2059B,$4359B6B4,$DF7FBF3E,$17D9F39E,$26FA1FC7,$CE2B983C,$C3D21530
	Data.l $E194BA60,$21357B98,$4CFC302A,$5EDDA962,$EA26B8F4,$493DCC41,$3259379D,$18DEBB01,$68F0EE53,$47687AA8,$1C020D47,$D7085544
	Data.l $935EA1A3,$B9564C2A,$54C55CB6,$0AD5E005,$AF7B5D68,$ADDD0662,$4818CA80,$0C002F5F,$0FDE331A,$F16724F9,$7FFB11AD,$CCCDF999
	Data.l $0D706F17,$140B7B21,$29AB7CDA,$91ADF02D,$2E86A1C0,$109811DB,$B6AFA19B,$3F43EDF6,$075F3D14,$58E72D6F,$E20C031B,$E1D184F6
	Data.l $3DBB6A95,$896F9B65,$272B9A49,$74CE7EE7,$50B814D2,$A3606A3A,$7550761B,$041A4E07,$7125DD99,$CA3CD425,$B107F2F1,$71222E4B
	Data.l $05051291,$001502A4,$76574BA9,$0602C8E8,$2C992952,$1AB7C96B,$335A0EAE,$FD656474,$C8EBEDCA,$C9D33918,$B5801010,$DF0E7B82
	Data.l $A9007B33,$A60566CF,$96950A3B,$798B147C,$7EC8C835,$7F14C037,$A2576DAA,$36389EDD,$C96011C2,$33BD71A7,$A9C34F8A,$3B53C519
	Data.l $AE2F3414,$BE574106,$BAF5DE50,$C4197F97,$606B60A5,$4A137AA8,$CFE9DE01,$8C8A6A69,$FB37826C,$8E855954,$5DE01A14,$A83C3567
	Data.l $647435BF,$4B92A0BF,$4C671AF7,$69D87D26,$B9B4A889,$65C0F6FA,$3C8DF560,$04969813,$952E84DD,$6201A572,$F0A16348,$4C9AE8C9
	Data.l $DF40F47B,$C40942D8,$9F0A1605,$C7968706,$B546AC76,$4C2E342B,$5F0A6083,$7C4AEF28,$2BBAE205,$4555A2D7,$4D12B06B,$08CA7491
	Data.l $41A1980E,$3EBA3D4D,$9E33AA73,$A8059FD4,$821437F6,$A1FB0C48,$7F8FE742,$575AF399,$F688EB69,$A9C06BE0,$08478486,$AD6605AB
	Data.l $BE8D7DC8,$1D0B1A73,$ED8FC109,$1BA303F6,$E93916F4,$B8341D5C,$75589CB0,$D17881A9,$589B05EE,$37020D58,$84AE40A4,$5C0286B8
	Data.l $188BD430,$EBCBA5DF,$AC161CA9,$0708593C,$0E9940AA,$68DE9A84,$FEFF5C2C,$8F166B07,$ED0FDCAC,$1DE58648,$E3C2E83A,$41C04331
	Data.l $5B68E944,$0B5D5006,$CC59B34E,$6E7D345A,$BC81CC6A,$5C65EF22,$B7603C08,$AB8993F7,$3479BD73,$B051689C,$31D0D13C,$B20A5195
	Data.l $20D18C71,$C4844BB8,$B1713635,$2448DA17,$2119B16B,$229D0763,$985BC985,$B8732656,$BB82C033,$88DF7734,$FE2F364F,$B012B0FB
	Data.l $1912C842,$8550C2E8,$40AC0435,$3099C243,$69C155E0,$B45ADCFA,$EEB339D4,$05B48342,$97BA6AE2,$B87024F1,$13D27B3D,$EDE75593
	Data.l $CB4BC1AC,$171C0D53,$5CE10766,$5D70825E,$A315DE87,$73579814,$952FA4A6,$99385E4F,$B540592E,$2DD7F337,$A21FDAF8,$0190BFAA
	Data.l $98EC9BE6,$8404E723,$90DA50C7,$D2B37296,$1037F811,$1BA476AB,$5BCB6B72,$B9D25A3A,$0DE5B206,$003E94D2,$14FAA9D7,$5CE801FB
	Data.l $1AB3B570,$4F72D06E,$23168743,$43A20ED7,$0B8D0975,$46A4AEC6,$50B600C1,$A00C3C95,$244C3D86,$F5A8FCF4,$3DFB7D7F,$47D6EA80
	Data.l $4E17D72B,$F754C3EF,$DEB81501,$12C04329,$1AEC1E24,$65F5FF79,$19A5626D,$F2A0E15D,$B16AB640,$16CA0D33,$91BE94C6,$14D978FA
	Data.l $73A3A3E3,$A61D16F5,$CF2E29D1,$62E75835,$5AF820ED,$BAEC50CD,$7F979BFE,$C4948C45,$4644A985,$1A1253B2,$08B8F60A,$119AD855
	Data.l $9A8FB6FB,$58D85B08,$231D1815,$52F02191,$57ACDE70,$109EDFEE,$4B6EC061,$E4D33698,$C94235CE,$F334252A,$8FAFAAA8,$7198D2CE
	Data.l $ACA2ABEA,$83D1608B,$0174893F,$3C1ABBAB,$6FBC1076,$77D71A11,$5C023170,$E6AF5603,$0ABC6155,$C17AFAA0,$DF0BF3BA,$37A855C0
	Data.l $7908692F,$F3E67A81,$8E3B39FB,$79FADC10,$8F2E576E,$4B191325,$E896B226,$2C2DDCFA,$E457E879,$0568525F,$5612E07F,$D83A3577
	Data.l $18127441,$2B802255,$B0F5EC62,$AE571021,$11BA00F7,$A841571B,$F61CDCBE,$17B788DC,$BA1F9BAC,$8052AB90,$A434981C,$991C4E5C
	Data.l $4F1D5800,$2DE5E423,$BA43C97C,$47556D3D,$4F06A84B,$74EBBCCE,$40F6C292,$ED2DD2BF,$7D3E9285,$4DD580BA,$883B670D,$5C7044CE
	Data.l $B45C28F3,$27DEB90A,$BF5FCE87,$94FAA000,$D47EB544,$7AEC89F9,$480BF587,$34094C04,$8CAB5544,$BF7C5F0D,$1E3CD768,$18CB4C56
	Data.l $4C6CF13D,$1B993859,$0298F055,$95049568,$D78FF4A6,$AB01B937,$764E1A5B,$908B9D10,$BE2262B8,$97B378FD,$171A05FF,$2EF86174
	Data.l $75F22701,$4805A80B,$129DE2A1,$D5E1DAB0,$6C22C89E,$F6FF721B,$8EA19936,$2D893FBF,$22356704,$6D3B97B1,$4AB1A607,$F55D3567
	Data.l $10AE2A2F,$71A39BDE,$34775603,$AE1076B8,$6B5C1844,$42EF68BD,$A45E0293,$3D7FB697,$562A39E2,$C89D0FCD,$989A546E,$29A11129
	Data.l $FAE4B081,$FB766DF4,$45B140A3,$29A5D2D4,$2DC3C4EC,$350B6536,$A93A1A38,$7DB86130,$AEE18952,$A5BAB05B,$B841DB81,$8D70A116
	Data.l $1837F8FD,$86AEC1EA,$38DBE954,$851F7E3F,$77BAFB6A,$C2C49142,$8EAECC19,$4ED81299,$25986F01,$ECCFC0E2,$9BB82045,$22985D55
	Data.l $75ED8AA2,$DC8491D8,$7868F368,$FD0DF45B,$88550F4B,$BB1DE003,$8F49A9DB,$883B7034,$C22303AE,$D58CDE85,$37F7817D,$FF7FAC05
	Data.l $616135A3,$CDF6426B,$E49B04BD,$3C835067,$87393563,$45CFD846,$B765991C,$5A13690F,$829A5D14,$C42C3C4F,$7C708EA3,$1AABDE1A
	Data.l $1B142E63,$521BB4B7,$30541E35,$DB81A478,$1813B841,$1EBC62D1,$42BFC876,$17AD5018,$51041A9E,$7E32B47D,$033044FE,$BED1E7CE
	Data.l $00D5915C,$D4526B56,$84FB76F3,$B13BA674,$662DC2EB,$D3198DAF,$52DBC341,$78D47B18,$AB4649EC,$921C93C6,$1D981A47,$4AF55B84
	Data.l $98D92E24,$6ABCC38F,$EDB74702,$F8B61358,$EB53A0D6,$2268CFCE,$25488BDB,$5F31346A,$7C44C109,$7B81C4F2,$34F0C68C,$37593BA9
	Data.l $D8FA14CC,$00C699DB,$947C4041,$38856A71,$FAD3C7CF,$3C35B705,$12E14585,$F91B6D46,$9EFF89CA,$767A19C8,$C2033810,$4BA03AEF
	Data.l $1CD90A34,$1BC85EF6,$5802FDDB,$E706C63F,$969B8D18,$9A6EB52A,$F615C742,$A35F8EA2,$3321C02E,$7FE2C9FA,$7CB8F1F4,$D60D6DC1
	Data.l $115DC20E,$F4202E58,$22A7F59D,$FF13EDFB,$D0A4F4D9,$75BD8AB2,$B8ED70EC,$0342B98A,$DD600253,$F464DF6C,$8ED51600,$E3AFB9C4
	Data.l $700FC8D7,$A39B1944,$F1F4DEE6,$AEEB953C,$BB876B06,$59E660B0,$F9FC20FF,$43139C9C,$4130BDCF,$46674426,$948F6BBA,$9FBA07A2
	Data.l $10386E65,$C11E73AC,$AEDCB7C2,$01EFF234,$C5968ACF,$BB960777,$EE1DAC1A,$04A802C1,$40FF6384,$4D6CFAB5,$522F8EF8,$3C871F4A
	Data.l $E1F35831,$B37B2735,$A800E74D,$44892E6F,$C2166AE8,$70FDDBCA,$D0B0A7B1,$79D397DC,$FC8D7E06,$3184716A,$98E3C12E,$6B0689E5
	Data.l $10B03B87,$B303FEAA,$628387D5,$389B7A4D,$F523CC6A,$36692DF0,$2516BC89,$09A4A88E,$EA2A79FB,$14E554FB,$E8E12AAC,$03D60021
	Data.l $15659BA9,$FCC08F1D,$56125A1A,$55465A71,$A97561B7,$35D1D981,$56ABDA2C,$BFDCA8AC,$D5ADC89B,$9BE1F36A,$E3F651F1,$5C02960F
	Data.l $DBDE055A,$92E1E74B,$E041A7D1,$FB86486F,$3F7A5B2C,$CCA6B1A3,$7F03AD8D,$1A2769CD,$BC4202C9,$BE3278DF,$03D35530,$3035AE58
	Data.l $4582BA3B,$CCBF5579,$AA2481EC,$089A5872,$63650970,$0387AAF6,$08B3165C,$FCD8E565,$44B09925,$1F2C141A,$52A0EC65,$AEDF21E3
	Data.l $37AEA536,$CC351DDE,$06EC5B12,$7BC27DBF,$E5843D3E,$C3B30342,$550C2C35,$CA8A8510,$DF5C40D1,$B842CDEE,$1551CA0A,$80405B38
	Data.l $9455DCBA,$811F1DC8,$39B67649,$CB81FC3A,$25574EE3,$44341DBA,$2CA152F9,$A143516B,$CF4EE7D5,$E06BF161,$0582B876,$D500A1B3
	Data.l $95D91594,$D71C2A38,$01EB8023,$DB3745C4,$240BAAA3,$696062A1,$F50D956A,$E02F66EA,$9E96A25A,$434C15AD,$DC563A41,$40A918CA
	Data.l $78B02BD3,$74763834,$25448B0E,$456FDFEE,$546761F6,$EA102E2C,$B8920EFD,$4F262A14,$553FA0AE,$E197FA80,$53BC135D,$FD1CD2BE
	Data.l $93ADBA6D,$6C8F1A2B,$F80A1A41,$5F468EFB,$BC580714,$2C16F4EF,$1DAE0D27,$51A2C19D,$E01F6665,$92E34543,$68D95C42,$97D02A31
	Data.l $81485419,$820284FE,$9B9052D5,$5CD9DB24,$EF22160A,$4B679FE5,$1728D485,$4ACD1781,$BD0E69BF,$6F757BC4,$9C34C2C2,$C587E0EC
	Data.l $805A157A,$08507D9D,$4202BAE1,$1A76A0FD,$8322B717,$630B0582,$9B8F5185,$ABDB82FD,$6E8B487B,$DF90287C,$E1FB2A4D,$C49B6ED8
	Data.l $77B9393B,$9654F161,$8E8B0A74,$C3EA9955,$B8E150AE,$EF30B2E2,$19CA4562,$D557BF58,$9BC35A02,$3A97EAFD,$B9BA2C25,$4AE40A52
	Data.l $00D56013,$BD456958,$8BCB8B0E,$69E083B6,$AA0AD6FF,$ABAC20C5,$5C1A832B,$6317C2A3,$07A5C40A,$385A5AB8,$218C0675,$8C4B5AAA
	Data.l $F47370EC,$8136238E,$4343D556,$1845E054,$D60D1513,$28BAD820,$A72C0A9E,$583E097A,$8068D508,$A83B80EA,$0F4AB838,$3170C20E
	Data.l $10DA60B9,$36D73695,$B9F44C6F,$D5A1327E,$0F30B3DC,$938EAA0F,$D5845BA5,$5C02DA82,$A2D0E9E3,$02C2E0ED,$AA00EAA8,$3B7ED97E
	Data.l $0A89B987,$7E298C5F,$6BFA2E38,$2D218C34,$4344F905,$4A7357BD,$EF3D52F0,$B75DC32B,$9349D6D2,$AF174E2A,$77959034,$6616194F
	Data.l $A10B0E07,$BD5D6102,$EF41A833,$2E0E2A36,$5C29EA18,$829DCD54,$DCA5A435,$5FA5312C,$EE1E6D29,$B40840DB,$6E45C2DD,$C7ED4C59
	Data.l $E10A2EB2,$359CAA6C,$A42C0E9E,$51A2C2C1,$5781AA65,$C30A8679,$8FCE28B5,$A16AA5C2,$4370C98A,$8A965C40,$C6CD9565,$84DDDF4A
	Data.l $47E81AC7,$8CD35402,$49361CD3,$274F1A27,$1A0D416E,$4A6A8516,$A081DFA6,$CC377D58,$F00796A0,$B4A515AE,$161DD177,$6D624A9C
	Data.l $1A88E11D,$D83C6CD8,$E1CF0ED6,$B7DC4F2A,$9D5B9CC0,$F358F4B4,$02B858B4,$BA7D3FB1,$040D68B0,$53558A8B,$D5588056,$AE38544D
	Data.l $1883ACCC,$58E2E72E,$85AA9FF0,$8D3263E9,$C5D2437B,$3B080B7A,$45BC6E2D,$E7344FC0,$FE8E6D4A,$145EF753,$944EACDB,$842C1D9F
	Data.l $3AA217CA,$2C5403DA,$EFB05F2E,$E34F5B3A,$F80860EA,$61AB724F,$91655069,$997D71F1,$95CCA6C3,$572A156B,$D685399B,$0610902C
	Data.l $F4715447,$043195A2,$38B68B3C,$606CF219,$2AAF1869,$162A29EE,$66F068D7,$18F171A4,$6E07CC02,$A834B312,$EE319F9F,$C39A6F8A
	Data.l $F92D2844,$9602AD66,$4CEF7349,$6C3966B4,$9F893156,$C3FBDC9C,$6F509934,$7455ABAD,$0467C570,$2753E34B,$D532A805,$02F58767
	Data.l $16BBCC2A,$D60FA8A5,$B52DEAC7,$644D77FC,$1C1A9200,$643642F3,$438FD519,$C20D6964,$2D511B24,$6AC35255,$84A52A55,$DC2496DE
	Data.l $F158617D,$86C77EF7,$BA92A401,$7C1F5E5A,$6F52B046,$58578126,$42DECEF6,$538AE385,$9BB61C1F,$68D1F2A8,$B55E5B3A,$41B54B72
	Data.l $D277D4BC,$A2C61586,$278BEFAC,$24454505,$44442424,$9597A424,$5FFACBA5,$5643F0DC,$2DB1DC51,$7BE06265,$33EB562E,$D5B79582
	Data.l $70FAAA7F,$43C2A26F,$C0DF9C7D,$1857787D,$E7923C6F,$8C5B095A,$EA2D3623,$1B45C9E8,$BEFDEF4E,$54A8A8B4,$C37A729D,$094149A2
	Data.l $0318E20D,$99D4B521,$67B5865D,$636AAB04,$627DB4DC,$B15157A2,$FE0BECFB,$84BAA7A7,$D5131345,$2B1605CA,$A486765C,$D62FB218
	Data.l $D513D064,$9D6E494A,$D140B6BC,$19E306D5,$B97E5AC1,$B795AAB5,$DDC7B3D5,$692B6499,$E5E5D55E,$571B7E6E,$B13E61A3,$57687F4B
	Data.l $E8CB66E3,$9FCBE5B8,$B8E6777A,$FF07FFE5,$213692D8,$0005FC77,$49000000,$AE444E45
	Data.b $42,$60,$82
	Spritesheet_E:
EndDataSection ;}

Dernière modification par Ar-S le mar. 28/oct./2014 20:53, modifié 3 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Morpion (canvas)

Message par Kwai chang caine »

Du beau boulot....ça farte :mrgreen:
Par contre un petit buguinet, enfin je pense..
J'ai fait commencer le joueur 1 et au moment de jouer pour le joueur 2, il me dit que c'est au tour du joueur 1 8O

Autrement c'est super joli
Merci pour le partage ARS 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: Morpion (canvas)

Message par majikeyric »

En 64 bit, on a une erreur à l'exécution

Code : Tout sélectionner

"Ligne 76 : le #image spécifé n'est pas initialisé"
le CatchImage() retourne 0. J'ai pas trop regardé pourquoi.
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Morpion (canvas)

Message par Ar-S »

Merci pour vos retours.
KCC, => corrigé merci
majikeyric => Corrigé merci
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Morpion (canvas)

Message par venom »

Fonctionne bien chez moi, effectivement c'est une autre façon de faire.
Bon courage pour l'IA






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Morpion (canvas)

Message par comtois »

J'avais un exemple avec IA. L'ia est reprise d'un tuto sur developpez.com, elle utilise le min max ou l'alpha beta.

http://herved25.free.fr/sources/morpion.zip

L'archive contient un exécutable et les fichiers sources.
Il y a 2 ou 3 lignes à adapter dans le source pour qu'il fonctionne avec la 5.31 (en gros suppression des commandes start3D() and co)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Répondre