main()
{
    GUSANO *g;
    int i,j;
    int dir = 1; /* 0: N, 1: E, 2: S, 3: W */
    char s[200];

    srandom(time(NULL));

    for(i=0; i<MAXX/GORDO; i++)
        for(j=0; j<MAXY/GORDO; j++)
            tablero[i][j] = 0;

    init_w(MAXX, MAXY);

    g = init_g(MAXX/2, MAXY/2, dir, 4); /* x,y,dir,largo */
    if(!galleta_id) cookie(MAXX, MAXY);

    for(;;) {
        usleep(100000);
        switch(getchar()) {
        case 'h': /* back */
            dir = 3;
            break;
        case 'j': /* down */
            dir = 2;
            break;
        case 'k': /* up */
            dir = 0;
            break;
        case 'l': /* forward */
            dir = 1;
            break;
        case EOF:
            goto fin;
            break;
        default:
            continue;
            break;
        }
        g->dir = dir;
        if( !move_g(g) ) {
fin:
            sprintf(s, "Boing!!, score = %d", size_l(g->cuerpo));
            free_g(g);
            close_w(s, 100, 100);
            exit(0);
        }
    }
}
int main (int argc, char const *argv[])
{
	int i,j;
	int dir = 1; /* 0: N, 1: E, 2: S, 3: W */ 
	char s[200];

	/* debug("Starting Application: %s\n", argv[0]); */
	
	if(argc != 2)
	{
		fprintf(stderr,"Use: %s program\n", argv[0]);
		return EXIT_FAILURE;
	}
	runWish();
	
	close(STDIN_FILENO);
	if(open(argv[1],O_RDONLY,NULL))
	{
		printf("Error al Abrir el archivo\n");
		return EXIT_FAILURE;
	}

	srand(time(NULL));

	for(i=0;i<MAXX/GORDO;i++)
		for(j=0;j<MAXY/GORDO;j++)
			tablero[i][j] = 0;
	
	init_w(MAXX, MAXY,"Gusano - Tarea 3");

	g = init_g(MAXX/2, MAXY/2, dir, 4); /* x,y,dir,largo */
	if(!galleta_id) cookie(MAXX, MAXY);
	
	for(;;)
	{
		usleep(100000);

		dir = eval(g);
		if(dir == -1)
		{
			exit(EXIT_FAILURE);
		} 
		else
		{
			g->dir = dir;

			if( !move_g(g) )
			{
				sprintf(s, "Boing!!, score = %d", size_l(g->cuerpo));
				showColitionPoint(g);
				free_g(g);
				g=NULL;
				close_w(s, 100, 100);
				waitWish(wpid);
				exit(0);
			}
		}
		
		close(STDIN_FILENO);
		
		if(open(argv[1],O_RDONLY,NULL))
		{
			printf("Error al Abrir el archivo\n");
			exit(EXIT_FAILURE);
		}
	}

	exit(EXIT_FAILURE);
}
void pipe_t::close()
{
    close_r();
    close_w();
}