Ajedrez (Guendarunda’Ique)
Este es uno de los proyectos que más he disfrutado hacer, en parte porque el ajedrez siempre me ha llamado la atención. Esta implementado en prolog y XPCE usando el algoritmo minimax.
Sierpinski en 3D
El reto es sumarle una dimensión, como se muestra en el video
Dando continuidad al reto y para incentivar un poquito, el applet se vería así
![]()
Triángulo de Sierpinski en Processing
Después instalar processing y darle a una ojeada a los muchos ejemplos que trae, intenté escribir este triángulo que alguna vez tuve que hacer como tarea de primer semestre, en ese entonces usando borland c y graphics.h.

Sierpinski_triangle
Y este es el resultado
*por Dennys Regalado Diaz
*
*Fractal de triangulos inscritos (21 nov 2008)
*/
int EPS = 10; //define longitud del lado del triangulo mas pequeño
float maxDist;
void setup(){
size(500,500); //ventan de 200 x 200 pixeles
background(255); //fondo negro
//stroke(23,230,32,201); //establece color (red,green,blue,alpha)
// noFill(); //dibujar sin relleno
noStroke();
// fill(23,212,121,12);
smooth();
noLoop();
}
void draw(){
//fondo degradado
for(int i=0; i< width; i++){
fill(220,228,227,i);
rect(i,0,1,height);
}
punto poly[] = new punto[3];
//inicializa arreglo de puntos
for(int i=0;i<3;poly[i]=new punto(),i++);
//establece coordenadas del triangulo mayor
poly[0].x = 10;
poly[0].y = height-10;
poly[1].x = (width-10)/2;
poly[1].y = 10;
poly[2].x = width-10;
poly[2].y = height-10;
//dibuja triangulo mayor
maxDist = dist(poly[0].x,poly[0].y,poly[1].x,poly[1].y);
// triangle(poly[0].x,poly[0].y,poly[1].x,poly[1].y,poly[2].x,poly[2].y);
tri(poly[0],poly[1],poly[2]);
}
void tri(punto p0,punto p1,punto p2){
float level,tt;
punto a=new punto(),b=new punto(),c=new punto();
if((level=dist(p0.x,p0.y,p1.x,p1.y)) < EPS)
return;
//punto medio del segmento pop1
a.x = (p0.x + p1.x)/2;
a.y = (p0.y + p1.y)/2;
//punto medio del segmento p1p2
b.x = (p1.x + p2.x)/2;
b.y = (p1.y + p2.y)/2;
//punto medio del segmento p2p1
c.x = (p2.x + p0.x)/2;
c.y = (p2.y + p0.y)/2;
tt = random(255)*level/maxDist;
//fill(168,13,24,random(255)); //red color
fill(41,0,74,random(255)); //blue color
triangle(a.x,a.y,b.x,b.y,c.x,c.y);
tri(p0,a,c); //rellena el triangulo inferior izquierdo
tri(a,p1,b); //rellena el triangulo superior
tri(c,b,p2); //rellena el triangulo inferior derecho
}
class punto{
public int x,y;
punto(){
this.x=this.y=0;
}
punto(int x, int y){
this.x = x;
this.y = y;
}
}
![]()
![]()
Introducción a Processing: un lenguaje de programación visual
Processing es un ambiente y lenguaje de programación open source, para las personas que deseen programar imágenes, animaciones e interacciones. Es usado por estudiantes , artistas, diseñadores, investigadores, y algunos ociosos para aprender, hacer prototipos y producir. Fue creado para enseñar los fundamentos de programación dentro de un contexto visual y a la vez servir como software para realizar bocetos y una herramienta de productos profesionales.
Lo puedes descargar aquí http://processing.org/download/ y está disponible para GNU/Linux, Mac OS X y Windows.
Traducido de la página oficial www.processing.org
Este lenguaje está basado en java, aunque no es necesario ser un experto en el lenguaje. Para los que han revisado el API de java, Processing incluye ciertos métodos de la clase Graphics2D de la edición estándar. También se puede programar como en OpenGL añadiendo a esto la portabilidad que caracteriza a Java.
Dentro de lo más destacado se encuentra la posibilidad de exportar nuestros bocetos (sketchbooks) como applets (incrustado en una página web).
Este es entorno de desarrollo de processing

En él se muestra un código de ejemplo que dibuja unas diagonales. El código se divide en 3 secciones: la función setup() , draw() y diagonals() .
La función setup() establece que solo se "pintará" 1 vez y que el tamaño de la ventana debe ser de 100×100 px. En la función draw() se escribe todo lo referente a lo que se va a dibujar, en este caso, solo 9 diagonales. Y por ultimo la función diagonals() que dibuja lineas a partir de una coordenada (x,y).

¿qué hace está función?
char *s,cad[]={0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0};
s = &cad[7];
while(n)
*s--= (n & 1 << 7!=0) +'0',
n >>= 1;
printf("%s",cad);
}
Puede que pueda ser…
01101000011011110110110001100001
01100001 0111010001101111011001000110111101110011
Con este blog pretendo crear un espacio de ocio, para aquellos que gustan de los retos. La idea es proponer algún problema, acertijo o juego, que represente un reto para todos, comentar las soluciones y aumentar nuestra habilidad para resolver problemas matemáticos y lógicos.
Habrá ocasiones en que quizás sea necesario utilizar una computadora y un lenguaje de programación para resolver algún problema
. Suerte!
011100000110111101110011011101000110010101100001
0111010001110101 0111001101101111011011000111010
101100011011010010110111101101110 01100001011100
010111010101101001
