domingo, marzo 27, 2011

Un juego II

Primero lo primero, si alguien quiere mandar el CV a adku (www.adku.com/jobs) la dirección es:

8512@adku.com

Si te preguntan de un tablero de 6x6: 1262816 :D

Segundo el código; backtracking de toda la vida con una representación del estado lo más sencilla posible.

En C tiene los puntos claves son:

Definición de tablero:

typedef struct _State
{
int table[TABLE_SIZE][TABLE_SIZE];
int pos_x;
int pos_y;
} State;


Inicialización tablero:

void State_Init(State* s)
{
int i, j;
for(i = 0; i < TABLE_SIZE; i++)
for(j = 0; j < TABLE_SIZE; j++)
s->table[i][j] = EMPTY_SQUARE;

s->table[START_POS_Y][START_POS_X] = OCCUPIED_SQUARE;
s->pos_x = START_POS_X;
s->pos_y = START_POS_Y;
}


Recorrido del tablero:

int CalculatePaths(State* s)
{
int i, total = 0;

if(State_IsSolution(s))
{
return 1;
}

for(i = UP; i < NUMBER_OF_DIRECTIONS; i++)
{
if(State_CanMove(s, i))
{
State_Move(s, i);
total += CalculatePaths(s);
State_Unmove(s, i);
}
}

return total;
}


El resto del código no lo pongo para no enrollarme.

Oye Iván, sabia que eras un poco bobo pero esta vez te pasas:

¿Porqué me cuentas esto?

El post sólo pretende remarcar una idea que vengo teniendo en cabeza desde hace unos meses, resulta que el futuro de la informática es nuestro pasado.

Con 19 años hubiera tardado 20min. como mucho en resolver el problema, ahora con unos cuantos más y algún que otro año trabajando en el mundo de la consultoría en fin..es otra cosa.

Esos temarios de los que tanto nos quejamos, esas asignaturas que no "servían para nada" resulta que si hoy viviesemos en un país de primer orden tecnológico, y no en España, nos darían trabajos como ingenieros de software de primer nivel, no como consultores de servicio.

Lo dicho, con 19 años y por culpa de Oliverio 20 minutos como mucho.

PD: La solucion en C dada por Pablo Bravo, http://www.lowlevelsolutions.com/

PD(2): La solución en java merece un análisis y conclusiones aparte, otro día.

2 comentarios:

Da5id dijo...

Totalmente de acuerdo.
Todavía estás a tiempo de inculcar a Diego el amor por los oficios de toda la vida, como el de pescadero o fontanero, que son más duros, pero al menos no tendrá que estar estudiando 6 ó 7 años para darse cuenta de que todo lo que estudió no sirve casi para nada en este país.

Ivan Arrizabalaga dijo...

Para algo sirve hombre, lo bien que nos lo pasamos con SAS, que? no cuenta? :P

No se, debo de ser un optimista pero mi idea es que si algo lo quieres y no existe....pues lo haces tu mismo.

Como Mcgyver, jajaja.

Locuras, locuras..