示例#1
0
//inicializa
//ITS ALIVE
void inicializa () {
  Node *pecas=NULL;
  pecas=criaPecas();
  pecas=embaralha(pecas);
  monte=distribui(pecas);

}
示例#2
0
void onGetArquivo(char *str){

	char nomeDoArquivo[MAX_NOME_ARQ];
	Header header;
	IdPeer dest;
			
	scanf("%s", str);
	
	inicializaSearch();
	
	//Checa se os tokens estao ok
	if(strcmp(str, "arquivo"))
	{
		printHelp();
		return;
	}

	scanf("%s", str);	

	strcpy(nomeDoArquivo,str);
	
	printf("Nome do arquivo: (%s)\n", nomeDoArquivo);
	
	// Checa se ha algum token depois do nome do arquivo
	if(  (str = strtok(NULL, " ") ) != NULL){
		printHelp();
		return;
	}
	
	if(isValida(SEARCHR) || isValida(GETR)) {
		printf("******************************************************\n");
		printf("Buscando arquivo... \nAguarde para realizar nova busca\n");
		printf("******************************************************\n");
		return;
	}
	
	createHeader(&header, SEARCH, dest);
	header.tamDados = strlen(nomeDoArquivo);
	
	#ifdef DEBUG_SEARCH
		printf("Tamanho do nome do arquivo: %d\n", header.tamDados);
	#endif
	
	distribui(header, nomeDoArquivo);
	setNomeArquivoSearch(nomeDoArquivo);
		
	#ifdef DEBUG_SEARCH
		printf("SEARCH distribuida");
	#endif
	
	InsereMensagemResposta(header.numSeq, SEARCHR);
	SetTimer(DadosAplicacao.intervaloTimeout, TIMER_SEARCHR, 0);
}
示例#3
0
void trataSearch(int sockfd, Header& h, char * nomeArquivo)
{
	Header resposta;
	char dados[1];
	FILE *arquivo;
	char sNomeArquivo[MAX_NOME_ARQ];
	
	strncpy(sNomeArquivo, nomeArquivo, h.tamDados);
	sNomeArquivo[h.tamDados] = '\0';
	
	#ifdef DEBUG_SEARCH
		char tmp[TAM_STR_IP + 1];
		IdPeer2StrIp(tmp, h.remetente);
		printf("\n********** RECEBIMENTO DE SEARCH *************\n");
		printf("Remetente: %s\n", tmp);
		printf("NumSeq: %d\n", h.numSeq);
		printf("********************************************\n\n");		
		
		printf("\n\n\n\n********** VOU CHECAR SE TENHO O ARQUIVO !!!! *************\n");
		printf("\n\n\n\n********** NOME DO ARQUIVO: (%s)", sNomeArquivo);
		
	#endif
	
	arquivo = fopen(sNomeArquivo, "r");
	
	if(arquivo) {
		
		printf("\n\n\n\n********** ARQUIVO ENCONTRADO !!!! *************\n");
		
		createHeader(&resposta, SEARCHR, h.remetente);
		resposta.numSeq = h.numSeq;
		
		dados[0] = calcDistancia(&DadosAplicacao.meuIp, &h.remetente );
		resposta.tamDados = sizeof(unsigned char);
		
		if(!escrevePacote(sockfd, resposta, dados))
			puts("Erro ao enviar SEARCHR MSG");
		
		#ifdef DEBUG_SEARCH
			printf("\n********** RESPONDEU SEARCH *************\n");
		#endif
		
		fclose(arquivo);
	}
	
	//***********************************************************
	distribui(h, nomeArquivo);
	//***********************************************************
	
	#ifdef DEBUG_SEARCH
		printf("\n********** DISTRIBUIU SEARCH *************\n");
	#endif
}
示例#4
0
void disparaHello()
{
	Header hello;
	IdPeer destino;

	// Destino serah setado pela funcao distribui()	
	memset( &destino, 0, sizeof(IdPeer));
	
	createHeader(&hello, HELLO, destino);
	hello.tamDados = 0;
	#ifdef DEBUG
		printf("\n\n");
		puts("*****************************************");
		puts("Vou distribuir hello");
		puts("*****************************************");
		printf("\n");
	#endif
	
	distribui(hello, NULL);
}
示例#5
0
void trataJoin(int sockfd, Header& h, char * dadosP){

	Header resposta;
	char dados[1];
	
//	#ifdef DEBUG
		char tmp[TAM_STR_IP + 1];
		IdPeer2StrIp(tmp, h.remetente);
		printf("\n********** RECEBIMENTO DE JOIN *************\n");
		printf("Remetente: %s\n", tmp);
		printf("NumSeq: %d\n", h.numSeq);
		printf("********************************************\n\n");		
//	#endif
	
	
	puts("Inseriu na tabela de roteamento");

	// Se ha espaco na tabela de vizinhos, adiciona o vizinho e envia JOINR com distancia
	//if( insereVizinho(origem, sockfd) ){
	if(contaVizinhos() < MAX_VIZINHOS){
		
		createHeader( &resposta, JOINR, h.remetente );
		resposta.numSeq = h.numSeq;
		
		dados[0] = calcDistancia( &DadosAplicacao.meuIp, &h.remetente );
		
		printf("\n\n\n**************\nDISTANCIA JOINR: %d\n*****************\n\n\n", dados[0]);
		resposta.tamDados = sizeof( unsigned char );
		printf("Tamanho dos Dados da JOINR: %d\n\n", resposta.tamDados);
		
		if(!escrevePacote(sockfd, resposta, dados))
			puts("Erro ao enviar JOINR MSG");

	//		if ( ( posicao = buscaPosicaoVizinho(h.remetente) ) != -1)
	//		SetTimer(DadosAplicacao.intervaloHelloR, TIMER_HELLOR, posicao);
	}
	
	//***********************************************************
		distribui(h, NULL);
	//***********************************************************
}
示例#6
0
文件: Empresa.cpp 项目: rui981/AEDA
Empresa::Empresa(){
	leClientes();
	leFuncionarios();
	distribui();
}
示例#7
0
文件: veia.c 项目: renatolm/Aninha
int main(){
	int selector = 0;
	struct carta *primeira, *primeiranova;
	struct dados *dados;
	struct deck jogador1, jogador2, aux;	

	primeira = malloc(sizeof(struct carta));
	primeiranova = malloc(sizeof(struct carta));
	dados = malloc(sizeof(struct dados));
	dados->prox = NULL;

	while(1){
		printf("Selecione a opcao desejada:\n1)Simular um jogo\n2)Simular 5 jogos(opcional 1)\n3)Simular 5 jogos com detalhes(opcional 3)\n4)Sair\n");
		scanf("%d", &selector);
		getchar();

		criaFila(&jogador1);
		criaFila(&jogador2);
		criaFila(&aux);

		switch(selector){
			case 1:
				printf("Simulacao iniciada\n\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);
				free(dados);
				dados = malloc(sizeof(struct dados));

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();

				break;

			case 2:
				printf("Simulacao 1 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();


				//Zera filas
				criaFila(&jogador1);
				criaFila(&jogador2);
				criaFila(&aux);

				printf("Simulacao 2 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();


				//Zera filas
				criaFila(&jogador1);
				criaFila(&jogador2);
				criaFila(&aux);

				printf("Simulacao 3 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();


				//Zera filas
				criaFila(&jogador1);
				criaFila(&jogador2);
				criaFila(&aux);

				printf("Simulacao 4 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();


				//Zera filas
				criaFila(&jogador1);
				criaFila(&jogador2);
				criaFila(&aux);

				printf("Simulacao 5 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("A media de jogadas foi %d jogadas\n", mediaJogadas(dados));
				free(dados);
				dados = malloc(sizeof(struct dados));
				
				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();

				break;

			case 3:
				printf("Simulacao 1 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();


				//Zera filas
				criaFila(&jogador1);
				criaFila(&jogador2);
				criaFila(&aux);

				printf("Simulacao 2 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();


				//Zera filas
				criaFila(&jogador1);
				criaFila(&jogador2);
				criaFila(&aux);

				printf("Simulacao 3 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();


				//Zera filas
				criaFila(&jogador1);
				criaFila(&jogador2);
				criaFila(&aux);

				printf("Simulacao 4 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();


				//Zera filas
				criaFila(&jogador1);
				criaFila(&jogador2);
				criaFila(&aux);

				printf("Simulacao 5 iniciada\n");
				geraBaralho(primeira);
				primeiranova = embaralha(primeira);
				distribui(&jogador1, &jogador2, primeiranova);
				duelo(&jogador1, &jogador2, &aux, dados);

				printf("\nA media de jogadas foi %d jogadas\n", mediaJogadas(dados));
				printf("A media de tempo foi %lu milisegundos\n", mediaTempo(dados));
				maisLento(dados);
				maisRapido(dados);
				free(dados);
				dados = malloc(sizeof(struct dados));
				
				printf("\nPressione qualquer tecla para continuar...\n");
				getchar();
				break;

			case 4:
				exit(0);

			default:
				printf("Opcao invalida!\n\n");
				break;
		}
	}
}