1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| procedure AfficherLeveesPossibles(futp : PtrFutureTricks;entame:integer); // Afficher nbre de levées possibles selon la carte jouée
var i,j,k,debut,fin,conversion:integer;
Espace,msg,msg1:string;
joueur,CampDeclarant:string;
NumCarteJouee:integer;
S:string;
X,Y:integer;
NiveauContrat, ScorePossible, NbreLeveeFaite:integer;
begin
NumCarteJouee:=(Place1 mod 4)-1; // Numéro de la carte jouée dans la levée : -1=aucune carte jouée dans la levée, 0=première carte jouée, 1=2ème carte ...
joueur:=UpperCase(QuelJoueurDansLevee(entame, NumCarteJouee)); // Quel joueur joue dans la levée?
CampDeclarant:=QuelCampDeclarant(Form1.ComboBox2.ItemIndex);
NiveauContrat:=StrToInt(Copy(Form1.ComboBox1.Items[Form1.ComboBox1.ItemIndex],1,1)); // Niveau du contrat
if Joueur='NORD' then begin
debut:=0; fin:=12;
X:=5; Y:=35;
NbreLeveeFaite:=NbreLeveeNS;
end else if Joueur='EST' then begin
debut:=13; fin:=25;
X:=20; Y:=5;
NbreLeveeFaite:=NbreLeveeEO;
end else if Joueur='SUD' then begin
debut:=26;fin:=38;
X:=5; Y:=35;
NbreLeveeFaite:=NbreLeveeNS;
end else if Joueur='OUEST' then begin
debut:=39;fin:=51;
X:=20; Y:=5;
NbreLeveeFaite:=NbreLeveeEO;
end;
for i:=0 to 51 do Carte[i].ResolutionOk:=False; // Initialisation : aucune carte n'est valide dans la Résoluion de la donne
for i:=debut to fin do begin
for j:=0 to futp.Cards-1 do begin
conversion:=ConvertRankSuitToValeurCarte(futp.Suit[j],futp.Rank[j]);
if conversion= Carte[i].Valeur then begin
Carte[i].ResolutionOk:=True; // La carte est valide dans la résolution de la donne (on peut la jouer);
// Affichage du score possible sur les cartes
if Pos(joueur,CampDeclarant)=0 then // celui qui joue la carte est dans le camp du Déclarant
ScorePossible:=13-(6+NiveauContrat)-futp.Score[j]-NbreLeveeFaite
else ScorePossible:=futp.Score[j]-(6+NiveauContrat)+NbreLeveeFaite;
if ScorePossible=0 then S:=' ='
else if ScorePossible>0 then S:='+'+IntTostr(ScorePossible)+''
else if ScorePossible<0 then S:=IntTostr(ScorePossible)+'';
With Carte[i].Picture.Bitmap do begin
Canvas.Font.Color := clBlack; // couleur du texte
Canvas.Font.Style:=[fsBold];
Canvas.Font.Size := 13;
Canvas.Brush.color:=clYellow;
Canvas.TextOut(X,Y,S);
break;
end; //fin de With Carte[i].Picture.Bitmap do begin
end; // fin de if ConvertRankSuitToValeurCarte
end; // fin de for j:=0 to futp.Cards-1 do begin
end; // fin de for i:=debut to fin do begin |
Partager