Damier special

spawn2004 Messages postés 3 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 25 février 2008 - 20 févr. 2008 à 21:38
spawn2004 Messages postés 3 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 25 février 2008 - 25 févr. 2008 à 22:35
bonjour , je cherche une petite aide  ( pas une solution ) ^^

je tente de faire un damier de 8X8  de dame

 il doit y avoir 8 dame par damier mais celle ci ne peuvent en aucun cas se voir

donc  ne peuve se voir horizontalement   , verticalement et diagonal

( pour l'affichage du texte suffira  pour le moment  genre O pour les dame et  -  case vide ) Merci d'avance

6 réponses

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
20 févr. 2008 à 22:22
Bonjour,

Peux-tu nous dire où tu en es de ta réflexion?

Parce qu'on veut bien te conseiller et corriger tes erreurs...
Mais pour le moment y'a pas beaucoup matière à corriger ni à conseiller...

sinon de faire 8 damiers d'une dame.
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
21 févr. 2008 à 01:44
damier de 8x8 case (pas dame, ce serait comme jouer avec 32 pionts blanc et 32 pionts noir aux echecs)

donc hop, une matrice :

type
TPiontType = (ptWhite, ptBlack);

TDamierCase = record
  Empty     : boolean;
  PiontType : TPiontType;
end;

TDamier = array[0..7, 0..7] of TDamierCase;
               {1..8, A..H}

<hr size="2" width="100%" />
http://deefaze.gnomz.com
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
21 févr. 2008 à 10:30
Bonjour, je cherche une petite aide mais je ne précise aucun travail déjà fait si ce n'est les modalités d'affichage (normalement le dernier truc dont on se préoccupe, surtout dans ce cas).

J'espère pour toi que tu as pas mal de connaissances parce que c'est pas évident à la base ce que tu veux faire.

La solution toute faite est ici : http://recursivite.developpez.com/?page=page_4#LIII-C (tu notes Cari, encore ce même cours que je fourgue !)

Tu peux déjà lire l'introduction, ça te donnera une idée de ce que tu dois faire. Tu pourrais aussi te "débloquer" si besoin est.

A+
Flo
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
22 févr. 2008 à 01:14
« (tu notes Cari, encore ce même cours que je fourgue !) »

Un très bon cours.
Fourgue un max, stp !  :)))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
spawn2004 Messages postés 3 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 25 février 2008
25 févr. 2008 à 22:08
Merci  pour les petites infos .. j'ai pas pu repondre plus vite car beaucoup de choses  en meme temp .  voici ou j'en suis

Note :  je tente d'afficher  le tableau pour chaqu'une des solutions possibles avec un compteur final  ( 92 possibiliter normalement ) 

var
tabl : array [0..7 ,0..7] of byte ;
i,j,k,l,m,n,o,p,q,r,t: byte;
pion : byte;
check : boolean;
count : byte;
procedure checkqueen (xx,yy: byte);
var
i,j : integer;
gauche, droite : integer;
begin
  check:= true;
  gauche:= xx-1 ;
  droite:= xx+1 ;
  for I := YY-1 downto 0 do
    begin
      if tabl[xx,i] = 1 then check:= false;      if (gauche >0) and (tabl[gauche,i] 1) then check:= false;      if (droite <7) and (tabl[droite,i] 1) then check:= false;
      if not check then break;
      dec(gauche);
      inc(droite);
      tabl [xx,yy]:= 5;
    end;
  if check = true then
    begin
      tabl[xx,yy]:= 1;
      inc (count);
    end;
if count = 8  then
 for Q := 0 to 7 do
 begin
  for r := 0 to 7 do
   write (tabl[r,q]);
   writeln;
writeln ;
end;


// dEBUT ROGRAMME
begin
count := 0;
for I := 0 to 7 do    //boucle 1
 begin
 if tabl [i,0]=0 then
 checkqueen (i,0);
   for j := 0 to 7 do   //boucle 2
   begin
   if tabl [j,1]=0 then
   checkqueen (j,1);
         for k := 0 to 7 do   //boucle 3
         begin
         if tabl [k,2]=0 then
         checkqueen (k,2);
             for l := 0 to 7 do   //boucle 4
             begin
             if tabl [l,3]=0 then
             checkqueen (l,3);
                 for m := 0 to 7 do  //boucle 5
                 begin
                 if tabl [m,4]=0 then
                 checkqueen (m,4);
                   for n := 0 to 7 do    //boucle 6
                   begin
                   if tabl [n,5]=0 then
                   checkqueen (n,5);
                       for o := 0 to 7 do    //boucle 7
                       begin
                       if tabl [o,6]=0 then
                       checkqueen (o,6);
                          for p := 0 to 7 do    //boucle 8
                          begin
                          if tabl [p,7]=0 then
                          checkqueen (p,7);
                          end;
                       end;
                   end;
                 end;
             end;
         end;
    end;
 end;
end. 
0
spawn2004 Messages postés 3 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 25 février 2008
25 févr. 2008 à 22:35
ps : j'ai oublier un end;    a la find de la procedure pour ceux qui voudrai faire un test
0
Rejoignez-nous