PS : le debuggueur montre les cartes, et un openwindow decide de l'atout...
Code : Tout sélectionner
; belote - SPH(2025)
; pb 6.12LTS
;;;;;;;;;;;;;;;;;;;;;;;
InitSprite()
InitKeyboard()
InitMouse()
; Ouverture de la fenêtre
OpenWindow(0,0,0,600,100,"Choix",#PB_Window_ScreenCentered);|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,600,100,1,0,0)
Police = LoadFont(0, "Arial", 16)
Procedure clear()
Repeat ;- Gestion de la fenêtre
Event = WindowEvent()
Until Event = 0
EndProcedure
CreateSprite(0,40,40)
StartDrawing(SpriteOutput(0))
LineXY(0,0,30,20,RGB(255,255,0))
LineXY(20,30,30,20,RGB(255,255,0))
LineXY(20,30,0,0,RGB(255,255,0))
StopDrawing()
clear()
r=Random(65535)
;r=21053
RandomSeed(r)
Debug "random "+Str(r)
Debug "-"
Global Dim carte.w(32)
Global Dim carte_melange.w(32)
Global Dim carte_coupe.w(32)
Global Dim Points.w(32)
Global Dim ordre.w(32)
Global Dim carte$(3)
Global donneur, receveur
carte$(0)="Pique"
carte$(1)="Coeur"
carte$(2)="Trèfle"
carte$(3)="Carreau"
Global atout=Random(3) ;;; (de -1 à 3)
atout=-1
Procedure creation_cartes()
For i=1 To 4
For u=0 To 3
carte(i+u*8)=i+6
Next
For u=0 To 3
carte(i+4+u*8)=i
Next
Next
EndProcedure
creation_cartes() ;;; crée un jeu de cartes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
Procedure les_points()
For u=0 To 3
nb=-3
For i=1 To 3
points(i+u*8)=0
ordre(i+u*8)=nb
nb+1
Next
points(4+u*8)=10
ordre(4+u*8)=10
points(5+u*8)=11
ordre(5+u*8)=11
points(6+u*8)=2
ordre(6+u*8)=2
points(7+u*8)=3
ordre(7+u*8)=3
points(8+u*8)=4
ordre(8+u*8)=4
If atout=u
Points(3+u*8)=14
Points(6+u*8)=20
ordre(3+u*8)=14
ordre(6+u*8)=20
EndIf
Next
; For i=1 To 32
; Debug ordre(i)
; Next
; End
EndProcedure
les_points() ;;; attribut les points selon l'atout
;;##debug "=== Exemple de carte ==="
;carte=Random(31)+1
;;##debug "carte("+Str(carte)+") "+carte$((carte-1)/8)+" - "+Str(carte(carte))+" : "+Str(points(carte))+" pts"
Procedure melange_cartes()
For i=1 To 32
carte_melange(i)=i
Next
For i=1 To 32
u=Random(31)+1
Swap carte_melange(i),carte_melange(u)
Next
EndProcedure
melange_cartes() ;;; melange
;;;;;;;;;;;;;;;
Procedure coupe_cartes()
Debug "Tas de cartes coupé"
coupe=6+Random(20)
For i=1 To 32
carte_coupe(i)=carte_melange(coupe)
coupe+1
If coupe=33
coupe=1
EndIf
Next
For i=1 To 32
carte_melange(i)=carte_coupe(i)
Next
EndProcedure
;coupe_cartes() ;;; coupe
;;;;;;;;;;;;;;;
;##debug "=== Liste des cartes coupées ==="
; ; ; ; For i=1 To 32
; ; ; ; If i=21
; ; ; ; Debug ">>carte("+Str(carte_melange(i))+") "+carte$((carte_melange(i)-1)/8)+"----"+Str(carte(carte_melange(i)))+" : "+Str(points(carte_melange(i)))+" pts"
; ; ; ; Else
; ; ; ; Debug "carte("+Str(carte_melange(i))+") "+carte$((carte_melange(i)-1)/8)+"----"+Str(carte(carte_melange(i)))+" : "+Str(points(carte_melange(i)))+" pts"
; ; ; ; EndIf
; ; ; ; Next
; ; ; ;
;##debug " "
;##debug " "
;;;;;;;;;;;;;;;
;
donneur=2;- Random(3)
je_suis_le_joueur=0 ;-je_suis_le_joueur=
boucle=0
;- BOUCLE ####
boucle:
coupe_cartes() ;;; coupe
donneur+1
donneur%4
Global Dim joueur.w(3,7)
Global Dim joueur_ordre.w(3,7)
receveur=donneur+1
receveur%4
carte_propose=-1
;;;;;;;;;;;;;;;; distribution des cartes
la=1
For u=0 To 3
For i=0 To 2
joueur(receveur,i)=carte_melange(la)
la+1
Next
receveur+1
receveur%4
Next
;;;
For u=0 To 3
For i=3 To 4
joueur(receveur,i)=carte_melange(la)
la+1
Next
receveur+1
receveur%4
Next
For u=0 To 3
For i1=0 To 4
For i2=0 To 4
If i1<>i2
If joueur(u,i1)<joueur(u,i2)
Swap joueur(u,i1),joueur(u,i2)
EndIf
EndIf
Next
Next
Next
Debug "***"
Debug "le donneur est le joueur "+Str(donneur+1)
Debug "je suis le joueur "+Str(je_suis_le_joueur+1)
Debug "*"
If boucle=5
Debug "==="
Debug "Boucle = "+Str(boucle)
End:End
EndIf
receveur=donneur+1
receveur%4
atout=(carte_melange(21)-1)/8
atout_autre=atout
les_points()
;###################### choix de l'atout (la carte 21)
carte_propose=carte_melange(21)
Debug "Carte proposée N°"+Str(carte_propose)+" "+carte$((carte_propose-1)/8)+" - "+Str(carte(carte_propose))+" : "+Str(points(carte_propose))+" pts"
Debug "atout : "+carte$(atout)
Debug "---"
Debug "-"
Procedure tri(x)
Debug "On est dans la procedure ''tri( )''"
For U10=0 To 3
; Debug "~~"
; Debug "Joueur "+Str(receveur+1)
; ; ; ; ; ; For i=0 To x
; ; ; ; ; ; i2=joueur(receveur,i)
; ; ; ; ; ; ; Debug "carte("+Str(i2)+") "+carte$((i2-1)/8)+"----"+Str(carte(i2))+" : "+Str(points(i2))+" pts."
; ; ; ; ; ; Next
; Debug "==="
; Debug ""
Repeat
flag.b=0
For signe=0 To 3
For i4=0 To x
i2=joueur(receveur,i4)
signe1=(i2-1)/8
For i5=i4 To x ;i4 au lieu de 0
i3=joueur(receveur,i5)
signe2=(i3-1)/8
If i4<>i5
If signe1=signe2 And signe1=signe
If ordre(i2)<ordre(i3)
flag=1
Swap joueur(receveur,i4),joueur(receveur,i5)
EndIf
EndIf
EndIf
Next i5
Next i4
Next signe
Until flag=0
Debug "=> Joueur "+Str(receveur+1)
For i=0 To x
i2=joueur(receveur,i)
If (i2-1)/8 = atout
a$=" - Atout"
Else
a$=""
EndIf
Debug "carte("+Str(i2)+") "+carte$((i2-1)/8)+"----"+Str(carte(i2))+" : "+Str(points(i2))+" pts. : "+a$
joueur_ordre(receveur,i)=i2
Next
receveur+1
receveur%4
Next U10
EndProcedure
Debug "Tri sur 5 cartes"
tri(4)
Debug "####"
Debug "-Fin du tri-"
Debug "####"
carte_propose=carte_melange(21)
; atout=carte_propose
; Debug atout
les_points()
Debug "Atout : "+carte$(atout)+" - "+Str(carte(carte_propose))+" : "+Str(points(carte_propose))+" pts"
Debug "---"
Debug "-"
receveur=donneur+1
receveur%4
; For u=0 To 3
; For i=0 To 4
; i2=joueur(u,i)
; ;Debug "carte("+Str(i2)+") "+carte$((i2-1)/8)+"----"+Str(carte(i2))+" : "+Str(points(i2))+" pts."
; ; ; ; ; ; ; ; ; ; ; Debug joueur_ordre(u,i)
; Next
; Debug "="
; Next
; End:End
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;-;;;;;;;;;;;Debut;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Debug "==============="
Debug "Tour 1"
Debug "Début de l'IA"
Debug "-"
;{
For tour1=0 To 3
;- IA_Choice ; ###########
nb_atout=0
nb_points=0
nb_points_other=0
vingt=0
quatorze=0
IA_Choice=0
belote_rebelote=0
niveau_du_joueur=160 ;-(100(joueur laxiste) à 300(joueur exigent))
;##debug "Joueur "+Str(receveur+1)
;##debug ":"
;-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
For i=-1 To 4
If i=-1
ii=carte_propose
Else
ii=joueur(receveur,i)
EndIf
If (ii-1)/8=atout
nb_atout+1
nb_points+points(ii)
If points(ii)=20
vingt=1
EndIf
If points(ii)=14
quatorze=1
EndIf
If points(ii)=3 Or points(ii)=4
belote_rebelote+1
EndIf
Else
nb_points_other+points(ii)
If points(ii)=11
nb_points_other+12
;##debug "As détecté"
EndIf
;;##debug "points_other :"+Str(points(carte_melange(ii)))
EndIf
Next
;##debug "nb_atout : "+Str(nb_atout)
;##debug "nb_points : "+Str(nb_points)
;##debug "nb_points_other : "+Str(nb_points_other)
;##debug "vingt : "+Str(vingt)
;##debug "quatorze : "+Str(quatorze)
If vingt+quatorze=2
IA_Choice=100
ElseIf vingt+quatorze=1
If vingt=1
IA_Choice=60
Else
IA_Choice=30
EndIf
EndIf
IA_Choice+Pow(3,(nb_atout-vingt-quatorze))
;##debug "Pow(3) = "+Str(Pow(3,(nb_atout-vingt-quatorze)))
IA_Choice+nb_points
IA_Choice+nb_points_other
If belote_rebelote=2
;##debug "Belote+Rebelote"
IA_Choice+20
EndIf
If nb_atout=1
IA_Choice-20
EndIf
;##debug "IA = "+Str(IA_Choice)+" pts"
If receveur=je_suis_le_joueur
Debug "C'est à moi je choisir (joueur "+Str(receveur+1)+")"
Debug "Mon choix :"
Repeat
clear()
ClearScreen(RGB(40,40,40))
ExamineMouse()
x=MouseX()
y=MouseY()
x_la=x/100
xmouse=MouseButton(#PB_MouseButton_Left)
StartDrawing(ScreenOutput())
For i=0 To 500 Step 100
LineXY(i,0,i,100,RGB(200,200,200))
Next
DrawingMode(#PB_2DDrawing_Outlined|#PB_2DDrawing_Transparent )
DrawingFont(Police)
a$="Une"
DrawText(50-TextWidth(a$)/2,40, a$, RGB(255,255,255))
Dim atout_light(3)
For i=0 To 3
If atout=i
atout_light(i)=RGB(5,255,5)
Else
atout_light(i)=RGB(30,70,0)
EndIf
Next
a$="QUIT"
DrawText(550-TextWidth(a$)/2,40, a$, RGB(255,0,0))
Box(x_la*100+3,3,94,94,RGB(255,255,255))
For i=0 To 3
DrawText(150+i*100-TextWidth(carte$(i))/2,40, carte$(i), atout_light(i))
Next
StopDrawing()
;;;;;
DisplayTransparentSprite(0,x,y)
If xmouse=1
If x_la=5
End:End
EndIf
If x_la=0
IA_Choice=-1000
Goto le_choix1
EndIf
If x_la>=1 And x_la<=4
If x_la-1=atout
IA_Choice=1000
Goto le_choix1
EndIf
EndIf
EndIf
FlipBuffers()
ExamineKeyboard()
ForEver
EndIf
le_choix1:
ClearScreen(RGB(40,40,40))
FlipBuffers()
If IA_Choice>=niveau_du_joueur
joueur_prise=receveur
Debug "Le joueur "+Str(receveur+1)+" prend !!!!!!!!!!!!!!!!!!!!!!!!!":Delay(500)
;End:End
Goto joueur_ok
Else
Debug "1> Le joueur "+Str(receveur+1)+" passe..." : Delay(500)
EndIf
receveur+1
receveur%4
;##debug"="
;##debug"="
Next tour1
;}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;##debug ""
;##debug "Fin de l'IA"
;##debug "-----"
;##debug "-"
Debug "# fin du tour 1"
;##debug "---"
For i=1 To 3
Debug "========================="
Next
;##debug "-"
receveur=donneur+1
receveur%4
Dim reste_atout(2) ;-reste_atout(2)
u=0
For i=0 To 2
If u=atout
u+1
EndIf
reste_atout(i)=u
u+1
Next
Debug "==============="
Debug "Tour 2"
Debug "Début de l'IA"
Debug "-"
;{
Debug "Choix de l'atout (sauf : "+carte$(atout)+")"
Debug ""
;##debug "Joueur "+Str(receveur+1)
; For i=0 To 4
; i2=joueur(receveur,i)
; Debug "carte("+Str(i2)+") "+carte$((i2-1)/8)+"----"+Str(carte(i2))+" : "+Str(points(i2))+" pts."
; Next
Debug "~#~#"
Dim choix(3)
For tour2=0 To 3 ;- tour2
;##debug "Joueur "+Str(receveur+1)
Dim mes_atouts(3)
For atout2=0 To 2
nb_atout=0
IA_Choice=0
nb_points=0
nb_points_other=0
vingt=0
quatorze=0
belote_rebelote=0
For i3=-1 To 4
If i3=-1
ii=carte_propose
Else
ii=joueur(receveur,i3)
EndIf
;;##debug "Carte : "+Str(ii)+" "+carte$((ii-1)/8)+" - "+Str(carte(ii))+" : "+Str(points(ii))+" pts"
;End:End
atout=reste_atout(atout2)
les_points()
; ;##debug "..."
; ;##debug "## atout = "+Str(atout)
; ;##debug "~Carte~ : "+Str(ii)+" "+carte$((ii-1)/8)+" - "+Str(carte(ii))+" : "+Str(points(ii))+" pts"
If (ii-1)/8=atout;reste_atout(atout2)
;;##debug "Carte proposée : "+Str(carte_propose)+" "+carte$((carte_propose-1)/8)+" - "+Str(carte(carte_propose))+" : "+Str(points(carte_propose))+" pts"
;;##debug "Carte : "+Str(ii)+" "+carte$((ii-1)/8)+" - "+Str(carte(ii))+" : "+Str(points(ii))+" pts"
; ;##debug "Atout détecté"
nb_atout+1
nb_points+points(ii)
If points(ii)=20
vingt=1
EndIf
If points(ii)=14
quatorze=1
EndIf
If points(ii)=3 Or points(ii)=4
belote_rebelote+1
EndIf
Else
;nb_points_other+points(carte_melange(ii))
nb_points_other+points(ii)
If points(ii)=11
nb_points_other+12
; ;##debug "As détecté"
EndIf
;;##debug "points_other :"+Str(points(carte_melange(ii)))
EndIf
;;;;;;;;;;
; ;##debug "nb_atout : "+Str(nb_atout)
; ;##debug "nb_points : "+Str(nb_points)
; ;##debug "nb_points_other : "+Str(nb_points_other)
; ;##debug "vingt : "+Str(vingt)
; ;##debug "quatorze : "+Str(quatorze)
Next i3
;;;;;;;;;;;;
;;;;;;;;;;;;
;;;;;;;;;;;;
If vingt+quatorze=2
IA_Choice+100
ElseIf vingt+quatorze=1
If vingt=1
IA_Choice+60
Else
IA_Choice+30
EndIf
EndIf
IA_Choice+Pow(3,(nb_atout-vingt-quatorze))
;##debug "Pow(3) = "+Str(Pow(3,(nb_atout-vingt-quatorze)))
IA_Choice+nb_points
IA_Choice+nb_points_other
If belote_rebelote=2
; ;##debug "Belote+Rebelote = 20 pts"
IA_Choice+20
EndIf
If nb_atout=1
; ;##debug "Un seul atout = -20 pts"
IA_Choice-20
EndIf
; ;##debug "IA = "+Str(IA_Choice)+" pts"
If receveur=je_suis_le_joueur
Debug "C'est à moi je choisir (joueur "+Str(receveur+1)+")"
Debug "Mon choix :"
Repeat
clear()
ClearScreen(RGB(40,40,40)) ; tour 2
ExamineMouse()
x=MouseX()
y=MouseY()
x_la=x/100
xmouse=MouseButton(#PB_MouseButton_Left)
StartDrawing(ScreenOutput())
For i=0 To 500 Step 100
LineXY(i,0,i,100,RGB(200,200,200))
Next
DrawingMode(#PB_2DDrawing_Outlined|#PB_2DDrawing_Transparent )
DrawingFont(Police)
a$="Deux"
DrawText(50-TextWidth(a$)/2,40, a$, RGB(255,255,255))
Dim atout_light(3)
For i=0 To 3
;Debug atout:End
If atout_autre<>i
atout_light(i)=RGB(5,255,5)
Else
atout_light(i)=RGB(30,70,0)
EndIf
Next
a$="QUIT"
DrawText(550-TextWidth(a$)/2,40, a$, RGB(255,0,0))
Box(x_la*100+3,3,94,94,RGB(255,255,255))
For i=0 To 3
DrawText(150+i*100-TextWidth(carte$(i))/2,40, carte$(i), atout_light(i))
Next
StopDrawing()
;;;;;
DisplayTransparentSprite(0,x,y)
If xmouse=1
If x_la=5
End:End
EndIf
If x_la=0
IA_Choice=-1000
Goto le_choix2
EndIf
If x_la>=1 And x_la<=4
If x_la-1<>atout_autre
atout=x_la-1
IA_Choice=1000
choix(atout)=IA_Choice
Goto le_choix2
EndIf
EndIf
EndIf
FlipBuffers()
ExamineKeyboard()
ForEver
EndIf
; le_choix2:
;;;;;;;;;;
;;##debug "-"
choix(atout)=IA_Choice
; ;##debug"="
;##debug"="
Next atout2
le_choix2:
ClearScreen(RGB(40,40,40))
FlipBuffers()
;##debug "Résumé :"
max=-1000
;atout=-1
For i=0 To 2
;##debug "atout : "+Str(reste_atout(i))+" --- "+Str(choix(reste_atout(i)))+" pts"
If max<choix(reste_atout(i))
max=choix(reste_atout(i))
atout=reste_atout(i)
EndIf
Next
;##debug"="
;##debug "MAX ="+Str(max)+" --- Atout : "+Str(atout)
If max>=niveau_du_joueur
joueur_prise=receveur
Debug "#################################"
Debug "#################################"
Debug "Le joueur "+Str(receveur+1)+" prends en "+carte$(atout)+"!!!!"
Debug "#################################"
Debug "#################################"
Goto joueur_ok
Else
; Debug "#################################"
Debug "2> Le joueur "+Str(receveur+1)+" passe...":Delay(500)
; Debug "#################################"
EndIf
receveur+1
receveur%4
Next tour2
;}
Debug ""
Debug "Fin de l'IA"
Debug "-----"
Debug "-"
receveur=donneur+1
receveur%4
For u=0 To 3*-666
Debug "Joueur "+Str(receveur+1)
For i=0 To 4;7
ii= joueur(receveur,i)
If (ii-1)/8 = atout
a$=" - Atout"
Else
a$=""
EndIf
Debug "°°°° carte("+Str(ii)+") "+carte$((ii-1)/8)+" - "+Str(carte(ii))+" : "+Str(points(ii))+a$
Next
Debug ""
receveur+1
receveur%4
Next
;;;
;;;
;;
;
; For i=1 To 32
; If i=21
; Debug ">>carte("+Str(carte_melange(i))+") "+carte$((carte_melange(i)-1)/8)+"----"+Str(carte(carte_melange(i)))+" : "+Str(points(carte_melange(i)))+" pts"
; Else
; Debug "carte("+Str(carte_melange(i))+") "+carte$((carte_melange(i)-1)/8)+"----"+Str(carte(carte_melange(i)))+" : "+Str(points(carte_melange(i)))+" pts"
; EndIf
; Next
Debug ""
Debug "~~##~~##"
Debug "Remise dans le paquet dans l'ordre des cartes des joueurs"
Debug "~~##~~##"
;;;;; remise dans le paquet dans l'ordre des cartes des joueurs
nb=1
For u=0 To 3
; Debug "Joueur "+Str(receveur+1)
For i=0 To 4
ii= joueur(receveur,i)
; Debug "~~~~ carte("+Str(ii)+") "+carte$((ii-1)/8)+" - "+Str(carte(ii))+" : "+Str(points(ii))+a$
carte_melange(nb)=ii
nb+1
Next
Debug ""
receveur+1
receveur%4
Next
;;;
;;;
;;
;
For i=1 To 32*-666
If i=21
Debug "##>>carte("+Str(carte_melange(i))+") "+carte$((carte_melange(i)-1)/8)+"----"+Str(carte(carte_melange(i)))+" : "+Str(points(carte_melange(i)))+" pts"
Else
Debug "carte("+Str(carte_melange(i))+") "+carte$((carte_melange(i)-1)/8)+"----"+Str(carte(carte_melange(i)))+" : "+Str(points(carte_melange(i)))+" pts"
EndIf
Next
; ; ;
Debug ""
Debug "~~##~~##"
Debug "~~##~~##"
Debug "~~##~~##"
Debug "~~##~~##"
Debug ""
; ; ;
; ; ;
; ; ; End:End
; ; ;
boucle+1
Goto boucle
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
joueur_ok: ;-joueur_ok:
les_points()
;##debug "-#-#-"
;##debug "-#-#-"
;##debug "Distribution du reste des cartes :"
;;##debug "A suivre..."
receveur=donneur+1
receveur%4
Debug "(Le joueur "+Str(receveur+1)+" reçois les 3 prochaines cartes)"
Debug "-"
;;Dim joueur.w(3,7)
;;joueur_prise=Random(3)
; Debug "================"
; Debug "donneur = joueur "+Str(donneur+1)
; Debug "joueur_prise = joueur "+Str(joueur_prise+1)
; Debug "atout : "+carte$(atout)
; Debug "================"
la+1
flag.b=0
For u=0 To 3
For i=5 To 7
If joueur_prise=receveur And flag=0
flag=1
joueur(receveur,i)=carte_propose
Else
joueur(receveur,i)=carte_melange(la)
la+1
EndIf
Next
receveur+1
receveur%4
Next
;##debug "***"
receveur=donneur+1
receveur%4
For u=0 To 3
;##debug "Joueur "+Str(receveur+1)
For i=0 To 7
ii= joueur(receveur,i)
If (ii-1)/8 = atout
a$=" - Atout"
Else
a$=""
EndIf
;##debug "carte("+Str(ii)+") "+carte$((ii-1)/8)+" - "+Str(carte(ii))+" : "+Str(points(ii))+a$
Next
;##debug ""
receveur+1
receveur%4
Next
;
; atout=Random(3) ;;; (de -1 à 3)
; les_points()
For u=0 To 3
For i1=0 To 7
For i2=0 To 7
If i1<>i2
If joueur(u,i1)<joueur(u,i2)
Swap joueur(u,i1),joueur(u,i2)
EndIf
EndIf
Next
Next
Next
tri(7)
Debug "####"
Debug "-Fin du tri N°2-"
Debug "####"
;;;;;;;;;;
;End:End
;##debug "***"
receveur=donneur+1
receveur%4