Ayuda con programa urgente!

Iniciado por Albertocn, 8 Diciembre 2013, 17:52 PM

0 Miembros y 2 Visitantes están viendo este tema.

vangodp

con cual programa as compilado?Ya que se que no usas Dev XDD

leosansan

#31
Cita de: vangodp en 20 Diciembre 2013, 20:35 PM
con cual programa as compilado?Ya que se que no usas Dev XDD

Code::Blocks

Y una imagen de prueba de que furula bien:



Felices Navidades y Próspero Año Nuevo.
Saluditos! ..... !!!!


leosansan

#32
Perdonen que reviva el tema, pero la aportación es diferente.

Por un lado un código que no resuelve directamente el laberinto, pero permitir "ver" los caminos de salida al estar el laberinto "coloreado". Como ejemplo, a mi nietillo le encanta buscar las soluciones y como es muy fácil cambiar el laberinto, cada vez que quiere jugar tiene   un laberinto diferente.

Y de muestra un pantallazo:



Sí ya lo sé, no resuelve nada pero permite a simple vista localizar los caminos de salida. Es como un juego, repito.

Código (cpp) [Seleccionar]

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

void mostrar(char a[][28],char *msg);
void color (int n)

int main (){

   char a[24][28]={
   "000000000000000000000000000",
   "012222222222222222222222220",
   "022020200020002000000000020",
   "022202022020202000000000020",
   "020000000020202000000000020",
   "020222220020220200022222220",
   "022000000000000200020000020",
   "022222222222200200020000020",
   "022200000000200222222222000",
   "022222222200200000020002020",
   "022200000020222222222222220",
   "022222222200200000000000020",
   "020000000000222222222222220",
   "022000022200200000000000020",
   "020000000000200222222222220",
   "022222222222222200000000020",
   "020000000000000222222202020",
   "020000000000000200000202020",
   "022222222222222200000202020",
   "000002000000000200002222220",
   "020222222222222222222200000",
   "020000000000000000000222220",
   "022222222222222222222220010",
   "000000000000000000000000000"
   };
   mostrar(a,"LABERINTO");
   return 0;
}


void mostrar(char a[][28],char *msg){
   system ("cls");
   int i,j;
   for( i=0;i<24;i++) {
       for( j=0;j<27;j++) {
           if ((i==22 && j==25) ||(i==1 && j==1))
               color(215);
           else if (a[i][j]=='X')
               color(125);
           else if (a[i][j]=='0')
               color(175);
           else
           color(7);
           printf("%c ",a[i][j]);
           fflush(stdout);
       }
       putchar('\n');
   }
   color(7);
   printf ("\n\t\t%s\n\n",msg);
   system ("pause");
}

void color (int n)
{
       SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
}


Y a la espera de que vangodp saque su versión 2.0, la 1.0 no furula ni pá dios, dejo una opción muy simple. Se trata de que de forma totalmente aleatoria el ordenador busque la salida .... y siempre la encuentra y mas de una combinación posible en general. Tiene el inconveniente de que muestra todos los movimientos, incluso los de retroceso. Pero en fin, si vangodp no veo que se anime me pondré yo a ello. :silbar:

Código (cpp) [Seleccionar]

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

void mostrar(char a[][27],char *msg);
void color (int n);

int main (){

   char a[24][27]={
   "000000000000000000000000000",
   "012222222222222222222222220",
   "022020200020002000000000020",
   "022202022020202000000000020",
   "020000000020202000000000020",
   "020222220020220200022222220",
   "022000000000000200020000020",
   "022222222222200200020000020",
   "022200000000200222222222000",
   "022222222200200000020002020",
   "022200000020222222222222220",
   "022222222200200000000000020",
   "020000000000222222222222220",
   "022000022200200000000000020",
   "020000000000200222222222220",
   "022222222222222200000000020",
   "020000000000000222222202020",
   "020000000000000200000202020",
   "022222222222222200000202020",
   "000002000000000200002222220",
   "020222222222222222222200000",
   "020000000000000000000222220",
   "022222222222222222222220010",
   "000000000000000000000000000"
   };
   int i,j,incre_i,incre_j;
   i=1,j=1;
   a[1][1]='I';
   a[22][25]='F';
   srand((unsigned) time(NULL));
   mostrar(a,"LABERINTO");
   system ("cls");
   while (i!=21 || j!=25){
       incre_i=rand()%3;
       if (incre_i==2)
           incre_i=-1;
       incre_j=rand()%3;
       if (incre_j==2)
           incre_j=-1;
       if ((incre_i==0 || incre_j==0) && (incre_i!=incre_j)  && (incre_i!=-incre_j)){
           i+=incre_i;
           if (i<0)
               i++;
           j+=incre_j;
           if (j<0)
               j++;
           if (i>22)
               i--;
           if (j>25)
               j--;
           if (a[i][j]=='2' || a[i][j]=='X' || a[i][j]=='I') {
               a[i][j]='X';
           }
           else {
               i-=incre_i;
               j-=incre_j;
           }
       }
   }
   mostrar(a,"SOLUCION");
   return 0;
}


void mostrar(char a[][27],char *msg){
   int i,j;
   system ("cls");
   for( i=0;i<24;i++) {
       for( j=0;j<27;j++) {
           if ((i==22 && j==25) ||(i==1 && j==1))
               color(215);
           else if (a[i][j]=='X')
               color(125);
           else if (a[i][j]=='0')
               color(175);
           else
           color(7);
           printf("%c ",a[i][j]);
           fflush(stdout);
       }
       putchar('\n');
   }
   color(7);
   printf ("\n\t\t%s\n\n",msg);
   system ("pause");
}

void color (int n)
{
       SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
}


Cada vez que ejecutas el programa la solución puede variar al ser los movimientos totalmente aleatorios.


;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!



REEDITADO

vangodp

#33
Muy buena :D, promesa es deuda. jeje
Ya tendrás noticias mías  ;D
Código (bash) [Seleccionar]

C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp||In function 'int main()':|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|36|error: initializer-string for array of chars is too long [-fpermissive]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|42|warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]|
C:\Documents and Settings\joe mismow\Escritorio\mapaleosansancolor.cpp|71|warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]|
||=== Build finished: 24 errors, 2 warnings (0 minutes, 1 seconds) ===|


A ver que me dices XDD en la foto se ve bien  ;-)

leosansan

#34
Cita de: vangodp en 30 Diciembre 2013, 02:06 AM
Muy buena :D, promesa es deuda. jeje
Ya tendrás noticias mías  ;D
...............................................................................
A ver que me dices XDD en la foto se ve bien  ;-)

LO he intentado compilar en DevC aver que tal y casi me da un sofocón:

Citar
36 C:\Dev-Cpp\SinNombre1.cpp initializer-string for array of chars is too long
....................................................................

Y así un motón de líneas. Pero claro, no me fije que por defecto el "programilla" lo guarda con extensión .cpp por defecto. Así que volví a guardarlo con extensión .c y ¡boommmm!, corre sin pronlemas ni advertencias:


Ya sabía que te daría problemas por el dichosito Dev.C++. Te reitero mi sugerencia de trabajar mejor con Code::Blocks

Elige la de 96.8 MB, la codeblocks-13.12mingw-setup-TDM-GCC-481.exe.


Mira mi salida en Code::Blocks, y eso con el compilador en modo pedantic o Wall que canta a la más mínima::

Citar
...............................................................
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)

.....................................

Ya me cuentas como te ha ido.



¡¡¡¡ Saluditos! ..... !!!!

:rolleyes: ;) ;) ;) :rolleyes:





vangodp

no me diga que ha sido dev que los avisos que te puse es de un codeblocks  :laugh:
El dev solo lo confirma.
No eches la culpa a la herramienta sino al carpintero jeje ;D
Que opciones tienes en tu ide.
Algo afecta, la cosa es que lo uso por defecto y me tira esos errores tanto en uno como en otro.
el problema se da en la declaración del mapa casi siempre[y]
  • parece que si ponemos el numero justo de casas que vamos usar se buguea.
    Me parece que no debemos usar la ultima posición de ese arreglo en ambos sentidos, tanto en x como en y.
    Si alguien lo sabe a que se deve, puede que sea el guwin, tu usas el 7 y yo el xp puede que eso influya.
    Te repito que hago lo que tu en dev, no le eches la culpa al pobre por no ser como una navaja Suiza.XDDD
    Ademas pega el código aquí que fotos no quiero ver XDD
    Saludos!^^

vangodp

Eh echo lo que me dices de grardarlo como c.
Y tachan funciona :D muy bien.
Se ve colorines muy monos.:D
Pero me gusta que vayamos viendo como se lo monta.
Lo que no quita el merito, muy muy bueno si señor.
Lo que creo que pasa es que lo estaba guardando lo tuyo como cpp y tu lo mio como c.
Uno usa gcc y el otro g++.
Creo que ahora ya lo sabemos  ;)

leosansan

#37
Cita de: vangodp en 30 Diciembre 2013, 11:15 AM
..............................
Ademas pega el código aquí que fotos no quiero ver XDD
Saludos!^^


Pero si ya lo había puesto. Ahí va otra vez el código del laberinto con color:

Código (cpp) [Seleccionar]

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

void mostrar(char a[][28],char *msg);
void color (int n);

int main (){

   char a[24][28]={
   "000000000000000000000000000",
   "012222222222222222222222220",
   "022020200020002000000000020",
   "022202022020202000000000020",
   "020000000020202000000000020",
   "020222220020220200022222220",
   "022000000000000200020000020",
   "022222222222200200020000020",
   "022200000000200222222222000",
   "022222222200200000020002020",
   "022200000020222222222222220",
   "022222222200200000000000020",
   "020000000000222222222222220",
   "022000022200200000000000020",
   "020000000000200222222222220",
   "022222222222222200000000020",
   "020000000000000222222202020",
   "020000000000000200000202020",
   "022222222222222200000202020",
   "000002000000000200002222220",
   "020222222222222222222200000",
   "020000000000000000000222220",
   "022222222222222222222220010",
   "000000000000000000000000000"
   };
   mostrar(a,"LABERINTO");
   return 0;
}


void mostrar(char a[][28],char *msg){
   system ("cls");
   int i,j;
   for( i=0;i<24;i++) {
       for( j=0;j<27;j++) {
           if ((i==22 && j==25) ||(i==1 && j==1))
               color(215);
           else if (a[i][j]=='X')
               color(125);
           else if (a[i][j]=='0')
               color(175);
           else
           color(7);
           printf("%c ",a[i][j]);
           fflush(stdout);
       }
       putchar('\n');
   }
   color(7);
   printf ("\n\t\t%s\n\n",msg);
   system ("pause");
}

void color (int n)
{
       SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
}


Ya me contaras que te parece.

Y el tuyo ni en .cpp me tira.  :o :o :o




¡¡¡¡ Saluditos! ..... !!!!

:rolleyes: ;) ;) ;) :rolleyes:

P.D:Me has liado con eso de que no había puesto el código. O estoy muy espeso, que también.

Saluditos! ..... !!!!        

vangodp

a ver si te voy a tener que grabar un video XD

amchacon

#39
A mí tampoco me va leo. ¿No tendrás activado el fpermissive?

El error se debe a que has declarado una matriz de 27 elementos por columna, tu le has puesto 27 elementos +caracter nulo.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar