18.4.15

Avanzando en programación_18.04_

Después de 17 días sin hablar del tema, hoy vuelve a parecer por aquí, intentaré ser breve y conciso.

Tal como estaba haciendo el programa tenía demasiadas ventanas (ya eran 3) y aún me faltaban hacer algunas cosas, así que quise agruparlas todas en una, y hacerle una interfaz decente. Así que me puse a mirar tutoriales de como hacer una ventana de windows tal y cual, hasta que se lo comenté a un amigo y me recomendó usar Qt, así que lo miré y me pareció bastante sencillo, se pueden meter botones arrastrando, ordenarlos fácilmente etc, así que me puse a ello, y bueno, resumiendo, tardé 17 días en hacer esto:


Si, en efecto, una simple pantalla en negra integrada en una ventana, no le pude dedicar mucho tiempo y sumándolo a que muchos tutoriales eran de versiones anteriores que se hacía distinto, se usaban otras librerías y funciones para OpenGL en Qt, pues hasta que encontré este vídeo y escarbé un poco no logré hacer eso tan sencillo.

Así que a partir de ahora, puede que vaya algo más lento(aún más?!?!), sobre todo para acostumbrarme a Qt y el tema de las clases, pero eso sí, quedará mucho más bonito :D

15.4.15

5X5X5_3_+NEW_

Pues otro día en el bus hora y media da para mucho, y para lo que esta vez dio fué para hacer otro patrón del 5x5, otra forma de hacerlo deshecho. Basándome en el patrón de la última vez, procedí a comenzar, así que pondré algunas fotos del resultado final.





Lo más complicado fue no confundirse al hacer las aristas (las 3 piezas entre las esquinas) que no son iguales, como en la última foto la verde-amarillo,rojo-verde y amarillo-rojo.

También tengo que confesar que en esta ocasión hice otro poco de trampa, giré dos fichas de una arista, que o bien no se puede hacer sin girar, o bien soy un noob y no sé hacerlo(me inclino por esta opción... º|\_).

Pues bien, ahora al meollo de la cuestión, hace ya unas semanas me compré unos cubos, uno era un 3X3X1, ya que el que comprara salió bastante defectuoso y rompió al poco tiempo de uso(barato y chino, qué se podía esperar sino?), así que compré otro, chino, pero de mejor calidad y además tiene unos movimientos que el otro no permitía, procedo a presentarlo.


Este es tommy, desde pequeno (1x1x1) siempre se consideró distinto al resto, no quería seguir las tradiciones de la familia y convertirse en el clásico cubo 3x3x3, así que cada vez que iba a pegar un estirón se metía entre dos cubos 10x10x10, con lo cual solo creció en alto y largo. No bastándole eso decidió meterse al circo, y disfrazarse de payaso, de ahí que lleve esas pegatinas.

Sus hermanos nunca lo aprobaron, así que en un arrebato de locura le dieron una paliza tan inmensurable que quedó desfigurado, desde entonces además de payaso es contorsionista.


La fama de Tommy llegó a tal punto que decidió venderse en internet y ganar así algo de dinero para un exorcismo, ya que está convencido de que girar la cabeza 360º no es normal. Qué le vamos a hacer? Salió rarito...


Pues bien, el otro cubo que me compré es un 2X3X4, está un poco celoso de tommy por no tener un giro tan suave, y sobre todo por no tener unas pegatinas de payaso, pero bueno, es lo que hay.


Este es Bob, desde pequeño siempre fue el abusón de la clase, es de una familia humilde, de los 2x2x2, pero creció el doble de su tamaño, además de engordar un poco en el proceso, se comía la merienda de sus compañeros de clase. Hasta que un día, intentó cruzar un puente que no estaba preparado para su peso, el puente rompió y el cayó por el barranco.


Sus compañeros de clase, al verlo caer cubearon a salvarlo (versión cubo de correr o rodar), intentaron regresarlo a su estado original, pero era demasiado tarde, el daño era irreparable.



Bob nunca volvió a ser el mismo, pero desde ese día aprecia mucho más a sus compañeros y les ayuda a protegerse de los abusones 4X4X4, el es ahora su único abusón.


No, en serio, no soy capaz de volverlo a poner como estaba. Seguiré dándole vueltas al asunto...

14.4.15

5X5X5_2_

En estos días hice otra forma curiosa, me llevó dos intentos ya que un graciosillo (¬¬) me lo deshizo cuando lo tenía casi terminado, pero bueno, aquí está.




Al principio hice esta forma, con dos de las esquinas giradas. Que da la impresión de que es un cubo dentro de otro cubo.






Y luego hice unas pequeñas variaciones para conseguir otros patrones.

Girando las esquinas:



Cambiando los centros:



Y cambiando centros y girando esquinas:




Y eso es todo por ahora...

13.4.15

Contra-voto_

La idea es sencilla, un voto que anula otro voto.

En un  proceso democrático, estaría la posibilidad de que una persona, no tenga claro a que partido votar (lo voy a hacer como si fuesen partidos políticos que es más familiar creo, pero se podría extrapolar a otras votaciones), pero si supiese que partido no quiere que gane, entonces vota un contra-voto a ese partido.

A pequeña escala sería así, hay dos partidos, A y B, y tres votantes, X, Y y Z, entonces lo resultados de la votación son los siguientes:

X vota a A
Y vota a B
Z contra-vota a B

Entonces ganaría A con 1 voto frente a los 0 votos de B.

Otro ejemplo, en este caso hay 3 partidos, A, B y C, y 15 votantes, el resultado es el siguiente:

Partido A: 3 votos, 1 contra-votos
Partido B: 5 votos, 2 contra-votos
Partido C: 4 votos, 0 contra-votos

En este caso ganaría el partido C con 4 votos, A quedaría con 2 y B quedaría con 3 votos.

A gran escala seguro que sería más divertido, aunque en cierta medida ese contra-voto vale por tantos votos como otros partidos se presenten, ya que sería igual a votar a todos los otros partidos.

En cambio, representa el desagrado hacia cierto partido de una manera significativa en lugar de votar en blanco, nulo, a un partido minoritario o al segundo partido más fuerte, ya que puede darse el caso de que ningún partido lo represente, pero uno en particular, lo representa menos que el resto.

Espero haberme expresado bien. O al menos que se me haya entendido.

Las posibilidades de que en este país se implemente dicha alternativa son muy escasas, ya que bueno, el método de votaciones está totalmente orientado al bipartidismo, e implantar esto provocaría grandes cambios en los resultados finales (me parece), ya que, especialmente en los dos partidos políticos que recaudan más votos, también son los que más opositores tienen, y consecuentemente los que más contra-votos obtendrían.

No me voy a alargar más, ya que esto, con la primera línea se entiende de sobra, es solo una idea.

Quizás si algún día tengo que dirigir/organizar una elección (a pequeña escala) lo implemente para ver lo que sucede. Si solo hay dos posibilidades de voto no sirve para nada, pero de haber más cambiaría los resultados.

9.4.15

5X5X5_


Después de varios intentos, hoy logré completar el cubo de rubick de 5x5x5 como quería,, lo de hacerlo deshecho es bastante entretenido cuando sabes hacerlo normal y ya te aburre un poco. con esto me pasé varias horas dándole vueltas, varios intentos por confundirme y liarla, y he de confesar que hice alguna trampa girando alguna ficha a mano, ya que me parece que no se puede hacer de no ser así, no estoy seguro.

Tres caras

Las otras tres caras
 Todo comenzó haciendo los centros (las 9 piezas centrales), en los cuales dos piezas de cada color están señalando el centro de su color, por ejemplo en la última imagen, el amarillo a la derecha del centro verde está enfocado hacia el centro amarillo, luego las piezas exteriores pensándolo decidí hacerlo a modo de esvástica (un símbolo nada moderno, y con numerosos significados).


En este caso lo hice deshecho, pero en otras ocasiones me da por deshacerlo siguiendo patrones, que consiste en hacer el cubo normal, y luego girar las mismas capas en distintas caras hasta conseguir un patrón, no sé si me explico. De eso solo tengo un caso, algo curioso al que le saqué dos fotos hace poco, las siguientes fotografías es del mismo cubo por los dos lados.




Y ya está, para acabar dejo la foto del arreglo que le hice a un cubo "floppy" 3x3x1 que se le saltó (rompió por ser de mala calidad(ya compré otro)) la pieza central, le puese el tornillo y luego de pocos giros le saltó la central del otro lado, y ahí ya no puedo ponerle otro tornillo, así que... no sé que hacerle.

Antes de ponerle tornillo lo pegué 3 o 4 veces con el famoso superpegamento peeeero al girarlo 2 veces saltaba otra vez.



1.4.15

Avanzando en programación_01.04_


En otros dos días hice otras dos cosas, una es, como se puede apreciar en la captura de pantalla, que añadí una nueva pantalla, lo que hay dibujado es solo una prueba, en ella pretendo hacer una lista de las estrellas realizadas así como poner los "padres" de cada una.

La otra cosa que hice fue el "reshape" de la ventana principal. Esto sirve para que cuando se estira la pantalla, que lo haga de una manera específica. Le puse unas condiciones para que guardase las propiedades del dibujo y no se estirase la estrella tanto como la pantalla para que no se deforme.

Pese a no funcionar exactamente como quisiera, no está mal, quizás en el futuro vuelva sobre el reshape a ver si lo optimizo, ya que en las Y lo hace perfecto pero en las X no del todo.

Ah! ya me olvidaba, hice otra cosa, que es la de seleccionar la posición de la ventana de comandos, la puse en 1,1 por ahora, además le cambié el nombre. Lo del nombre se cambia fácil con

    SetConsoleTitle("Nombre");

Lo de establecer el origen de la pantalla me costó un poco más, pero encontré un trozo de código, lo pegué, probé y funciona, en sí hay que hacer

    HWND hConsole = GetConsoleHwnd();
    MoveWindow(hConsole, ORIGENX_C, ORIGENY_C, ANCHO_C, ALTO_C, TRUE);

lo que  me costó un poco hacer fue sacar el hConsole, ya que donde miraba daban como por hecho que la funcion que lo devolvía ya estaba en la librería pero a mi no me funcionaba, así que busqué y encontré la función completa y la pegué y listo.

Me da algo de pereza buscar que enlace era en el historial entre los 20 que abro a la vez, pero dejo captura de código, era una pagina de microsoft creo.

Y eso es todo por ahora, bueno, además comencé a crear una clase, aunque me falta mirar un poco más como funcionan y que utilidad le puedo dar, así como a los punteros que no uso ni uno porque no le veo utilidad, aunque veo que son muy usados...