Exemple #1
0
//Funcao que simula o duelo entre os jogadores 1 e 2
void duelo(struct deck *jogador1, struct deck *jogador2, struct deck *aux, struct dados *dados)
{
	struct carta cartaaux, carta1, carta2;
	int jogadas=0;
	clock_t start, end;
	clock_t diff;

	start=clock();

	while(tamanho(jogador1)!=0 && tamanho(jogador2)!=0)
	{
		carta1 = desenfileira(jogador1);
		carta2 = desenfileira(jogador2);

		if(carta1.valor > carta2.valor){
			while(tamanho(aux)!=0){
				cartaaux = desenfileira(aux);
				enfileira(cartaaux.valor, cartaaux.naipe, jogador1);
			}
			
			enfileira(carta1.valor, carta1.naipe, jogador1);
			enfileira(carta2.valor, carta2.naipe, jogador1);

		}else if(carta1.valor < carta2.valor){
			while(tamanho(aux)!=0){
				cartaaux = desenfileira(aux);
				enfileira(cartaaux.valor, cartaaux.naipe, jogador2);
			}

			enfileira(carta1.valor, carta1.naipe, jogador2);
			enfileira(carta2.valor, carta2.naipe, jogador2);
		}else{
			if(tamanho(aux)!=0){
				carta1 = desenfileira(jogador1);
				carta2 = desenfileira(jogador2);
				enfileira(carta1.valor, carta1.naipe, aux);
				enfileira(carta2.valor, carta2.naipe, aux);
			}
			enfileira(carta1.valor, carta1.naipe, aux);
			enfileira(carta2.valor, carta2.naipe, aux);
		}
		jogadas++;
	}
	end=clock();
	diff = (end-start);
	printf("Foram feitas %d jogadas\n", jogadas);
	printf("A duracao foi de %lu milisegundos\n", diff);
	insereDados(diff, jogadas, dados);
}
Exemple #2
0
Fichier : ex6.c Projet : Limaa/aps1
void alteraLista(Lista *original, Lista *alterada)
{
	destroyLista(alterada);

	Fila letras;
	iniciaFila(&letras);

	Pilha numeros;
	iniciaPilha(&numeros);

	// analisa os elementos da lista original
	struct elementoLista *aux = original->inicio;
	while(aux != NULL)
	{
		if(isalpha(aux->info))
			enfileira(&letras, aux->info);
		else if(isdigit(aux->info))
			empilha(&numeros, aux->info);
		else
			printf("Invalid character (%c).\n", aux->info);
		
		aux = aux->next;
	}
	
	//adiciona os valores a lista alterada
	while(emptyFila(&letras) != 1)
		pushBackLista(alterada, desenfileira(&letras));
	while(sizePilha(&numeros) != 0)
		pushBackLista(alterada, desempilha(&numeros));
	
	destroyFila(&letras);
	destroyPilha(&numeros);
}
Exemple #3
0
//Funcao que monta os decks dos jogadores 1 e 2
void distribui(struct deck *jogador1, struct deck *jogador2, struct carta *primeira){
	struct carta *aux;
	int i=0;

	aux = primeira;

	for(i=0;i<26;i++){
		enfileira(aux->valor, aux->naipe, jogador1);
		aux = aux->prox;
	}

	for(i=26;i<52;i++){
		enfileira(aux->valor, aux->naipe, jogador2);
		aux = aux->prox;
	}
}
Exemple #4
0
// insereDisciplina: enfileira a disciplina informada na fila
void insereDisciplina(tFila *f){
	tDisciplina disciplina;
	cabecalho("Cadastro");
		
	printf("\t\tCodigo: ");
	fflush(stdin);
	scanf("%d", &disciplina.codigo);

	printf("\t\tNome da Disciplina: ");
	fflush(stdin);
	gets(disciplina.nome);

	printf("\t\tCarga Horaria: ");
	fflush(stdin);
	scanf("%f", &disciplina.cargaHoraria);

	// enfileira a disciplina na fila
	enfileira(disciplina, f);
}