Posts Tagged ‘ Programación ’

2
14
Feb

Función para crear grupos en los torneos de "Todos contra todos"

Ahí llego de la universidad y me conecto al Gtalk. En esas que sale One pidiéndome esto:

One: Bleend
estás?

Bleend: No, fui a suicidarme, regreso en 10 minutos
One: ok

Bleend: XD
One: xD

si te aburres muuuuuuuuuuuuuuuuucho
pero muuuuuuuuuuuuuucho muuuuuuuuuuuuucho

Bleend: no creo que sea el caso..

One: necesito hacer el algoritmo que genere esto
http://es.wikipedia.org/wiki/Sistema_de_todos-contra-todos#Algoritmos_de_selecci.C3.B3n

Bleend: en C++¿

One: http://www.cristalab.com/foros/t52450.html
en lo que sea, actionscript me vale

Así que me puse manos a la obra. Programar en POO me costará mucho, pero en hacer secuencias , de eso si se bastante :P

Este fue el resultado, lo pongo porque no está en la wikipedia, pero como el código no contempla el caso de los impares no quiero ponerlo, ya que no es 100% funcional; pero tampoco quiero que caiga en saco roto.

Espero a alguien le resulte útil. (Si mas no, ya no habrá que pensar tanto para los torneos de SC :mrgreen: , recuerdo que fael, tuvo que hacer él los grupos, ya que yo no lo pillaba como funcionaba :P )

[as]var N:Number = 14;//ATENCIÓN!! “N” DEBE SER PAR! (2,4,8,12,20,…)
var g1:Array = new Array();
var g2:Array = new Array();
//crea los grupos
for (var i = 0; i<((N-1)/2); i++) {
g1.push([i]);
g1[i] = i;
//
g2.push([i]);
g2[i] = N-i-1;
}

for (var j = 0; j

//anuncia los grupos
trace("Round "+j);
trace(g1);
trace(g2);

//hace girar los grupo para el siguiente round
var temp1 = g2[0];
var temp2 = g1[(N/2)-1];
for (var k = 0; k if (k == (N/2)-1) {
g1[1] = temp1;
g2[(N/2)-1] = temp2;
} else {
g1[(N/2)-1-k] = g1[(N/2)-1-k-1];
g2[k] = g2[k+1];
}
}

}[/as]

Por cierto, la charla la he recortado en la parte interesante, no es que trabaje parta One y le haga los códigos :roll: Era solo un favor… ¬¬

9
12
Sep

Dibujar trazos en un swf Flash

Una vez mas, les traigo un flash, que permite dibujar en él, estando este ejecutándose. Que les voy a contar, dibujen uds ^^:

http://blog.bleend.net/wp-content/uploads/2007/09/dibujar2.swf

El código no esta ni optimizado ni limpio, pero funciona perfecto. Lo tienen aquí abajo:
[as]
rgbcolor = 0xCCCCCC;
i = 0;
_root.createEmptyMovieClip(“linea”+i,i);
escenario.onPress = function() {
linea = _root["linea"+i];
linea.moveTo(_xmouse,_ymouse);
pinta(true);
};
escenario.onRelease = escenario.onReleaseOutside = function() {
i++;
pinta(false);
_root.createEmptyMovieClip(“linea”+i,i);
};
function pinta(hacer:Boolean) {
if (hacer) {
this.onMouseMove = function() {
Xa = _xmouse;
Ya = _ymouse;
linea.lineStyle(panel.anchura.text,_root.rgbcolor,panel.alpha.text);
linea.lineTo(Xa,Ya);
linea.lineTo(_xmouse,_ymouse);
panel.swapDepths(_root.getNextHighestDepth());
};
} else {
delete (onMouseMove);
}
}
[/as]
Cabe decir, que hay los eventos del panel no están puestos, porque son muy obvios, lo mejor que puedes hacer, es flashdescargarte el Flash original.

Si alguien se entretiene a continuarlo, puede lograr crear hasta figuras geométricas. U_U (Y a saber que coas mas)

Update:Versión del fla re-publicada para poder abrir desde Flash 8

6
22
May

Tips rápidos de Action Script 3

Hace poco Adobe lanzó el Creative Suite 3.

Nuestro amigo Flash, incorpora una nueva versión de Action Script, la versión 3.
En su anterior versión 2, todos estábamos muy acostumbrados a hacer las cosas de una forma, que, en Action Script 3 es completamente inoperante.

Pongo unas cuantas traducciones de algunas de las funciones mas comunes:

ActionScript 2.0:

btn._x=10;
btn._y=20;

ActionScript 3.0:

btn.x=10;
btn.y=20;

Read the rest of this entry »

52
10
May

Física en flash: Movimiento pendular

Como es sabido, se puede hacer una aproximación bastante certera a la ecuación de movimiento de un péndulo mediante funciones trigonométricas senos o cosenos en su rotación:

[as]var ang:Number = Math.PI/2;//angulo de rotación
var omega:Number = 10;
var amplitud:Number = 4;
this.onEnterFrame = function() {
pendulo._rotation = amplitud*Math.sin(ang);
ang += omega/10;
};
[/as]
Read the rest of this entry »

7
3
May

Física en Flash: Movimiento parabólico

Hace tiempo hablé con el gato de hacer un proyecto de juego en flash al estilo “Bowman”. Nada mas empezar desechamos la idea.

Pero para entonces había hecho esta “cosa” (la verdad es bastante mediocre, pero se entiende la idea):

El archivo *.fla original, lo encontrarán aquí.
Read the rest of this entry »

2
25
Apr

Dibujar curvas parametrizadas 3D en Flash

He escrito un código que permite hacerlo.

No es mas que un Archivo *.fla, con un código de AS de 44 lineas que simula profundidad y capaz de generar movimiento en los 3 ejes X,Y,Z. El código no es muy limpio, pero al menos funciona. No va ni incluido en una clase siquiera. ¿Que quieren?, no soy un pr0.

Anteriormente y había hablado un poco de él aquí.

El código dibuja correctamente cualquier curva que le pongas, únicamente cabe especificar la parametrización matemática de su movimiento. Está programado para curvas 3D, pero en su defecto pueden poner el eje Z o X siempre en valor nulo y podrán representar curvas 2D.

A continuación les pongo algunos ejemplos de parametrizaciones locas que se me han ocurrido de las que ni siquiera me acuerdo de parametrización que representan:

Hélice
Hélice
[Vertical]

Curva de Lissajous , infinito
Infinito
[Vertical, Inclinado]

Curva de Lissajous en el plano XY
Simbolo de bus light year?
[Normal]

Curva de Lissajous, “S”
Curva
[Vertical, Lateral, Inclinado]

Curva rara 1
Curva rara
[Normal]

Curva rara 2
Curva rara
[Normal]

Curva rara 3
Curva rara
[Normal]

Curva rara 4
Curva rara
[Normal]

Curva rara 5
Curva rara
[Normal]

Para los que se pregunten que es una parametrización de una curva en 3D, vendría a ser esto: r(t)=(t*tan(t/3),t*cos(t),t*sin(t)) , donde cada coma separa las cocordenadas: r(t)=(CoordX(t), CoordY(t), CoordZ(t))

Donde “t” sería el tiempo. Se supone que este avanza de forma lineal y uniforme, cambiando así valor de cada coordenada, dando un punto en el espacio; que es dibujado por el programa cada cierto tiempo.

Archivo fuente: Archivo FlashCurvas parametrizadas en 3D

2
23
Apr

Programa en C++ que devuelve las cifras de un número entero en orden inverso

Esto es un programa escrito en C++, programado en el shell. Lo que hace es bien sencillo, el usuario introduce un numero entero como por ejemplo “123456” y el programa re-ordena las cifras poniéndolas en el orden inverso; es decir, en el caso anterior, devolvería el valor de “654321“:

El código es el que sigue:

#include
using namespace std;

int inv(int n);
int pou(int b,int e);

//main
int main(void){
int n;
cin>>n;
cout<<"Numero invertido de orden:"< system("PAUSE");
}

//funcion auxiliar para elevar enteros.
int pou(int b,int e){
int i,r=1;
for(i=0;i r*=b;
}
return(r);
}
//funcio principal de reordenacion
int inv(int n){
int s=n,c=0,i,t=0,x;
while(s>0){
c++;
s/=10;
}
for(i=0;i x=n/(pou(10,i))%10;
t=t*10+x;
}
return(t);
}

Nota: Vas a necesitar de un compilador C++ para compilarlo.