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 choix_joueur(int nb_All, int *cont, SDL_Surface *ecran, SDL_Surface *allumette, SDL_Rect posAllumette[], int nb_t, int nb_j, int info_ia[3]) { SDL_Event event ; int cont2 = 1, nb_enl = 40 ; while ((cont2 || (nb_All<=nb_enl)) && *cont) { afficher_jeu(ecran, nb_All, allumette, posAllumette, nb_t, nb_j, info_ia) ; SDL_WaitEvent(&event) ; switch (event.type) { case SDL_QUIT : quitter(cont, ecran) ; break ; case SDL_KEYDOWN : switch (event.key.keysym.sym) { case SDLK_ESCAPE : quitter(cont, ecran) ; break ; case SDLK_KP1 : nb_enl = 1 ; cont2 = 0 ; break ; case SDLK_KP2 : nb_enl = 2 ; cont2 = 0 ; break ; case SDLK_KP3 : nb_enl = 3 ; cont2 = 0 ; break ; case SDLK_1 : nb_enl = 1 ; cont2 = 0 ; break ; case SDLK_2 : nb_enl = 2 ; cont2 = 0 ; break ; case SDLK_3 : nb_enl = 3 ; cont2 = 0 ; break ; default : break ; } break ; default : break ; } } return nb_enl ; }