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; }
int main (void) { printf("Lancement du programme des tests du module liste \n"); printf("\n"); TListe l = CreerListe() ; if(EstVide(l)) printf("La liste nouvellement crée est bien vide \n"); else printf("La liste n'est pas vide\n"); AfficheListe(l); l=AjoutDebut(l, 3); printf("Element 3 ajouté \n"); AfficheListe(l); l=AjoutDebut(l, 5); printf("Element 5 ajouté \n"); AfficheListe(l); l=AjoutDebut(l, 1); printf("Element 1 ajouté \n"); AfficheListe(l); l=AjoutFin(l, 11); printf("Element 11 ajouté en fin de liste \n"); AfficheListe(l); l=AjoutFin(l, 14); printf("Element 11 ajouté en fin de liste \n"); AfficheListe(l); printf("Premier de la liste : %d\n",Premier(l)); printf("Premier(Vide) va provoquer une erreur\n"); printf("Premier de la liste : %d\n",Premier(CreerListe())); printf("Dernier de la liste : %d\n",Premier(l)); printf("Dernier(Vide) va provoquer une erreur\n"); printf("Dernier de la liste : %d\n",Premier(CreerListe())); /*l=SupprimerTete(l); printf("Element de tete supprimé\n"); AfficheListe(l);*/ /**************************************************/ /* A vous de completer pour tester les fonctions */ /* SupprimerFin */ /* NbOccurence */ /**************************************************/ return 0; }