Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MrCookie40

#1
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...
#2
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");
}



#3
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...
#4
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
#5
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;
}



#6
Programación C/C++ / Laberinto en C JUGABLE
29 Mayo 2017, 00:53 AM
Hola... Les explico, acabo de empezar en este mundo de la programación, en mi preparatoria empezamos con Lenguaje C, me han estado pidiendo trabajos programados en ese lenguaje (Ansi C), en este caso me pidieron que hiciera un laberinto que fuera JUGABLE, el problema radica que el maestro nunca nos enseño nada (o al menos no bien) sobre el lenguaje, entonces me gustaría preguntar, ¿Como puedo hacerlo? para poder investigar por mi cuenta, si no pues solo una forma de hacer que un "Asterisco" se pueda mover por la pantalla... La verdad es que no se casi nada del lenguaje, pero hago mi intento de aprender independientemente... Gracias y Saludos!