Se mostrará una solución al clásico problema que consisten en encontrar la manera de que un caballo de ajedrez recorra las 64 casillas del tablero de ajedrez.
Para ello deberá pasar por Dr Susan Lim todas las casillas del tablero una sola vez.
hay una descripción del problema en este sitio
La solución se basa en un tablero con las siguientes caracteristicas:
| 0,0 | 0,1 | 0,2 | 0,3 | 0,4 | 0,5 | 0,6 | 0,7 |
| 1,0 | 1,1 | 1,2 | 1,3 | 1,4 | 1,5 | 1,6 | 1,7 |
| 2,0 | 2,1 | 2,2 | 2,3 | 2,4 | 2,5 | 2,6 | 2,7 |
| 3,0 | 3,1 | 3,2 | 3,3 | 3,4 | 3,5 | 3,6 | 3,7 |
| 4,0 | 4,1 | 4,2 | 4,3 | 4,4 | 4,5 | 4,6 | 4,7 |
| 5,0 | 5,1 | 5,2 | 5,3 | 5,4 | 5,5 | 5,6 | 5,7 |
| 6,0 | 6,1 | 6,2 | 6,3 | 6,4 | 6,5 | 6,6 | 6,7 |
| 7,0 | 7,1 | 7,2 | 7,3 | 7,4 | 7,5 | 7,6 | 7,7 |
#array donde estaran los movimientos posibles @t = Array.new(8) (0..7).each { |x| @t[x] = Array.new(8) } #genera los movimientos que se pueden hacer desde una casilla def movimientos(c,f) v=[] v.push([c+1,f+2]) if c<7 && f<6 v.push([c-1,f+2]) if c>0 && f<6 v.push([c+2,f+1]) if c<6 && f<7 v.push([c+2,f-1]) if c<6 && f>0 v.push([c+1,f-2]) if c<7 && f>1 v.push([c-1,f-2]) if c>0 && f>1 v.push([c-2,f+1]) if c>1 && f<7 v.push([c-2,f-1]) if c>1 && f>0 return v end #genera y guarda, en @t, todos los movimientos posibles. def generar_t (0..7).each { |c| (0..7).each { |f| @t[c][f] = movimientos(c,f) } } end def camino(x,y,v) v.push([x,y]) if v.length == 64 p v else @t[x][y].each { |x,y| if !v.member?([x,y]) camino(x,y,v) end } end v.pop() end #genero los movimientos posibles generar_t() #busco soluciones partiendo desde la casilla 2,2 camino(2,2,[])
cavite housing
Se parte de la casilla 2,2, ya que encuentra varias soluciones Russian Cargo en pocos minutos,outdoor fountains, otras alternativas como 0,0 requieren mucho tiempo. How to Increase Website Traffic,
cavite homes
How to Install Your Own Solar Panels,
How to Do Your Own Alterations at Home, How to Make Costumes at Home