# Jeux de dames en C



## charisme (14 Mai 2006)

je suis novice en programation. je voudrais pour mon propre loisir programmer un jeu de dames en langage c qui va s'executer sur un terminal Xterm. pouvez vous m'aider à le faire pas a pas pour que je puisse bien comprendre le code.
pour le moment j'ai un pb pour afficher le damier.
j'attends votre aide


----------



## p4bl0 (14 Mai 2006)

Je pense que tu obtiendra plus d'aide en spécifiant à chaque fois quel est ton problème.

J'espère aussi que tu ne commence pas avec de trop ambitieux projet (as-tu réalisé les classiques pendu, jeux des allumettes à la fort-Boyard etc... avant de te lancer dans ce projet qui est plus gros ??)


----------



## Didier Guillion (14 Mai 2006)

Tu t'attaques à un projet tres intéressant ! Je pense que la première étape (si ce n'est deja fait) sera d'éteindre ton Mac et à réflechir à ce que tu veut faire avec un crayon et du papier.

Ensuite, si tu as des problemes de "cuisine informatique", essaie de les formuler de manière très précise.

Cordialement


----------



## charisme (22 Mai 2006)

truk2oof a dit:
			
		

> Je pense que tu obtiendra plus d'aide en spécifiant à chaque fois quel est ton problème.
> 
> J'espère aussi que tu ne commence pas avec de trop ambitieux projet (as-tu réalisé les classiques pendu, jeux des allumettes à la fort-Boyard etc... avant de te lancer dans ce projet qui est plus gros ??)


non c'est mon premier veritable projet en C je le fait parce quon me l'a demandé en classe.


			
				Didier Guillion a dit:
			
		

> Tu t'attaques à un projet tres intéressant ! Je pense que la première étape (si ce n'est deja fait) sera d'éteindre ton Mac et à réflechir à ce que tu veut faire avec un crayon et du papier.
> 
> Ensuite, si tu as des problemes de "cuisine informatique", essaie de les formuler de manière très précise.
> 
> Cordialement


j'ai un cahier de charge à respecter. pour le moment je n'arrive pas à faire deplacer les pions du damier. les coordonnées doivent etre entrée a la main. j'ai pensé à une structure mais ça ne marche pas.


----------



## ntx (22 Mai 2006)

charisme a dit:
			
		

> non c'est mon premier veritable projet en C je le fait parce quon me l'a demandé en classe.


Et donc tu viens sur le net pour qu'on te file la réponse


----------



## tatouille (24 Mai 2006)

les règles

http://fr.wikipedia.org/wiki/Jeu_de_dames

une variante

http://jeuxlibres.net/showgame/biloba.html

tu sais je crois que c'est un peu gros pour un premier prog en C
juste comme ça surtout tu as l'air déjà d'avoir plus de 15 ans

donc tu seras jamais un nurds

de plus il existe plusieurs types de Draughts

http://www.gnu.org/software/gnubg/

le Backgammon est aussi un jeux de dames


----------



## charisme (25 Mai 2006)

ntx a dit:
			
		

> Et donc tu viens sur le net pour qu'on te file la réponse


c'est clair que pour le moment ça m'arangerait. c'est ma première année de programmation et j'ai besoin de cette note. je compte me perfectionner dans la programmation (raison pour laquelle j'ai un mac) mais je n'ai pas assez d'experience pour ce genre de programme et je doit le rendre dans 5 jours et je n'ai encore rien fait d'autre que l'affichage du damier.
j'aurai vraiment besoin d'un programme que je pourrai modifier selon mon cahier de charge.


----------



## tatouille (25 Mai 2006)

charisme a dit:
			
		

> c'est clair que pour le moment ça m'arangerait. c'est ma première année de programmation et j'ai besoin de cette note. je compte me perfectionner dans la programmation (raison pour laquelle j'ai un mac) mais je n'ai pas assez d'experience pour ce genre de programme et je doit le rendre dans 5 jours et je n'ai encore rien fait d'autre que l'affichage du damier.
> j'aurai vraiment besoin d'un programme que je pourrai modifier selon mon cahier de charge.


parasite

http://fr.wikipedia.org/wiki/Parasite

http://www.doctissimo.fr/html/psychologie/mag_2001/mag0323/ps_3680_charisme.htm


----------



## charisme (25 Mai 2006)

tatouille a dit:
			
		

> parasite


non je crois pas. parce que je veux m'améliorer mais la j'ai une pression. allez stp aide moi


----------



## tatouille (25 Mai 2006)

donne ton code et ton UML
bon t'as pas l'air de vouloir le faire ton jeux 

quelle library utilises tu pour paint ton damier ?
les events de cases ?

sdl / vtk ou alors on fait ca a la console ?


----------



## charisme (25 Mai 2006)

tatouille a dit:
			
		

> donne ton code et ton UML
> bon t'as pas l'air de vouloir le faire ton jeux
> 
> quelle library utilises tu pour paint ton damier ?
> ...


 je le fait à la console. j'arive à afficher le damier mais mes problemes sont:
-au niveau du deplacement
-au niveau de la dame
-au niveau de boufer les pions
-au niveau de la sauvegarde
voila le code:


```
#include <stdio.h>
#include <ctype.h>

/*variables globales*/
char joueur1[20];
char joueur2[20];
char tab[11][11];

/*AFFICHAGE DU DAMIER*/
void affichage_damier ()
{
/* Declarations des variables */
int i=0;   // coordonnÈe de la ligne
int j;    // coordonnÈe de la colonne
int k=0; // Nombre aidant au remplissage de la grille 
int a;  // Nombre aidant au remplissage de la grille  
int b; // Nombre qui aide &#8225; savoir si la boucle de sÈlection a dÈja ÈtÈ faite au moins une fois
char x;
int y;
char c;
int d;
//char tab[11][11];
char tabl[41];

/* Initialisation du tableau */
for(i=0;i<11;i++)
    {
    for(j=0;j<11;j++)
        {
        tab[i][j]=' ';
        }
    }
    
/* GÈnÈration du plateau de jeu */

i=0;    
for(j=1;j<11;j++)
    {
    tab[i][j]='0'+k++;
    }
k=0;
j=0;
for(i=1;i<11;i++)
    {
    tab[i][j]='a'+k++;
    }

i=1;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==1)
    tab[i][j]='.';
    else
    tab[i][j]='N';
    }
i=2;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==0)
    tab[i][j]='.';
    else
    tab[i][j]='N';
    }
i=3;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==1)
    tab[i][j]='.';
    else
    tab[i][j]='N';
    }
i=4;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==0)
    tab[i][j]='.';
    else
    tab[i][j]='N';
    } 
i=5;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==1)
    tab[i][j]='.';
    else
    tab[i][j]='v';
    }
i=6;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==0)
    tab[i][j]='.';
    else
    tab[i][j]='v';
    } 
i=7;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==1)
    tab[i][j]='.';
    else
    tab[i][j]='B';
    }
i=8;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==0)
    tab[i][j]='.';
    else
    tab[i][j]='B';
    }
i=9;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==1)
    tab[i][j]='.';
    else
    tab[i][j]='B';
    }
i=10;    
for(j=1;j<11;j++)
    {
    a=j%2;
    if(a==0)
    tab[i][j]='.';
    else
    tab[i][j]='B';
    }
    
/* Affichage du plateau de jeu */

i=0;
printf("\t");
j=0;
printf("   ");
for(j=1;j<11;j++)
    {
    printf("    %c   ",tab[i][j]);
    }
for(i=1;i<11;i++)
    {
    printf("\n\t   ---------------------------------------------------------------------------------");
    printf("\n\t   |       |       |       |       |       |       |       |       |       |       |\n");
    printf("       ");
    for(j=0;j<11;j++)
        {
        printf("%c   |   ",tab[i][j]);
        }
    printf("\n\t   |       |       |       |       |       |       |       |       |       |       |");

    }
    printf("\n\t   ---------------------------------------------------------------------------------\n");
}

/*LANCEMENT DU JEU*/
void lancement_jeu ()
{
printf("Joueur 1 (b pions blancs) entrez votre nom\n");
scanf("%s",joueur1);
printf("Joueur 2 (n pions noirs) entrez votre nom\n");
scanf("%s",joueur2);
}

/*DEPLACEMENT*/
void deplacement()
{
//char tab[11][11];
int a,b,x,y,tmpcolinit,tmpcolar,i,j;
a=0;
b=0;
x=0;
y=0;
i=0;
j=0;
tmpcolinit=0;
tmpcolar=0;
char colinit[20];
char colar[20];
printf("%s commence\n",joueur1);
printf("entrez l'un aprËs l'autre les coordonnÈes du pions a deplacer\n");
scanf("%d",&a);
scanf("%d",&colinit);
printf("entrez l'un aprËs l'autre les coordonnÈes d'arrivÈes du pion\n");
scanf("%d",&x);
scanf("%d",&colar);
tmpcolinit=toascii(colinit);
tmpcolar=toascii(colar);
if(tmpcolinit==97)
    {
    b=1;
    }
if(tmpcolinit==98)
    {
    b=2;
    }
if(tmpcolinit==99)
    {
    b=3;
    }
if(tmpcolinit==100)
    {
    b=4;
    }
if(tmpcolinit==101)
    {
    b=5;
    }
if(tmpcolinit==102)
    {
    b=6;
    }
if(tmpcolinit==103)
    {
    b=7;
    }
if(tmpcolinit==104)
    {
    b=8;
    }
if(tmpcolinit==105)
    {
    b=9;
    }
if(tmpcolinit==106)
    {
    b=10;
    }
    
    
if(tmpcolar==97)
    {
    y=1;
    }
if(tmpcolar==98)
    {
    y=2;
    }
if(tmpcolar==99)
    {
    y=3;
    }
if(tmpcolar==100)
    {
    y=4;
    }
if(tmpcolar==101)
    {
    y=5;
    }
if(tmpcolar==102)
    {
    y=6;
    }
if(tmpcolar==103)
    {
    y=7;
    }
if(tmpcolar==104)
    {
    y=8;
    }
if(tmpcolar==105)
    {
    y=9;
    }
if(tmpcolar==106)
    {
    y=10;
    }

do
    {
    printf("deplacement impossible");
    }
while(tab[i][j]=!'.');
//while((tab[i][j]==tab[1][0])||(tab[i][j]==tab[1][2])||(tab[i][j]==tab[1][4])||(tab[i][j]==tab[1][6])||(tab[i][j]==tab[1][8])||(tab[i][j]==tab[2][1])||(tab[i][j]==tab[2][3])||(tab[i][j]==tab[2][5])||(tab[i][j]==tab[2][7])||(tab[i][j]==tab[2][9])||(tab[i][j]==tab[3][0])||(tab[i][j]==tab[3][2])||(tab[i][j]==tab[3][4])||(tab[i][j]==tab[3][6])||(tab[i][j]==tab[3][8])||(tab[i][j]==tab[4][1])||(tab[i][j]==tab[4][3])||(tab[i][j]==tab[4][5])||(tab[i][j]==tab[4][7])||(tab[i][j]==tab[4][9])||(tab[i][j]==tab[5][0])||(tab[i][j]==tab[5][2])||(tab[i][j]==tab[5][4])||(tab[i][j]==tab[5][6])||(tab[i][j]==tab[5][8])||(tab[i][j]==tab[6][1])||(tab[i][j]==tab[6][3])||(tab[i][j]==tab[6][5])||(tab[i][j]==tab[6][7])||(tab[i][j]==tab[6][9])||(tab[i][j]==tab[7][0])||(tab[i][j]==tab[7][2])||(tab[i][j]==tab[7][4])||(tab[i][j]==tab[7][6])||(tab[i][j]==tab[7][8])||(tab[i][j]==tab[8][1])||(tab[i][j]==tab[8][3])||(tab[i][j]==tab[8][5])||(tab[i][j]==tab[8][7])||(tab[i][j]==tab[8][9])||(tab[i][j]==tab[9][0])||(tab[i][j]==tab[9][2])||(tab[i][j]==tab[9][4])||(tab[i][j]==tab[9][6])||(tab[i][j]==tab[9][8])||(tab[i][j]==tab[10][1])||(tab[i][j]==tab[10][3])||(tab[i][j]==tab[10][5])||(tab[i][j]==tab[10][7])||(tab[i][j]==tab[10][9]));

}

/*BOUFFE*/

/*FONCTION PRINCIPALE*/
main()
{
int choix;
choix=0;
char joueur1[20];
char joueur2[20];

printf("\n\t 0 Nouvelle Partie"
       "\n\t 1 Parametres"
       "\n\t 2 Regles du jeu"
       "\n\t 3 Quitter");
printf("\nEntrez votre choix\n");
scanf("%d",&choix);
switch(choix)
    {
    case 0:
        {
        lancement_jeu (joueur1,joueur2);
        affichage_damier ();
        //deplacement (joueur1,joueur2);
        }
        break;
    case 1:printf("merci\n");
        break;
    case 2:printf("Vous devez éliminer le pions de votre adversaire en vous deplaçant en diagonale vers l'avant. Le seul deplacement vers l'arrière qui est autorisé est celui vous permettra de de prendre un pion adverse.\n");
        break;
    case 3:printf("Au revoir\n");
        break;
    default:printf("\t Choix non valide, relancez le jeu\n");
    }
}
```


----------



## p4bl0 (25 Mai 2006)

STOOOOOOOOOOOOOOP !!!

déjà il faut que tu sépare tout en plusieurs fichiers dans lesquels tu mets des fonctions que tu appelles ensuite dans un main.c, jamais mettre tout d'un coup comme ça !!

ensuite, si je suis un prof, et que je vois une ligne comme ça :
	
	



```
//while((tab[i][j]==tab[1][0])||(tab[i][j]==tab[1][2])||(tab[i][j]==tab[1][4])||(tab[i][j]==tab[1][6])||(tab[i][j]==tab[1][8])||(tab[i][j]==tab[2][1])||(tab[i][j]==tab[2][3])||(tab[i][j]==tab[2][5])||(tab[i][j]==tab[2][7])||(tab[i][j]==tab[2][9])||(tab[i][j]==tab[3][0])||(tab[i][j]==tab[3][2])||(tab[i][j]==tab[3][4])||(tab[i][j]==tab[3][6])||(tab[i][j]==tab[3][8])||(tab[i][j]==tab[4][1])||(tab[i][j]==tab[4][3])||(tab[i][j]==tab[4][5])||(tab[i][j]==tab[4][7])||(tab[i][j]==tab[4][9])||(tab[i][j]==tab[5][0])||(tab[i][j]==tab[5][2])||(tab[i][j]==tab[5][4])||(tab[i][j]==tab[5][6])||(tab[i][j]==tab[5][8])||(tab[i][j]==tab[6][1])||(tab[i][j]==tab[6][3])||(tab[i][j]==tab[6][5])||(tab[i][j]==tab[6][7])||(tab[i][j]==tab[6][9])||(tab[i][j]==tab[7][0])||(tab[i][j]==tab[7][2])||(tab[i][j]==tab[7][4])||(tab[i][j]==tab[7][6])||(tab[i][j]==tab[7][8])||(tab[i][j]==tab[8][1])||(tab[i][j]==tab[8][3])||(tab[i][j]==tab[8][5])||(tab[i][j]==tab[8][7])||(tab[i][j]==tab[8][9])||(tab[i][j]==tab[9][0])||(tab[i][j]==tab[9][2])||(tab[i][j]==tab[9][4])||(tab[i][j]==tab[9][6])||(tab[i][j]==tab[9][8])||(tab[i][j]==tab[10][1])||(tab[i][j]==tab[10][3])||(tab[i][j]==tab[10][5])||(tab[i][j]==tab[10][7])||(tab[i][j]==tab[10][9]));
```
Je n'essaye même pas de lire le code, je met ZÉRO !!!



> je le fait à la console. j'arive à afficher le damier mais mes problemes sont:
> -au niveau du deplacement
> -au niveau de la dame
> -au niveau de boufer les pions
> -au niveau de la sauvegarde


Donc tu n'as pas coder. ça c'est juste de l'affichage de texte, le but d'un TP comme celui là, c'est de te faire réfléchir et chercher : c'est un travail de recherche. (ne demande pas de solution toute faite sur un forum).





P.S. : je tiens à préciser que mes remarques ne valent que ce qu'elles valent sachant que je suis simplement en 1ère S.


----------



## charisme (25 Mai 2006)

des fichiers .h c'est ça?
c'est facile pour toi mais moi a part du PHP et du Javascript je n'ai jamais fait de C avant cette année. si tu peux m'aider ce serait sympa.


----------



## p4bl0 (25 Mai 2006)

je suis dans le même cas que toi (PHP/MySQL, XHTML/CSS, mais un peu de C aussi)

La seul conseil que je peux te donner :
va lire les deux première partie du tuto C sur le site du zéro. (http://www.siteduzero.com/tuto-3-8-0-apprenez-a-programmer-en-c.html)


----------



## charisme (25 Mai 2006)

ok
mais pour le moment il me faut finir ce jeu de dames pour le 30. tu peux me donner un coup de main??


----------



## p4bl0 (25 Mai 2006)

charisme a dit:
			
		

> tu peux me donner un coup de main??


 où ? sur la joue gauche ou droite ? 

Pose tes questions quand tu bloque et on te répondra, mais personne ne fera tes devoir à ta place !


----------



## charisme (25 Mai 2006)

truk2oof a dit:
			
		

> où ? sur la joue gauche ou droite ?
> 
> Pose tes questions quand tu bloque et on te répondra, mais personne ne fera tes devoir à ta place !


un coup de main pour gérer le deplacement


----------



## BeNBiBiFoKe (25 Mai 2006)

Mouais, je pense qu'il te manque de sérieuses bases pour réaliser un jeu de dames visiblement. Et le faire n'importe comment sans ces bases peut donner de mauvaises habitudes.

Le prof devrait encadrer le projet, donner par exemple les *.h et vous faire implémenter les fonctions, où bien commencer par des projets plus petits. Enfin vu la date, ce n'est surement pas le premier projet de l'année, peut-être que le prof a bien pensé ça.

Bonne m****, pus que 5 jours


----------



## tatouille (26 Mai 2006)

tput te permet de déplacer ton curseur

mais comme dirait BeNBiBiFoKe il ya du boulot je suis pas très optimiste sur la réussite de ta mission
car le code que tu as fourni est kilométrique pense objet et method
tu déroules des tests qui pourrait tenir en 5 lignes dans une methode

tu imagines le nombre de possibilités de ta matrice ?
car c'est ca que le tp te demande build a matrix

et je crois que tu n'as pas vu cela
au lieu de le finir j'essayerai de coder une matrice propre

au moins ton prof même si c'est pas fini pourra dire "ha tiens il a compris"
et ça limitera les dégats de ta note

et ça sert à rien de dire je suis largé en fin d'année
fallait en parler avec ton prof dès le début au lieu de crier après avoir coulé

http://www-rocq.inria.fr/who/Anne.Canteaut/COURS_C/

pour l'instant tu peux toujours

participer à

http://www.ioccc.org/


```
#define L (y
#define M 640,480
#define N NULL
#define O GL_DIFFUSE , i
#define P glCallList(u);
#define T glTexCoord2i
#define U glLightfv(GL_LIGHT0,
#define V R(); glVertex3i(c,m,n);
#define X GL_TEXTURE_2D
#define Z(x) G; x=G; x=x<50-(x==59); 

void Y()
{ { { { { { { { { { { { { { { {
                               
  { {     { { {   { { {   { { {
      {   {   {   {   {   {    
  { {     {   {   {   {     { {
  {       {   {   {   {       {
  { { {   { { ;   { } }   } } }
                               
                               
  }   } } }     }     }     }  
  }   }   }   }     }     }    
  }   }   }   }     }     }    
  }   }   }   }     }     }    
  }   } } }     }     }     }  
                               
} } } } } } } } } } } } } } } }

void Q()
{ { ; { { { {   {     {   { {
  { {     {         {     { {
{   { {   { {               {
; { { } } } } }   }     }   }
} ; }   } }   }   } }   } } }
} }     }         }     } }   



         FILE *F; int u,t,l,m,n,x=0,a=0,b[]={ GLX_DOUBLEBUFFER,
           GLX_RGBA , GLX_DEPTH_SIZE , 16, None},o,n,c ; void R() {
         Z(c); Z(m); Z(n); } int main( int _, char **A) { char   f[
      BUFSIZ ] ;  GLXContext r  ; XVisualInfo * v ; Display     *y; 
    XEvent e ; GLfloat g=0, h=10, i[ ]= { 1,1, 1, 1, 5,5,       100
     ,0, .6, .6, .6 ,1 } ; XSetWindowAttributes s; GLubyte          j[1
   <<10] ; Window w; if(! L= XOpenDisplay ( N ) ) ) E(1)            ;if
                                    ( !
glXQueryExtension L , N , N ) ) E (2); v=glXChooseVisual            L ,
DefaultScreen (y ) , b  ) ; s.colormap = XCreateColormap            L ,
RootWindow (y,v -> screen), v -> visual, AllocNone ); if            (!(
r= glXCreateContext L, v, N, 1) ) ) E (3) ; strcpy(f, *A            ) ;  
s.event_mask=KeyPressMask; strcat(f,".c"); F=fopen(f,"r"            ) ; 
w= XCreateWindow L, RootWindow( y, v -> screen ), M , M,            0,v
->depth,InputOutput, v->visual , CWColormap|CWEventMask,            &s)
;glXMakeCurrent L , w , r ); H GL_DEPTH_TEST ); if ( ! F            )E(
4 ) ; glShadeModel ( GL_SMOOTH ) ; while ( a != 89 ) a =            G ; 
G; G ; glGenTextures( 1, & t ); while ( x< 1024 ) { G; a            =G;
j[ x++ ] = 128; j[ x++ ] = 128 & - ( a<33 ); j [ x ]= j[            x-1
]; x++; j[x++] =-1;} glBindTexture(X,t); glTexParameteri            (X,
GL_TEXTURE_MIN_FILTER , GL_NEAREST ) ;   glTexImage2D( X        ,0,
GL_RGBA, 16 ,  16 , 0 ,  GL_RGBA, GL_UNSIGNED_BYTE , j )         ; J 
GL_PROJECTION ) ; gluPerspective( 60 , 1.333 , 1 ,  100)            ; J 
GL_MODELVIEW); u=glGenLists(1); glNewList(u,GL_COMPILE);        H X
) ; while ( a != 81 ) a = G ; G ; G ; for (x=0; x<6; x++        ) {
glBegin(GL_QUADS); R(); glNormal3f( c, m,n); T(1,1); V T            (1,
0  )  ;  V  T (  0  , 0 ) ; V T( 0 , 1 ) ;  V  glEnd ( )        ; } 
glEndList( ) ; XMapWindow L , w ) ; c = 0; for ( ; ; ) {        if( 
XPending L ) ) { XNextEvent L , &e ) ; if((XLookupKeysym        ( (
XKeyEvent *)&e,0))&1<<5){ h=10; i[c]=!i[c]; c++; c&=3; }           else        
E(0)} glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT          ) ;  
glLoadIdentity(); gluLookAt ( -2 ,0 ,5 ,0,0 ,0,0 ,0 ,1 )        ; H 
GL_LIGHTING); H GL_LIGHT0 ); U GL_POSITION, i + 4); U O)      ; U 
GL_SPECULAR,i); glLightModelfv( GL_LIGHT_MODEL_AMBIENT,i    +8)
; I GL_AMBIENT, i+8); I O + 8 ) ; glRotatef( g, 1, 1, 1)  ; P 
glTranslatef(-h,0,0); P usleep (4000); g+=.07*x; if (g>360) 
g-=360.0; h-=x /100.0; glFlush(); glXSwapBuffers L ,w);} 

l: 
return 0; 
}
```


----------



## iota (26 Mai 2006)

Salut.

Petite question au passage, tu dois gérer les vraies règles du jeu de dames ?
Avec prise de pions multiple et distinction entre pion (mouvements limités) et dame (mouvements sans contrainte) ?

Pour la génération de ton plateau, j'ai pas bien compris avec quoi tu le remplis ('N' pour noir, 'B' pour blanc, '.' pour vide, mais 'v' et 'a').

@+
iota


----------



## tatouille (26 Mai 2006)

iota a dit:
			
		

> Salut.
> 
> Petite question au passage, tu dois gérer les vraies règles du jeu de dames ?
> Avec prise de pions multiple et distinction entre pion (mouvements limités) et dame (mouvements sans contrainte) ?
> ...



non je ne crois pas car comme tu as pu le voir j'ai donné des liens vers des src de jeux 
qui ont le meme type de complexité
l'exercice ici c'est déja maitrisé les matrices

en effet la base est mathématique
il n'a pas voulu prendre son papier et son crayon et on voit le dégat
du code


----------



## iota (26 Mai 2006)

tatouille a dit:
			
		

> non je ne crois pas car comme tu as pu le voir j'ai donné des liens vers des src de jeux
> qui ont le meme type de complexité
> l'exercice ici c'est déja maitrisé les matrices


Ouais, je pense que c'est juste des déplacements de pion simple avec prise des pions de l'adversaire.
Car si c'est les vraies règles, vu comment c'est parti... 

Donc, je vois pas trop où est la difficulté (si on connaît un minimum le C ).
Pour les bases mathématiques, t'as même pas de calcul matriciel ou autre à faire.

La gestion de déplacement, c'est pas compliqué, l'utilisateur rentre les coordonnées du départ du mouvement et celle de l'arrivé, on vérifie que le déplacement est correct (déplacement en diagonal, vérifier qu'on ne vient pas prendre la place d'un autre pion, amplitude du déplacement à vérifier...).

@+
iota


----------



## tatouille (26 Mai 2006)

iota a dit:
			
		

> Ouais, je pense que c'est juste des déplacements de pion simple avec prise des pions de l'adversaire.
> Car si c'est les vraies règles, vu comment c'est parti...
> 
> Donc, je vois pas trop où est la difficulté (si on connaît un minimum le C ).
> ...


le problème je crois c'est qu'il n'a pas été voir directement son prof en début d'année et qu'il avait certaines difficultés à comprendre des fondamentaux qui sont au dela du language

et je crois que son prof aurait trouvé des solus quitte à faire des cours supplémentaires
attendre de sauter ds le trou pour s'appercevoir qu'on a pas de parachute

...


----------



## p4bl0 (26 Mai 2006)

tatouille a dit:
			
		

> le problème je crois c'est qu'il n'a pas été voir directement son prof en début d'année et qu'il avait certaines difficultés à comprendre des fondamentaux qui sont au dela du language
> 
> et je crois que son prof aurait trouvé des solus quitte à faire des cours supplémentaires
> attendre de sauter ds le trou pour s'appercevoir qu'on a pas de parachute
> ...


je suis d'accord avec toi, je pense donc que le mieux et qu'il rende à son prof un jeu de dame de base (juste déplacement, manger, puis gagné/perdu quand une équipe n'a plus de pion) et qu'il passe ensuite du temps à lire les tuto de C précédemment cités.

Ensuite une discussion pleine de question avec son prof ne peut pas lui faire de mal


----------



## Zeusviper (27 Mai 2006)

salut!
je me demande juste dans quelle école tu es? 

sinon perso mon premier projet de C était comme dans tt les cours l'utilisation d'une matrice, mais les bases du C avaient été vues auparavant dans des séances de td, je vois pas comment le prof a pu vous lacher la dedans sans vous donner d'indications?!

sinon les concepts méthodes, objets et cie... pour les bases du C, c pas terrible niveau simplicité et compréhension!


sinon par rapport à ton "joli" code!
pense aux boucles imbriquées tes boucles for du début!!!!), aux switch case, et à faire des petites fonctions au code court, clair et commenté.
tout projet doit passer par une vraie reflexion sur ce que tu dois faire, sur la logique de ton programme, sur la manière dont il va fonctionner, l'affichage doit venir en dernier puisque dépendant des choix que tu aura du faire.

++


----------



## Mac iMesser (27 Mai 2006)

AMHA, tu vas te planter   et c'est une bonne chose. Désolé de te le dire comme ça, mais ta demande d'aide à quelques jours du délai est une plaisanterie... Des "étudiants" comme ça, il n'y en que trop...

Un conseil cependant : commence déjà par méditer sur la géométrie très spéciale d'un damier. (Tu sais jouer aux dames, au moins ?   ) Tes cours de géométrie analytique vont enfin t'être utiles.  

Réfléchis aux relations mathématiques simples que tu peux établir entre les coordonnées des cases en diagonale... Joue avec les indices... Tu vois   ? Ce n'est pas si compliqué. Quelle relation doit être vérifiée pour qu'un pion soit "en prise" ? par un pion ? par une dame ?

Passe ensuite tout ton tableau en int... Les valeurs numériques, c'est plus facile à gérer... Imbrique les boucles, etc... 

Dernier conseil : oublie l'affichage pour un moment et considère le damier "_in abstracto_", tout à fait indépendamment de son affichage...


----------



## tatouille (28 Mai 2006)

Mac iMesser a dit:
			
		

> AMHA, tu vas te planter   et c'est une bonne chose. Désolé de te le dire comme ça, mais ta demande d'aide à quelques jours du délai est une plaisanterie... Des "étudiants" comme ça, il n'y en que trop...
> 
> Un conseil cependant : commence déjà par méditer sur la géométrie très spéciale d'un damier. (Tu sais jouer aux dames, au moins ?   ) Tes cours de géométrie analytique vont enfin t'être utiles.
> 
> ...



http://fr.wikipedia.org/wiki/Théorème_de_Cayley-Hamilton


----------

