Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
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 ;
}