Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- #include <stdlib.h>
- struct auxiliar
- {
- int aux_hab[50];
- };
- struct cartas
- {
- char nome[40];
- char jogada[40];
- int hab[50];
- int qtde_hab;
- };
- void printar(struct cartas pnt[], struct auxiliar hab[], int qtde, char primeiro[], int c1, int c2)
- {
- //printf("%s\t%s\n", pnt[4].nome, pnt[1].jogada);
- printf("%d %d\n", c1, c2);
- if(c2 == qtde)
- {
- printf("retorno\n");
- return;
- }
- else
- {
- if(c2 == 0)
- {
- if(strcmp(primeiro, pnt[c1].nome) == 0)
- {
- //printf("print %d %s\n", c2, pnt[c1].nome);
- c2 += 1;
- c1 = 0;
- printar(pnt, hab, qtde, primeiro, c1, c2);
- }
- else
- {
- printar(pnt, hab, qtde, primeiro, c1+1, c2);
- }
- }
- else
- {
- if(strcmp(primeiro, pnt[c1].nome) == 0)
- {
- printar(pnt, hab, qtde, primeiro, 0, c2+1);
- }
- else if(strcmp(pnt[c2].jogada, pnt[c1].nome) == 0)
- {
- //printf("print %d %s\n", c2, pnt[c1].nome);
- c2 += 1;
- c1 = 0;
- printar(pnt, hab, qtde, primeiro, c1, c2);
- }
- }
- printar(pnt, hab, qtde, primeiro, c1+1, c2);
- }
- }
- void ordenar(struct cartas ordem[], struct auxiliar g[], int qtde, char aux[], int count)
- {
- int i, j, k;
- if(count == qtde)
- {
- return;
- }
- else
- {
- for(i = 0; i < qtde; i++)
- {
- for(j = 0; j < qtde-1; j++)
- {
- if(strcmp(ordem[j].nome, ordem[j+1].nome) > 0)
- {
- strcpy(aux, ordem[j+1].nome);
- strcpy(ordem[j+1].nome, ordem[j].nome);
- strcpy(ordem[j].nome, aux);
- for(k = 0; k < 50; k++)
- {
- g[j].aux_hab[k] = ordem[j+1].hab[k];
- ordem[j+1].hab[k] = ordem[j].hab[k];
- ordem[j].hab[k] = g[j].aux_hab[k];
- }
- }
- }
- }
- // printf("%s\n", ordem[count].jogada);
- ordenar(ordem, g, qtde, aux, count+1);
- }
- }
- void ler_struct(struct cartas ler[], int qtde, int count)
- {
- int i;
- if(count == qtde)
- {
- return;
- }
- else
- {
- scanf(" %[^\n]s", ler[count].nome);
- scanf("%d", &ler[count].qtde_hab);
- for(i = 0; i < ler[count].qtde_hab; i++)
- {
- scanf("%d", &ler[count].hab[i]);
- }
- scanf(" %[^\n]s", ler[count].jogada);
- }
- ler_struct(ler, qtde, count+1);
- }
- int main()
- {
- int qtde;
- scanf("%d", &qtde);
- struct cartas c[qtde];
- struct auxiliar a[qtde];
- ler_struct(c, qtde, 0);
- char aux[40];
- ordenar(c, a, qtde, aux, 0);
- char inicial[40];
- scanf(" %[^\n]s", inicial);
- printar(c, a, qtde, inicial, 0, 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement