• Domingo 22 de Diciembre de 2024, 18:55

Autor Tema:  El Reto Es Sencillo  (Leído 12242 veces)

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
El Reto Es Sencillo
« en: Miércoles 10 de Marzo de 2004, 23:57 »
0
Hola: Amigos.
Este reto no es muy complicado pero tiene su arte y su lógica para desarrollarlo.

El Reto consta de 2 partes y dice asi:

primera parte::
Imagino que todos en alguna oportunidad han jugado ajedrez o bueno la gran mayoria; y a su vez conocen como se mueven  todas las fichas, la cuestion es solo para el "caballo" como sabemos el caballo se mueve realizando una 'L' y este moviendo consta de 2 pasos alfrente y uno hacia el lado.

Ubicando el caballo en cualquier parte del tablero de ajedrez, realizar 64 movimientos(Cantidad de cuadros en el tablero) y pizar todas las casillas de el tablero.

de la misma forma el programa debe decir si se pueden realizar esta tarea desde cualquier cuadro del tablero(o sea que el programa debe verificar los recorridos desde todos los cuadros ).

Se pide optimizacion de recursos de maquina(o sea que el programa no se demore mucho tiempo realizando esta tarea).

Segunda parte::  
Este parte es mas facil, siguiendo con el tema del ajedrez ahora es con la "Reina" y sabemos que la reina se mueve en cualquier sentido la cantidad de cuadros que se desee:
La cuestion esta en ubicar 8 reinas en el tablero y que no se maten entre ellas; diciendo al final cuantas posibilidades existe de ubicar 8 reinas sin que se maten entre ellas.

bueno la eleccion del lenguaje es criterio de cada uno de u'ds..

y al que desee y tenga tiempo.

     :smartass:     ___Saludos___   :smartass:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

shephiroth

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Re: El Reto Es Sencillo
« Respuesta #1 en: Domingo 21 de Marzo de 2004, 22:54 »
0
Buenas. La verdad que ambas pruebas que presentas no estan del todo ajustadas.

En la primera. Si realizas 64 movimientos es porque en una casillas has pasado 2 veces....se interpreta que tienes que terminar donde empiezas?? La forma de hacerla es fácil, y esta será (creo) la forma más optimizada que hay. Manualmente, antes de programar, te preparas un recorrido circular (es decir, donde piezas acabas) pasando por todos. Una vez tienes el recorrido, y en una matriz de 8*8, y simulando el sistema FAT puedes establecer el camino que ha de seguir. Cuando el usuario te indica en que posicion del tablero esta simplemente lo localiza en la matriz y va realizando el recorrido predeterminado empezando desde la posicion determinada.

La segunda, lo estoy pensando, y ya me perdonarás pero la septima no consigo colocarla de ninguna de las maneras. Pero he pensado poco, con este estaré un poco más xDD

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: El Reto Es Sencillo
« Respuesta #2 en: Martes 23 de Marzo de 2004, 16:21 »
0
:hola: tienes razon sabes..

pero la cuestion del caballo es que donde empiezes no es necesario terminar por lo tanto si.. solo serian 63 :devil:  ...     :whistling:

y el de las damas(Reinas) es ma sencillo se me hace a mi..

___Saludos y suerte con eso___    :lightsabre:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: El Reto Es Sencillo
« Respuesta #3 en: Domingo 18 de Abril de 2004, 13:45 »
0
Con el de los caballos si fuerzas a que termines donde empiezas, la segunda parte del problema sobra.

Citar
de la misma forma el programa debe decir si se pueden realizar esta tarea desde cualquier cuadro del tablero(o sea que el programa debe verificar los recorridos desde todos los cuadros)

Mas que nada por que si acbas donde empiezas, el recorrido es ciclico y has pisado todas las casillas.


El de las damas me parece mus sencillo. Tomas una matriz 8*8 buscas una posicion "vacia", pones una reina y marcas las casillas que amenza, asi hasta que coloques las 8. Este metodo es un poco basto, y si no funciona asi, se podria hacer recursivamente y predeterminando la casilla inicial (es decir, si colocando la 1ª reina en el (1,1) no se puede, colocala en el (2,1) y vuelve a probar).
   

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: El Reto Es Sencillo
« Respuesta #4 en: Domingo 18 de Abril de 2004, 15:56 »
0
Nagisa...
eso no es una solucion..
la saolucion es hacer el programa y que funcione.

Black Boy: cuando caduca tu reto?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: El Reto Es Sencillo
« Respuesta #5 en: Lunes 19 de Abril de 2004, 16:44 »
0
La Verdad no Habia pensado una fecha, pero mmm....  ;)   creo que 15 dias mas serian suficientes ....



Nagisa :Te regalo la siguiente esta frace:   nada es tan facil como parece Primer Corolario de Murphy

Espero y me des un programa que desarrolle el reto en su totalidad, si para ti es fail, pues te admiro y eso indicas que quizas eres un muy buen programador. pero no creo por Fé  :no:   yo creo por echos   :good:  

Un Saludo :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: El Reto Es Sencillo
« Respuesta #6 en: Lunes 19 de Abril de 2004, 19:38 »
0
I'm sorry. Aunque la verdad que consideraria poco licito hacer el reto ahora mismo por que justo hoy nos han explicado en clase lo que es el backtracking, y el problema de las reinas es el ejemplo mas tipico (de hecho nos lo han explicado con ese ejemplo  :lol: ). Se parecia un poco a lo que yo decia, aunque no mucho  :whistling:

Solo una cosa... Me duele que alguien que tiene un avatar de Dragon Ball no sepa quien es Kaworu (Nagisa -> Evangelion ) . Es un tio T__T

Citar
Espero y me des un programa que desarrolle el reto en su totalidad, si para ti es fail, pues te admiro y eso indicas que quizas eres una muy programadora.

De todos modos ahora mismo me pondre con ello. El lenguaje puede sere cualquiera, no?? Te vale Haskell??
   

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: El Reto Es Sencillo
« Respuesta #7 en: Lunes 19 de Abril de 2004, 19:49 »
0
Citar
Solo una cosa... Me duele que alguien que tiene un avatar de Dragon Ball no sepa quien es Kaworu (Nagisa -> Evangelion ) . Es un tio T__T

Por que me dices que no se quien es?  ¡¡ el quinto niño ¡¡

Citar
De todos modos ahora mismo me pondre con ello. El lenguaje puede sere cualquiera, no?? Te vale Haskell??


Si   escoge el lenguaje que mejor te parezca

Pero ese que dices mmmm.... :whistling:  ni idea si me explicas algo del codigo  seria bueno :kicking:


Un Saludo.. y Que vacano  que te guste el Anime y sobre todo Evangelion :good:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: El Reto Es Sencillo
« Respuesta #8 en: Lunes 19 de Abril de 2004, 20:23 »
0
Vale, ahora que me he decidido a hacer el reto, mi pregunta es:

Para la parte de los caballos... Que entrada recibo?? Es un tablero de ajedrez de los de toda la vida (8x8)??

Es que si es asi, con poner un printf("Si\n"); el problema hace lo que pides y optimizo en muuuuuuuuuuuucho los recursos de maquina  :lol: . (Lo puse antes, existe un camino que es ciclico, y por lo tanto pisa todas las casillas y vuelve a la inicial; por lo que da igual la que sea!).

Supongo que para hacer el reto mas interesante en este aspecto podriamos dejar que sea el usuario quien introduzca la dimension del tablero (siempre cuadrado, por supuesto), no crees??
   

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: El Reto Es Sencillo
« Respuesta #9 en: Lunes 19 de Abril de 2004, 20:42 »
0
Citar
Supongo que para hacer el reto mas interesante en este aspecto podriamos dejar que sea el usuario quien introduzca la dimension del tablero (siempre cuadrado, por supuesto), no crees??

bueno..... ;)  pero mira que eso no seria una dificultad adicional, ya que la solucion ha eso , seria pedir la dimension al usuario y entonces crear la matriz, y mandarla a la funcion que se encarga de ejecutar los movimientos. :smartass:

yo lo hize con una matriz predefinida por mi en el codigo, y en efecto es de 8x8 como la de el ajedrez .

Te tengo una pregunta y es asi: ¿has echo la solucion en  papel?

un saludo y que vacano que te animes pensé que nadie lo iba ha intentar. :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: El Reto Es Sencillo
« Respuesta #10 en: Lunes 19 de Abril de 2004, 21:09 »
0
La solucion en papel...?? Estoy en ello  :lol:


Aunque despues de lo que me habeis dicho JuanK y tu no podia dejar de intentarlo. Estaba liado con un multiplicador de precision arbitraria, pero weno...

Cuando haya avanzando algo mas ya te contare que tal me va  :hola:
   

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: El Reto Es Sencillo
« Respuesta #11 en: Lunes 19 de Abril de 2004, 21:12 »
0
bueno.. hay un problema
el lenguaje si cuente poque este es el foro de programación C/C++ asi que la limitante es que sea en uno de estos dos..
sin embargo si ya lo empezaste en otro lenguaje pues continua que por esta vez. :P
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: El Reto Es Sencillo
« Respuesta #12 en: Lunes 19 de Abril de 2004, 21:33 »
0
la solucion en papel de las reinas es mas facil que la del caballo, asi que si quieres ver una solucion del caballo aqui hay una.

y de las reinas mmmm......   yo he encontrado hasta 9 posibles soluciones, pero el programa arroja 93 :smartass:

un saludo :hola:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: El Reto Es Sencillo
« Respuesta #13 en: Lunes 19 de Abril de 2004, 23:50 »
0
Bien... Nada de Huskie... digo... Haskell. Ya tengo la primera parte del problema (la de los caballos). Solo hay una pega... Como ya te dije antes, eso se verifica siempre para un tablero de 8x8, asi que estaria bien saber para que dimension no se verifica (evidentemente mayor que 3), ya que por ahora he probado con tableros desde 4x4 hasta 15x15 y se cumple para todos (no prubo numeros mas altos por que para 15 ya piensa bastante...).

Lo posteare en cuanto haga una serie de optimizaciones de recursos, aunque si quieres puedo colgar lo que llevo.

Sobre lo de las 93 soluciones de las reinas... es muy probable. Tenia un codigo que te sacaba todas las soluciones y he contado 92, aunque puede que se me haya escapado alguna. Por si te interesa, te las mando adjuntas.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
   

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: El Reto Es Sencillo
« Respuesta #14 en: Lunes 19 de Abril de 2004, 23:57 »
0
Sin Palabras  :whistling:   y voy  a revisar si son 93, por que en el tuyo hay 92 y puede que yo sea el que halla contado mal....

Un saludo :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: El Reto Es Sencillo
« Respuesta #15 en: Miércoles 5 de Mayo de 2004, 17:54 »
0
bueno, mi proyecto se acabò, se que era muy sencillo pero aun así no hubo mucho interes... ni modos buscaré un mejor reto  haber si se interesan un poco mas...


en cuanto a la solucion de Nagisa  en efecto son 92 soluciones, solamente que yo contaba una de mas por el contador que tenia, pero ya quedó....


y el del caballo... tampoco era muy complicado... pero si quieren ver la solucion tendran que hacerla :devil:  



y por último Juank  ya es hora de cerrar el chuzo...

y gracias a los que se interesaron....

Saludos :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: El Reto Es Sencillo
« Respuesta #16 en: Miércoles 5 de Mayo de 2004, 18:14 »
0
OK,
si t interesan los retos te invito a conocer este:
http://www.teleportmedia.com/foro/viewtopic.php?t=70&start=0
aunque eso si ya estamos bastante adelantados pero nada se pierde...

gracias por tu rto y hasta pronto..
se cierra el chuzo (suena en el fondo musica de planchar.. jejeje :P)
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io