Claro que creo en las pruebas de las PCs si están bien programadas...
Pero probar sumar todos los pares de primos suena mucho más fácil y creíble que haber probado todos los posibles mapas. O comprensible en el sentido de que en un caso pruebas números, pero en el otro pruebas grafos o estructuras. Lograr que una PC genere todos los primos no parece tan difícil, pero todos los mapas o estructuras de mapas... sí.
Estoy haciendo un programa que genera dibujos, avanzo lento como tortuga renga subiendo una montaña, pero ya genera cuadrados y rectángulos, generar mapas podría no ser un nivel de dificultad tan alejado (generar ojos por ejemplo parece más difícil), a ver...
Inicialmente la pantalla se pondría de color A.
Puedo insertar rectángulos de color B ahí, en lugares al azar.
Si el recién insertado toca a otro/s, deberá tener un color diferente a ese/os.
¿Alcanzaría con eso? Claro que no sería una demostración de que es imposible, ni es probar todas las posibilidades, pero al estarse probando muchas, si hubiera alguna que rompa la regla, podría aparecer.
Los rectángulos totalmente tapados por otros deben ser eliminados. Eso de momento no sé cómo hacerlo. No sé cómo indicar a la PC que un ractángulo fue totalmente tapado por otros. A menos que estuvieran hechos de cuadraditos y revisara 1 por 1 esos, pero debiendo ser tan pequeños no parece buena idea ¿qué tan pequeños? Flash puede tener imágenes más pequeñas que 1x1 pixel. Cuando se detecte que un cuadradito fue tocado por uno de arriba, se podría eliminar, eso facilitaría las cosas.
Pero tardaré mucho en llegar a ese nivel, si llego. Ahora estoy corrigiendo unas fórmulas.
Esto funciona bien pero está mal:
Si por ejemplo el cuadrado tiene 3 de largo y empieza en la columna 0, se dice que termina en la 3, pero el programa no llegaba hasta ahí. No importa porque efectivamente el cuadrado termina ocupando 3 columnas (0, 1 y 2):
function GenerarCuadrados () {
// Pintar cuadraditos de modo que se forme un cuadrado:
// Elegir un color distinto al color del cuadro:
// trace("ColorDelCuadro: "+ColorDelCuadro);
do {
ColorDeImagen = PosiblesColores[random(PosiblesColores.length)];
} while (ColorDelCuadro == ColorDeImagen);
// trace("ColorDeImagen: "+ColorDeImagen);
// Determinar su base y altura:
LargoDeImagen = random(MaxLargoDeImagenes)+1;
// trace ("LargoDeImagen: "+LargoDeImagen);
// Determinar dónde empieza:
FilaInicialDeImagen = random(CuadraditosPorFila-LargoDeImagen+1);
// trace ("FilaInicialDeImagen: "+FilaInicialDeImagen);
ColInicialDeImagen = random(CuadraditosPorFila-LargoDeImagen+1);
// trace ("ColInicialDeImagen: "+ColInicialDeImagen);
FilaFinalDeImagen = FilaInicialDeImagen+LargoDeImagen;
// trace ("FilaFinalDeImagen: "+FilaFinalDeImagen);
ColFinalDeImagen = ColInicialDeImagen+LargoDeImagen;
// trace ("ColFinalDeImagen: "+ColFinalDeImagen);
// Pintar los cuadraditos de esa imagen:
FilaDelPintandose = FilaInicialDeImagen;
do {
ColumnaDelPintandose = ColInicialDeImagen;
do {
// Averiguar qué cuadradito es:
NroDelCuadraditoaPintar = FilaDelPintandose*CuadraditosPorFila+ColumnaDelPintandose;
// trace ("NroDelCuadraditoaPintar: "+NroDelCuadraditoaPintar);
ParaColorDeCuadradito = new Color(Cuadro_pCuadradito+NroDelCuadraditoaPintar);
ParaColorDeCuadradito.setRGB(ColorDeImagen);
ColumnaDelPintandose++;
} while (ColumnaDelPintandose < ColFinalDeImagen);
FilaDelPintandose++;
} while (FilaDelPintandose<FilaFinalDeImagen);
// delete ParaColorDeCuadradito;
}Pero lo corregí:
function GenerarCuadrados () {
// Pintar cuadraditos de modo que se forme un cuadrado:
// Elegir un color distinto al color del cuadro:
// trace("ColorDelCuadro: "+ColorDelCuadro);
do {
ColorDeImagen = PosiblesColores[random(PosiblesColores.length)];
} while (ColorDelCuadro == ColorDeImagen);
// trace("ColorDeImagen: "+ColorDeImagen);
// Determinar su base y altura:
LargoDeImagen = random(MaxLargoDeImagenes)+1;
// trace ("LargoDeImagen: "+LargoDeImagen);
// Determinar dónde empieza:
FilaInicialDeImagen = random(CuadraditosPorFila-LargoDeImagen+1);
ColInicialDeImagen = random(CuadraditosPorFila-LargoDeImagen+1);
FilaFinalDeImagen = FilaInicialDeImagen+LargoDeImagen-1;
ColFinalDeImagen = ColInicialDeImagen+LargoDeImagen-1;
// Pintar los cuadraditos de esa imagen:
FilaDelPintandose = FilaInicialDeImagen;
while (FilaDelPintandose <= FilaFinalDeImagen) {
ColumnaDelPintandose = ColInicialDeImagen;
while (ColumnaDelPintandose <= ColFinalDeImagen) {
// Averiguar qué cuadradito es:
NroDelCuadraditoaPintar = FilaDelPintandose*CuadraditosPorFila+ColumnaDelPintandose;
ParaColorDeCuadradito = new Color(Cuadro_pCuadradito+NroDelCuadraditoaPintar);
ParaColorDeCuadradito.setRGB(ColorDeImagen);
ColumnaDelPintandose++;
}
FilaDelPintandose++;
}
}