Beispiel #1
0
Datei: ex6.c Projekt: 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);
}
int main(){
	srand((unsigned) time(NULL)); //para alterar o preenchimento da matriz
	matriz *m = iniciaMatriz();
	setor *jogador = iniciaSetor();
	pilha *p = iniciaPilha();
	preencheMatrizCom01(m);
	imprimeMatriz(m);
	comecaJogo(jogador);
	printf("Posição do jogador : x = %d y = %d\n", getXJogador(jogador), getYJogador(jogador));
	while(!fimDeJogo(jogador)){
		mover(jogador, m, p);
	}
	if(getXJogador(jogador) == 9&& getYJogador(jogador) == 9)	//jogo bem sucedido
		imprimeMatriz(m);
	//imprime o caminho
	free(m);
	free(jogador);
	free(p);
	return 0;
}