int main(int argc, char const *argv[]) { liste_navire l ; int N ; int compteur = 0,i ,j ; char coup[10] ; grille gc , g ; // par defaut s'il n'y pas de deuxième argument on initie N à 10 if(argc<2){ N = 10 ; } else{ N = char_to_int(argv[1],0); } gc = init_grille ( N , ' ' ) ; g = init_grille(N, 'B') ; printf("Le joueur 1 doit placer les bateaux \n"); usr_remplir_grille(g, N ); //remplir_gille(g,N); l = cree_liste_navires(g, N); printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nau joueur 2 d'essayer de couler les navires.\n"); while(!jeu_fini(l)){ printf("\nVoici la grille\n"); affiche_etat_coules(gc, N ); printf("veuillez entrer les coordonées du tir (ex: \"E5\")\n"); scanf("%s",coup); if(strlen(coup)<2){ printf("coordonnée trop court il faut rentrer les 2 paramètre colonne et ligne\n"); } else{ j = coup[0] - 'A' ; i = char_to_int(coup, 1); if (i<0 || j<0 || i>(N-1) || j > N-1) { printf("\n\nVos coordonnées sortent du tableau ou son invalide \n\n"); } else{ joue(g,gc,N,l,i,j); printf("\n"); compteur++ ; } } } printf("vous avez fini le jeu en %d tirs \nLa disposition des bateaux est :\n", compteur ); afficher_jeu(g,N); //libération des grilles free_grille(g,N); free_grille(gc,N); liberer_maillon(l); return 0; }
int main(void) { joueur_t *j1, *j2, *courant; char vainqueur; unsigned int col = 0, ligne = 0; /* Initialisation */ j1 = (joueur_t *) malloc(sizeof(joueur_t *)); j2 = (joueur_t *) malloc(sizeof(joueur_t *)); init_joueur("Joueur 1", 'X', j1); init_joueur("Joueur 2", 'O', j2); courant = j1; srand(time(NULL)); init_grille(); /* Jeu */ printf("Début de la partie\n"); do{ printf("============= Début du tour ==============\n"); debut: saisir_coord(&col, &ligne); col --; ligne --; if(!placer_symbole(col, ligne,courant->symbole)) { printf("Cette case est occupée.\n"); goto debut; } else courant = courant == j1 ? j2 : j1; afficher_grille(); printf("============== Fin du tour ===============\n"); } while(!est_nulle() && !est_gagnee(&vainqueur)); if(est_nulle()) printf("La partie se termine par un match nul.\n"); else printf("La partie a été remportée par %s.\n", vainqueur == j1->symbole ? j1->nom : j2->nom); printf("Partie Terminée\n"); /* Libération mémoire */ free_grille(); free(j1); free(j2); exit(EXIT_SUCCESS); }