Exemple #1
0
/* test Position*/
int main()
{
Position pos1 = creerPosition(2,1);

Position pos2 = creerPosition(2,4);
int res1 = surGrille(2,4);

int res2 = positions_relie(pos1,pos2);
printf("%d",res2);

return 0;
}
Exemple #2
0
void placerBateaux(JOU joueur){
	int tailles_bateaux[5]={1,2,3,3,4};
	int i=0;
	for(i=0;i<5;i++){
		BAT bateau=creerBateau(tailles_bateaux[i]);
		int n_position=0;
		for(n_position=0;n_position<tailles_bateaux[i];n_position++){
				int abscisse=0;
				int ordonnee=0;
				printf("Entrez l'abscisse de la position %d du bateau %d:\n",i+1,n_position+1);
				scanf("%d",&abscisse);
				printf("Entrez l'abscisse de la position %d du bateau %d:\n",i+1,n_position+1);
				scanf("%d",&abscisse);
				POS position=creerPosition(abscisse, ordonnee);
				while(!coordonneeValide(position)){
					printf("Coordonnees invalide...");
					printf("Entrez l'abscisse de la position %d du bateau %d:\n",i+1,n_position+1);
					scanf("%d",&abscisse);
					printf("Entrez l'ordonnee de la position %d du bateau %d:\n",i+1,n_position+1);
					scanf("%d",&ordonnee);
					set_x(position,abscisse);
					set_y(position,ordonnee);
				}/*end while*/
				ajouterPosition(bateau,position);
		}/*end for*/
	ajouterBateau(joueur,bateau);
	}/*end for*/
}
Exemple #3
0
SPosition* transformerPosition(char* saisie)
{
	SPosition* res = NULL;
	int x,y;
	int taille_chaine = strlen(saisie);
	if (taille_chaine == 2)
	{
		x = (int)(saisie[0] - 'A');
		y = (int)(saisie[1] - '0' - 1);
		res = creerPosition(x,y);
	}
	else if(taille_chaine == 3)
	{
		x = (int)(saisie[0] - 'A');
		y = (int)(saisie[1] - '0')*10;
		y += (int)(saisie[2] - '0' - 1);
		res = creerPosition(x,y);
	}
	return res;
}
Bateau creerBateau(Position p, char sens, int l)
{
    /*Creer un bateau de position de tete p, avec les nouvelles position qui suivent le sens de s.*/
    Bateau *Bat=malloc(sizeof(int)+ sizeof(Position)+2*sizeof(*TListe)); //Car la liste contiendra des positions et elle est constituée de 2 pointeurs suivant et précédent du type liste doublement chainée
    Bat->longueur=l;
    Position *p1=creerPosition(getXPos(p),getYPos(p));
    AjoutDebut(Bat->positions, p1);
    int i;
    for (i=1;i<l;i++){
        if (sens=='v'){
            setYPos(p1,getYPos(p1)+1);
        }
        else if (sens=='h'){
            setXPos(p1,getXPos(p1)+1);
        }
        AjoutDebut (Bat->positions, p1);
    }
    return Bat;
}
Exemple #5
0
SPosition* positionHaut(SPosition* position)
{
	return creerPosition(abscissePosition(position), ordonneePosition(position)+1);
}
Exemple #6
0
SPosition* positionBas(SPosition* position)
{
	return creerPosition(abscissePosition(position), ordonneePosition(position)-1);
}
Exemple #7
0
SPosition* positionDroite(SPosition* position)
{
	return creerPosition(abscissePosition(position)+1, ordonneePosition(position));
}
Exemple #8
0
SPosition* positionGauche(SPosition* position)
{
	return creerPosition(abscissePosition(position)-1, ordonneePosition(position));
}