示例#1
0
void color_ideal_print(unsigned int color, IDEAL* M,
        int (*condition)(unsigned long long)) {

    if (condition == NULL) {
        ideal_print(M);
        return;
    }

    /* internals of ideal_print */
    unsigned long long i;

    if (M == NULL)
        return;

    fprintf(stdout, "[");

    for (i = 0; i < (M->q - 1); ++i) {
        if (condition(i)) {
            color_printf(color, " %u", M->u_s[i]);
        } else {
            fprintf(stdout, " %u", M->u_s[i]);
        }
    }

    /* i = M->q - 1 */
    if (condition(i)) {
        color_printf(color, " %u ]\n", M->u_s[i]);
    } else {
        fprintf(stdout, " %u ]\n", M->u_s[i]);
    }
}
static void ut_print_report_end_plain(void)
{
    bool success = (__ut_pass_count + __ut_skip_count == __ut_test_count);

    color_printf("%s", success ? COLOR_SUCCESS : COLOR_FAILURE);
    color_printf("    RESULT: %d tests, %d passed, %d skipped, %d failed%s\n",
           __ut_test_count,
           __ut_pass_count,
           __ut_skip_count,
           __ut_test_count - (__ut_pass_count + __ut_skip_count),
           COLOR_NORMAL);
}
示例#3
0
int m_print_tree(ComputationNode * node, int depth, bool last) {
  int numArgs = node->numArgs;
  bool hasChildren = (bool) numArgs;

  print_space(depth, last );
  const char * color = node->valid ? GREEN : RED;
  color_printf(color, "%s ", node->name);
  printf("[%d]\n", node->value);

  if (!last) {
    printf("  ");
    print_pipes(depth + hasChildren);
    printf("\n");
  } else {
    printf("  ");
    print_pipes(depth - 1);
    printf("\n");
  }

  for (int i = 0; i < numArgs; i++){
    printf("  ");
    m_print_tree(node->args[i], depth + 1, i == numArgs - 1);
  }

}
示例#4
0
void espace_gauche (int nb_gauche){ //Permet de faire la partie gauche d'une case de 2048

	COULEUR_TERMINAL couleur[6]={BLUE,CYAN,MAGENTA,RED,YELLOW,GREEN};

	if ((int)(log10(nb_gauche))==0) // Si le nombre de la grille a un chiffre
		color_printf(WHITE,couleur[((int)log2(nb_gauche))%6],"   "); // Place 3 espaces a gauche du nombre

	else if ((int)(log10(nb_gauche))==1 || ((int)(log10(nb_gauche))==2)) // Si le nombre de la grille a deux ou trois chiffres
		color_printf(WHITE,couleur[((int)log2(nb_gauche))%6],"  ");

	else if ((int)(log10(nb_gauche))==3 || ((int)(log10(nb_gauche))==4)) // Si le nombre de la grille a quatre ou cinq chiffres
		color_printf(WHITE,couleur[((int)log2(nb_gauche))%6]," ");



}
示例#5
0
void espace_droite (int nb_droite){

	COULEUR_TERMINAL couleur[6]={BLUE,CYAN,MAGENTA,RED,YELLOW,GREEN};

	if ((int)(log10(nb_droite))==0 || ((int)(log10(nb_droite))==1))  // Si le nombre de la grille a un chiffre
		color_printf(WHITE,couleur[((int)log2(nb_droite))%6],"   "); // Place 3 espaces a droite du nombre avec la meme couleur que celle du nombre

	else if ((int)(log10(nb_droite))==2 || ((int)(log10(nb_droite))==3)) // Si le nombre de la grille a deux ou trois chiffres
		color_printf(WHITE,couleur[((int)log2(nb_droite))%6],"  ");

	else if ((int)(log10(nb_droite))==4 || ((int)(log10(nb_droite))==5)) // Si le nombre de la grille a quatre ou cinq chiffres
		color_printf(WHITE,couleur[((int)log2(nb_droite))%6]," ");



}
static void ut_print_section_beginning_plain(const char *testsuite_name)
{
    if (strlen(testsuite_name) == 0)
	return;

    color_printf("%sSECTION '%s'%s\n", COLOR_TITLE, testsuite_name, COLOR_NORMAL);
}
static void ut_printf_al_plain(const char *where, const char *format, va_list al)
{
    switch (__ut_currently_in)
    {
    case __UT_IN_SETUP:
        color_printf("       SETUP: ");
        break;

    case __UT_IN_CLEANUP:
        color_printf("     CLEANUP: ");
        break;

    case __UT_IN_TEST:
        color_printf("    %s %3d: ", where, __ut_test_index + 1);
    }
    color_vprintf(format, al);
    color_printf("\n");
}
示例#8
0
void color_ideal_print_verbose(unsigned int color, IDEAL* M,
        int (*condition)(unsigned long long)) {

    if (condition == NULL) {
        ideal_print_verbose(M);
        return;
    }

    /* internals of ideal_print_verbose */
    unsigned long long i;

    if (M == NULL)
        return;

    for (i = 0; i < (M->q - 1); ++i) {
        if (M->u_s[i]) {
            if (condition(i)) {
                color_printf(color, "u_%llu ", i);
            } else {
                fprintf(stdout, "u_%llu ", i);
            }
        }
    }

    /* i = M->q - 1 */
    if (!M->u_s[i]) {
        /* only the whole group algebra contains u_(q-1) */
        fprintf(stdout, "\b\n");
    } else {
        if (condition(i)) {
            color_printf(color, "u_%llu\n", i);
        } else {
            fprintf(stdout, "u_%llu\n", i);
        }
    }
}
static void ut_list_tests(void)
{
    int s, t;
    for (s = 0; s < __ut_section_count; ++s)
    {
        if (! __ut_test_quiet)
            ut_print_section_beginning_plain(sections[s].name);
	for (t = 0; t < sections[s].nb_tests; ++t)
	{
            color_printf("    %s %3d: %s\n", "TEST",
		      sections[s].tests[t].index + 1, sections[s].tests[t].name);
	}
        if (! __ut_test_quiet)
            ut_print_section_end_plain();
    }
}
static void ut_random_init(void)
{
#ifdef WIN32
    /* XXX  Do the same on Linux? Why did we bother with /dev/urandom? */
    srand(time(NULL));
#else
    int ret;
    int fdrandom = -1;
    int ut_random_seed;

    fdrandom = _ut_open("/dev/urandom", O_RDONLY);
    ret = read(fdrandom, &ut_random_seed,
             sizeof(ut_random_seed));
    _ut_close(fdrandom);
    if (ret != sizeof(ut_random_seed))
    {
       color_printf("cannot initialize random number generator\n");
       abort();
    }
    srand(ut_random_seed);
#endif
}
示例#11
0
void affichage (jeu *p) {


	COULEUR_TERMINAL couleur[6]={BLUE,CYAN,MAGENTA,RED,YELLOW,GREEN};

	int i,j,k,l,m,s,q,r;  // i,j et k seront les iterateurs utilisés dans les boucles suivantes
	s=0; // iterateur utilisé dans la boucle 1 pour atteindre le nombre de valeur de la grille, il permet de parcourir la grille et d'afficher une couleur differente pour chaque valeur
	k=0; // iterateur utilisé dans la boucle 2 pour atteindre le nombre de valeur de la grille, il permet de parcourir la grille et d'afficher une couleur differente pour chaque valeur
	q=0; // iterateur utilisé dans la boucle 3 pour atteindre le nombre de valeur de la grille, il permet de parcourir la grille et d'afficher une couleur differente pour chaque valeur
	
	
	for (m=0;m<(7*(p->n));m++) {		
		
		printf("*");	
	
	}
	
	printf("\n");
	printf(" %s",p->pseudo);
	printf(" ");
	color_printf(WHITE,BLACK,"%d\n",p->score);
	
	for (m=0;m<(7*(p->n));m++) {		
		
		printf("*");	
	
	}

	printf("\n");

	for(i=0;i<(p->n);i++) {  // Boucle principale s"éxecutant n fois

		for(l=0;l<(p->n);l++) { // Boucle  1 affichant des espaces au dessus des nombres formant le haut de la case

			if(p->grille[s]==0)
					color_printf(WHITE,BLACK,"       "); // Crée un espace dessus noir si la valeur de la grille est de 0 (valeur par défaut)

			else
				color_printf(WHITE,couleur[((int)log2(p->grille[s]))%6],"       ");
				s++;
		}
		printf("\n");

		for(j=0;j<(p->n);j++) {  // Boucle 2 permattant d'afficher une ligne de la grille en s'arretant a la n ème valeur

				if(p->grille[k]==0)
					color_printf(WHITE,BLACK,"   "); // Crée un epsace gauche noir si la valeur de la grille est de 0 (valeur par défaut)

				else
					espace_gauche(p->grille[k]); // Crée l'espace avant le nombre dans la case si la valeur de la grille n'est pas égale a 0

				if(p->grille[k]==0)
					color_printf(WHITE,BLACK,"."); // Met un point a la place d'un chiffre si la valeur de la grille est de 0 (valeur par défaut)

				else
					color_printf(WHITE,couleur[((int)log2(p->grille[k]))%6],"%d",p->grille[k]); // Affiche une case avec une des 6 couleurs du tableau couleur qui sera choisie en fonction de log2 de la valeur grille[k] si la valeur de la grille n'est pas égale a 0

				if(p->grille[k]==0)
					color_printf(WHITE,BLACK,"   "); // Crée un espace droit noir si la valeur de la grille est de 0 (valeur par défaut)

				else
					espace_droite(p->grille[k]); // Crée l'espace apres le nombre dans la case si la valeur de la grille n'est pas égale a 0
			k++;
		}
		printf("\n");

		for(r=0;r<(p->n);r++){ // Boucle 3 affichant des espaces au dessous des nombres formant le bas de la case

			if(p->grille[q]==0)
					color_printf(WHITE,BLACK,"       "); // Crée un epsace dessous noir si la valeur de la grille est de 0 (valeur par défaut)

			else
				color_printf(WHITE,couleur[((int)log2(p->grille[q]))%6],"       ");
				q++;


		}
		printf("\n");  // Saut de ligne en fin de ligne afin d'afficher une nouvelle ligne au bout de n valeurs affichées
	}

}
static void ut_print_report_beginning_plain(const char *ut_program)
{
    color_printf(COLOR_TITLE "====== TEST SUITE '%s' ======" COLOR_NORMAL "\n",
           ut_program);
}
示例#13
0
文件: jouer.c 项目: Minoflaz/2048_C
void jouer(jeu *p) {

	int fin,mvmt,debut;
	fin=0;
	debut=0;
	Key saisie;
	
	while(debut!=3) {  // Menu de départ
		
		debut=menu(p);
		
		if(debut==2) // Au cas ou la personne quitte des le debut
			exit(0);
		
	}

	ajouteValAlea (p);  // Commence la partie avec un 2 ou un 4 sur la grille
	debutTerminalSansR();

	while(fin!=2 && finPartie(p)==0) {
		
		affichage(p);
		saisie = lectureFleche();

		if (saisie==KEY_DOWN) { // Si le joueur veut déplacer en bas
			mvmt=mouvement(p,0);
			if (mvmt>0)   // Si il y a eu un deplacement alors on ajoute un 2 ou un 4
				ajouteValAlea (p);
			clear_terminal();
		}

		else if (saisie==KEY_RIGHT) {  // Si le joueur veut déplacer à droite
			mvmt=mouvement(p,1);
			if (mvmt>0)   // Si il y a eu un deplacement alors on ajoute un 2 ou un 4
				ajouteValAlea (p);
			clear_terminal();
		}

		else if (saisie==KEY_UP) { // Si le joueur veut déplacer en haut
			mvmt=mouvement(p,2);
			if (mvmt>0)   // Si il y a eu un deplacement alors on ajoute un 2 ou un 4
				ajouteValAlea (p);
			clear_terminal();
		}

		else if (saisie==KEY_LEFT) {  // Si le joueur veut déplacer à gauche
			mvmt=mouvement(p,3);

			if (mvmt>0)   // Si il y a eu un deplacement alors on ajoute un 2 ou un 4
				ajouteValAlea (p);
			clear_terminal();
		}

		else if (saisie==KEY_ESCAPE) {
			fin=menu(p); //fin prendra la valeur retournée par menu qui vaudra donc 2 si lutilisateur veut quitter la partie
		}
	}

	finTerminalSansR();
	clear_terminal();
	
	if (gagne(p)==1){  // Si la personne gagne en atteignant le score voulu
		affichage(p);
		printf("\n     ");
		color_printf(BLACK,WHITE,"C'EST GAGNE WE DID IT HOURRA, VOUS GAGNEZ UNE PATATE ! \n");
	}

	
	else {  // Si la personne perd lorsqu'elle n'a plus de case disponible et aucun mouvement faisable
		affichage(p);
		printf("\n     ");
		color_printf(BLACK,WHITE,"GAME OVER \n");
	}
		
	if (fin==2) {  // Si l'utilisateur quitte volontairement a l'aide du menu
		clear_terminal();
		printf("     ");
		printf("Vous avez volontairement quitté la partie !\n");
		}
		

}