Jeux en 2D mode console

fifiprog Messages postés 2 Statut Membre -  
louis59496 Messages postés 152 Statut Membre -
Bonsoir a tous
je dois creer un jeux sur un damier 10x10 ou tout d'abord deux joueurs pourrons s'affronter c'est le jeux des loups et agneau le but est que l'agneau puisse depasser les loups et les loups le bloquer (l'encercler)
un des pions doit obligatoirement progresser d'une case l'agneau peut reculer d'une case ou avancer!
le probleme avec mon code c'est avec les blindages je n'arrive pas a eviter au joueur de donner une case qui est hors du damier ou qui ne soit pas vide
svp j'ai besoin de votre aide
voici mon code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

// Fonction afficher matrice

void affichemat(char tab[10][10])
{
int i,j;
i=0;
j=0;

while ((i>=0) && (i<10))
{
while ((j>=0)&& (j<10))
{
printf("%c ", tab[i][j]);
j++;
}
i++; j=0;
printf("\n");
}
}

// FCT Pas de depassement (pos reste ds damier)
int debordement(int x, int y)
{
int r;

if ((x>9)||(y>9))
r=0;
else
r=1;
return r;
}
// FCT CaseVideOk
int casevide (char tab[10][10], int x, int y)
{
int r=0;

if(tab[x][y]==' ')
r=0;
else
r=1;
return (r);
}

// FCT AgneauEncerclé

typedef struct position{
// char type;
int pos_x;
int pos_y;
} pos_st ;

typedef struct position2{
// char type;
int pos_x;
int pos_y;
} loup ;//do

int main()
{ //Variables
char verification;
char tab[10][10];
int s,k;
int i=0,j=0;
char n=219;
char b=255;
loup l;
pos_st Agneau;
int x,y;

printf("debut jeux!!! \n");
printf("pour jouer tapez sur une touche \n");
system("PAUSE");
system("CLS");

// remplissage de la matrice tab
while ((i>=0) && (i<10))
{
while ((j>=0)&& (j<10))
{
if ( (i+j)%2==0 )
{
tab[i][j]=n ;
}
else // if ((i+j)%2==1)
{
tab[i][j]=b ;
}
j++;
}
i++; j=0;
}
i=0;
j=0;

// Initialisation postion agneau
Agneau.pos_x=0;
Agneau.pos_y=5;

tab[0][5] = 'A';

// Initialisation postion loups
for(i=0;i<10;i++)
if(i%2 == 0)
tab[9][i] = 'L';

/*DEBUT DES TEST ET TRAITEMENT*/
while(1)
{

/* TOUR AGNEAU */
system("CLS");
affichemat(tab);

printf("\nBonjour l'agneau, vous etes en [%d:%d]\n", Agneau.pos_x,Agneau.pos_y);
printf("donnez les positions x et y de la case voulue!\n");
// printf("\nligne x: ");
// scanf("%d", &x);
// printf("\ncolonne y: ");
// scanf("%d", &y);

s=1;
// Deplacemet de l'agneau et des loups
//while(s=1) //si la case donnée n'est pas vide s=1 tq ce n'est pas la bonne case on boucle :)

do
{ verification=0;
printf("\nligne x: ");
scanf("%d", &x);
printf("\ncolonne y: ");
scanf("%d", &y);
//s= casevide(tab, x, y); //si la case est vide!
//printf("%d", &s); // il y'a une erreur s!=0 ou de 1??
//if (s==0)
//{
if(tab[x][y]=b){

tab[x][y] = 'A';
tab[Agneau.pos_x][Agneau.pos_y] = ' ';

Agneau.pos_x = x ;
Agneau.pos_y = y ;
verification=1;}

else{

printf("\nla case donnee n'est pas vide\n");
system("PAUSE");
verification=0;
}

}while(verification==0); //probleme elle ne boucle pas ?

//}

/* FIN TOUR AGNEAU */

/* DEBUT TOUR LOUP */

system("CLS");
affichemat(tab);
printf("\nBonjour les loups\n");
printf("donnez les positions x et y de la case départ voulue!\n");

do{
verification = 0;
printf("ligne x: ");
scanf("%d", &l.pos_x);
printf("\ncolonne y: ");
scanf("%d", &l.pos_y);
printf("donnez les positions x et y de la case arrivée voulue!\n");
printf("ligne x: ");
scanf("%d", &x);
printf("\ncolonne y: ");
scanf("%d", &y);

if( tab[l.pos_x][l.pos_y] == 'L'){

verification = 1;
// Algo :
tab[x][y] = 'L';
tab[l.pos_x][l.pos_y] = ' ';

l.pos_x = x ;
l.pos_y = y ;
}
else
printf("\nErreur ! \n\n");

} while ( verification ==0);
/* FIN TOUR LOUP */

}
return 0;
}
A voir également:

1 réponse

louis59496 Messages postés 152 Statut Membre 6
 
Bonjour, tu n'est pas dans le bonne endroit vas dans le sous forum "programmation"
;-)
si non, tu me donne envie de faire ton jeu (le faire pas y jouer... xD)
aurevoir, et ne t'en fait pas, tu ne pouvais pas savoir que cette partie exister, et de toute façons, l'erreur est humain alors ne t'en fait pas !!!

AH et met ton code en code, si non personne ne le lira (à côté de gras italique est souligné, tu a code)
0