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 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);
}