コード例 #1
0
int main(int argc, char *argv[]){
    int socket_fd;
    if(argc < 3){
	fprintf(stderr, "%s <ip> <puerto>\n", argv[0]);
	return EXIT_FAILURE;
    }


    initscr();
    raw();
    keypad(stdscr, TRUE); 
    noecho();
    start_color();

    comprobacion();
    conexion(&socket_fd, argv[1], atoi(argv[2]));
    esperar_jugadores(socket_fd);

    bucle_juego(socket_fd);

    close(socket_fd);
    endwin(); 
    return EXIT_SUCCESS;
}
コード例 #2
0
//funcion que se encarga de llamar a todas las funciones para poder jugar
void partida(){
    char matriz[FILAS][COLUMNAS], 
	 info[FILAS][COLUMNAS];
    char respuesta,
	 opcion,
	 respuesta_anterior;
    int vidas, 
	pos_usuario[USUARIO], 
	pos_maquina[ENEMIGOS][2], 
	nivel,
	puntuacion,
	cocos_anterior,
	asteriscos,
	turnos;
    bool asterisco_comido;
    /*---------------------------------------------------------------------------------------------*/
    /*Englobar en una funcion*/
    do{
	//iniciamos la partida
	char dibujo_enemigo[ENEMIGOS] = {'M', 'M', 'M', 'M'};
	asteriscos = 4;
	asterisco_comido = false;
	turnos = 0;
	vidas = 3;
	respuesta = 'j';
	respuesta_anterior = 'a';
	nivel = 1;
	puntuacion = 0;
	cocos_anterior = MCOCOS;
	cargar_mapa(matriz, info);
	inicializar_matriz(matriz, pos_usuario, pos_maquina, info, dibujo_enemigo);
	refrescar(matriz, info, vidas, nivel, puntuacion);


	while(respuesta != 'q' && vidas > 0){
	    respuesta = movimiento(respuesta_anterior);
	    respuesta_anterior = respuesta;
	    mover_jugador(respuesta, info, pos_usuario, matriz);
	    comprobar_asteriscos(&asteriscos, info, dibujo_enemigo, &turnos, &asterisco_comido);
	    comprobacion(matriz, info, pos_usuario, pos_maquina, vidas, nivel, puntuacion, dibujo_enemigo, asterisco_comido, &vidas);

	    recuento_puntuacion(info, &cocos_anterior, &puntuacion);

	    mover_maquina(matriz, pos_maquina, pos_usuario, dibujo_enemigo, asterisco_comido);
	    comprobacion(matriz, info, pos_usuario, pos_maquina, vidas, nivel, puntuacion, dibujo_enemigo, asterisco_comido, &vidas);

	    /*----------------------------------------------------------------*/
	    /*Ponerlo como funcion*/
	    if(comprobar_fin_nivel(info) == 1){
		cargar_mapa(matriz, info);
		inicializar_matriz(matriz, pos_usuario, pos_maquina, info, dibujo_enemigo);
		nivel ++;
		cocos_anterior = MCOCOS;
		asterisco_comido = false;
		turnos = 0;
		asteriscos = 4;
	    }
	    /*---------------------------------------------------------------*/

	    refrescar(matriz, info, vidas, nivel, puntuacion);
	    if(turnos > 0 )
		turnos --;
	    else{
		for(int i=0; i<ENEMIGOS; i++)
		    dibujo_enemigo[i] = 'M';
		asterisco_comido = false;
	    }
	}
	if(vidas == 0){
	    guardar_puntuacion(puntuacion);
	    printw("\n\t\t\tGame Over\n");
	}

	printw("¿Quieres jugar de nuevo? s/n\n");
	refresh();
	scanf(" %c", &opcion);
    }while(opcion != 'n');
    /*--------------------------------------------------------------------------------------------------------*/
    //exit (EXIT_SUCCESS);
}//fin partida
コード例 #3
0
ファイル: ordenes.c プロジェクト: ovasgus/redes
int main(int argc, char *argv[])
{
	int sockfd, n, num, count, i;
	struct sockaddr_in dirserv;
    struct hostent *server;
    char buffer[256], archivo[70];
	char *pal_archivo;
	FILE *fd;
	size_t len;
	size_t read;
	proveedor ** datos;
	/* "datos" es un arreglo de estructuras de tipo proveedor, inicializado
	 * dinámicamente más adelante */
		
	/* Se comprueban los argumentos pasados */
	comprobacion(argc, argv);
	
	*pal_archivo = NULL;
	count = 0;
			
	/* Se obtiene del usuario el archivo con la informacion de los
	 * proveedores y se guarda en "archivo" */
	strcpy(archivo, argv[5]);
	
	/* Se obtiene el numero de proveedores a contactar */
	num = numlineas(archivo);
	
	/* Se inicializa el arreglo de estructuras de tipo proveedor, 
	 * comprobando si se produjo un error al alocar memoria */
	datos = (proveedor **) malloc(num * sizeof(proveedor *));
	if (datos == NULL) {
		printf("Error al alocar memoria, intente mas tarde\n");
		exit(1);
	}	
	for(i = 0; i < num; i++){
			datos[i] = (proveedor *) malloc(sizeof(proveedor));
			if (datos[i] == NULL) {
				printf("Error al alocar memoria, intente mas tarde\n");
				exit(1);
			}	
	}
	
	i = 0;
	/* Se abre el archivo con la informacion de los proveedores para
	 * conectarse a ellos */
	
	fd = fopen(archivo, "r");
	if (fd == NULL) {
		printf("No se pudo abrir el archivo %s\n", archivo);
		exit(1);
	}

	/* Se lee el archivo y se extraen los datos a traves de los
	 * delimitadores de campo */
	
	read = getdelim(&pal_archivo, &len, '&', fd);
	
	/* Se elimina el & y se guarda el nombre del proveedor en la 
	 * estructura */
	if (pal_archivo[strlen(pal_archivo)-1] == '&')
		pal_archivo[strlen(pal_archivo)-1] = '\0';
		
	 // !! Meter el nombre del proveedor en la estructura !!
	 strcpy(datos[i].nombre, pal_archivo);
	 printf("Nombre del proveedor: %s\n", datos[i].nombre);	
		
	while((read = getdelim(&pal_archivo,&len,'&',fd))!= -1)
	{
		if (pal_archivo[strlen(pal_archivo)-1] == '&')
			pal_archivo[strlen(pal_archivo)-1] = '\0';
			
		if (pal_archivo[strlen(pal_archivo)-1] == ' ')
			pal_archivo[strlen(pal_archivo)-1] = '\0';
			
		if (pal_archivo[strlen(pal_archivo)-1] == '\n')
			pal_archivo[strlen(pal_archivo)-1] = '\0';	
			
		memmove(pal_archivo, pal_archivo+1, strlen(pal_archivo));
		
		if (count == 0) {
			strcpy(
			
		printf("%s3\n",pal_archivo);

	}
	free(pal_archivo);
	
	
	      
    // Se crea el socket
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    
    if (sockfd < 0) {
       printf("ERROR opening socket");
       exit(1);
    }
	
	
	
 
	 
	 
	
    server = gethostbyname(argv[1]);
    if (server == NULL) {
        fprintf(stderr,"ERROR, no such host\n");
        exit(0);
    }
    
    bzero((char *) &serv_addr, sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;
    
    // bcopy(*src, *dst, size)
    bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);
    
	//serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    serv_addr.sin_port = htons(portno);
    
    if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0) {
        error("ERROR connecting");
    }