Ayuda con este problema "[Warning] built-in function 'y0' declared as non-functi

Iniciado por MrCookie40, 29 Mayo 2017, 03:17 AM

0 Miembros y 1 Visitante están viendo este tema.

MrCookie40

Ayuda, tengo este codigo y lo quiero copilar en Lenguaje C, el problema es que en la linea 9 ("int x,y,x0,y0;" me da el siguiente error " [Warning] built-in function 'y0' declared as non-function" y no se el porque, estoy programando en Dev C++ porque es donde me pidieron el programa xd

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>


char c;
char tecla;
int x,y,x0,y0;
int laberint[21][66];
char grafica[20];  
char true;

void gotoxy(int x,int y){  
     HANDLE hcon;  
     hcon = GetStdHandle(STD_OUTPUT_HANDLE);  
     COORD dwPos;  
     dwPos.X = x;  
     dwPos.Y= y;  
     SetConsoleCursorPosition(hcon,dwPos);  
}  
int main(){  
    gotoxy(28,0);  
   printf("Bienvenido al laberinto xd");
gotoxy(28,1);  
   printf("Para jugar, usa las letras A, S, D, W");
    gotoxy(28,2);  
   printf(" A = Izquierda\n S = Abajo\n D = Derecha \n W = Arriba ");
gotoxy(28,6);  
   printf("Disfrutalo");
    gotoxy(28,7);  
   printf("Presiona cualquier tecla para empezar...");
   tecla=getch();

x0=34;
y0=8;


for (x=35;x<=65;x++)
for (y=5;y<=20;y++)
{
laberint[y][x]=rand()%2;  
}
laberint[x0][y0]=0;
x=x0;
y=y0;

while(true)
{
system("CLS");
grafica[0]=0;
for(y0=0;y0<20;y0++)
{
for(x0=0;x0<65;x0++)
{
if(x0==x&&y0==y)
sprintf(grafica,"%s%c",grafica, 42);
else if(laberint[y0][x0]>0)
sprintf(grafica,"%s%c",grafica, 219);
else
sprintf(grafica,"%s%c",grafica, ' ');

}
if(y0<21)
sprintf(grafica,"%s%s",grafica,"\n");
}
puts(grafica);



c=getch();
switch(c)
{
case 'a':
if(x>0)
if(laberint [y][x-1]==0)
x--;
break;
case 'd':
if(x<79)
if(laberint [y][x+1]==0)
x++;
break;
case 'w':
if(y>0)
if(laberint [y-1][x]==0)
y--;
break;
case 's':
if(y<25)
if(laberint [y+1][x]==0)
y++;
break;
case 27:
exit(0);
default:
system("CLS");
}
}
return 0;
}




engel lex

Dev c por alguna razón incluye librerías no solicitadas... o tal vez está incluida en conio.h, o tal vez windows.h... y0, y1 y y2 son funciones matemáticas incluidas en math.h... el error es que estás usando una funcion como nombre de variable
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MrCookie40

Cita de: engel lex en 29 Mayo 2017, 03:38 AM
Dev c por alguna razón incluye librerías no solicitadas... o tal vez está incluida en conio.h, o tal vez windows.h... y0, y1 y y2 son funciones matemáticas incluidas en math.h... el error es que estás usando una funcion como nombre de variable

¿Entonces que es lo que debo hacer xd? la verdad soy muy novato en esto hahaha

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MrCookie40

Cita de: engel lex en 29 Mayo 2017, 03:40 AM
usa un noombre de variable diferente a y0... usa y_0

Ya lo he intentado, pero al hacer de esto solo muestra los "printf" y al teclear algo este se finaliza...

engel lex

wow acabo de notar que tu eres el del laberinto XD montaste eso rapido!

cambia y0 por y_0 y muestra como quedó tu código
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MrCookie40

Cita de: engel lex en 29 Mayo 2017, 03:47 AM
wow acabo de notar que tu eres el del laberinto XD montaste eso rapido!

cambia y0 por y_0 y muestra como quedó tu código

Hahaha, si, soy yo xdxd, asi quedo el codigo...
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>


char c;
char tecla;
int x,y;
int x0,y_0;
int laberint[21][66];
char grafica[20]; 
int true;

void gotoxy(int x,int y){ 
      HANDLE hcon; 
      hcon = GetStdHandle(STD_OUTPUT_HANDLE); 
      COORD dwPos; 
      dwPos.X = x; 
      dwPos.Y= y; 
      SetConsoleCursorPosition(hcon,dwPos); 

int main(){ 
     gotoxy(28,0); 
    printf("Bienvenido al laberinto xd");
gotoxy(28,1); 
    printf("Para jugar, usa las letras A, S, D, W");
     gotoxy(28,2); 
    printf(" A = Izquierda\n S = Abajo\n D = Derecha \n W = Arriba ");
gotoxy(28,6); 
    printf("Disfrutalo");
     gotoxy(28,7); 
    printf("Presiona cualquier tecla para empezar...");
    tecla=getch();

x0=34;
y_0=8;


for (x=35;x<=65;x++)
for (y=5;y<=20;y++)
{
laberint[y][x]=rand()%2; 
}
laberint[x0][y_0]=0;
x=x0;
y=y_0;

while(true)
{
system("CLS");
grafica[0]=0;
for(y_0=0;y_0<20;y_0++)
{
for(x0=0;x0<65;x0++)
{
if(x0==x&&y_0==y)
sprintf(grafica,"%s%c",grafica, 42);
else if(laberint[y_0][x0]>0)
sprintf(grafica,"%s%c",grafica, 219);
else
sprintf(grafica,"%s%c",grafica, ' ');

}
if(y_0<21)
sprintf(grafica,"%s%s",grafica,"\n");
}
puts(grafica);



c=getch();
switch(c)
{
case 'a':
if(x>0)
if(laberint [y][x-1]==0)
x--;
break;
case 'd':
if(x<79)
if(laberint [y][x+1]==0)
x++;
break;
case 'w':
if(y>0)
if(laberint [y-1][x]==0)
y--;
break;
case 's':
if(y<25)
if(laberint [y+1][x]==0)
y++;
break;
case 27:
exit(0);
default:
system("CLS");
}
}
system("pause");
}




engel lex

tu getch de movimiento está fuera del ciclo, por lo que al presionarlo, el programa llega a su fin

hasta donde llega? (te recomiendo aprender a usar el debugger (depurador) de tu ide (devc++) para que puedas navegar con más facilidad estos problemas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MrCookie40

Cita de: engel lex en 29 Mayo 2017, 03:54 AM
tu getch de movimiento está fuera del ciclo, por lo que al presionarlo, el programa llega a su fin

hasta donde llega? (te recomiendo aprender a usar el debugger (depurador) de tu ide (devc++) para que puedas navegar con más facilidad estos problemas

Pues al correr el programa solo llega hasta la linea "Presiona cualquier tecla para empezar..." y al teclear algo pues finaliza...

engel lex

no puedo probar tu codigo porque ando en linux, pero revisé bien, tu getch si está en el while...

pero creo que deberías usar directamente printf para mostrar en lugar de cargarlo en una variable y puego usar puts...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.