Pincha para agrandar

Han sido meses… pero los días más intensos han sido del lunes a hoy. Cinco días sin parar programando como loco.

¿Sabéis que hoy he dormido cuatro horas?

Pero ya está hecho. Acabado. C’est fini. Solo queda escribir la memoria, empaquetarlo y subirlo al GAP.

¿Habrá conseguido Metodología de la Programación que mi vicio al Tetris desaparezca? No lo sé, espero que no. Aunque trabajosa, ha sido una bonita experiencia :)

Cuando juegue ahora veré en cada paso las funciones que he programado. Quizá incluso detecte errores y cosas que pueda añadir, o incluso piense como puede funcionar aquel respiro que no programé. Pero ahora no. Ahora, no.

Se acabó. He acabado el Tetris.

Llevo unos días desaparecido en combate… Lo sé. Me conecto a MSN y no respondo a nadie, solo programo, programo, programo.

El Tetris tengo que entregarlo mañana. Y no está para entregar. Llevo 3 días trabajando a destajo, durmiendo poquísimo, con muchas ganas de tirarme por una ventana (a veces de tirar el PC por una ventana), y sin parar de programar. Y el Tetris lleva tres días descojonandose de mi, dando errores a punta pala y cada cual más raro y difícil de solucionar.

Así que, si estos días os da por abrirme una ventanita en MSN y no contesto, no os lo toméis a mal. Es que no puedo contestar. Casi no le contesto a Hikari, que ya es decir…

En fin, después de esta breve pausa para relajarme, voy a continuar… Que después del Tetris tengo que ponerme a estudiar como loco para un examen que tengo el lunes…

“No he fracasado. Solo he encontrado 10,000 maneras que no me serviran.” .- Thomas Alva Edison.

Tetrimino L

Me dijeron que lo publicarían el Lunes. Pero no, ya está publicado.

Ayer entré por casualidad a mi página de “Metodología de la Programación II” y me lo encontré publicado.

Eso significa que ya ha comenzado. Ya podemos preparar los dedos para programar.

No os voy a poner todo el ejercicio, porque si yo que estudio la carrera no entiendo algunas cosas, vosotros os vais a liar aun más. Pero os lo puedo resumir en una frase.

Práctica Final de MP2: Programe usted el Tetris.

El Tetris. ¿Hace falta que explique de que va este juego? Odio cuando alguien dice “Bah, esto lo conocéis todos, así que paso de explicarlo…”, pero en esta ocasión estoy 99% seguro de que podría decirlo. No obstante, he dicho que odio esa frase…

El Tetris (en ruso: Тетрис) es un videojuego de puzzle ruso inventado por Alexey Pazhitnov en 1985.

Piezas bidimensionales de cuatro bloques en distintas disposiciones caen de la parte superior de la pantalla. El jugador no puede impedir esta caída pero puede decidir la rotación de la pieza (0°, 90°, 180°, 270°) y en que lugar debe caer. Cuando una línea horizontal se completa, esa línea desaparece y todas las piezas que están por encima descienden una posición, liberando espacio de juego y por tanto facilitando la tarea de situar nuevas piezas. La caída de las piezas se acelera de forma constante. El juego acaba cuando las piezas se amontonan hasta salir del área de juego.

¡Y yo tengo que programar el Tetris!… Con sus piececitas, su tablero, su sistema de puntuaciones, sus niveles, sus velocidades… Todo. Incluso, si puedo, le voy a poner su música.

Tiene gracia. Tiene mucha gracia. Este juego me encanta, desde siempre. Hace unos meses incluso recuperé el vicio con “Tetris DS“; mi record lo fui poniendo en el blog… Nivel 123 (que por cierto, Hikari, sé que me has adelantado…). Fue uno de los primeros juegos de mi Game Boy (junto a ‘The Legend of Zelda: Link’s Awakening’ ySuper Mario Land’). Y ahora, precisamente, tengo que programar uno de los juegos que marcaron mi vida.

En fin, ¡Adelante! Que sea algo tan significativo para mi me motiva muchísimo para hacerlo.

¡Hey, cuatro líneas! ¡Tetris!

Triángulo de Pascal o de Tartaglia

¿Habíais visto alguna vez este triángulo de números tan curioso? Yo ya lo conocía, pero para el que no, veamos que nos dice la Wikipedia:

El triángulo de Pascal es un triángulo de números enteros, infinito y simétrico.

Se construye de la siguiente manera: Se empieza por el « 1 » de la cumbre. De una línea a la siguiente se conviene escribir los números con un desfase de media casilla. Así, las casillas (que no se dibujan) tendrán cada una dos casillas justo encima, en la línea anterior. El valor que se escribe en una casilla es la suma de los valores de las dos casillas encima de ella. El valor cero no se escribe. Por ejemplo, en la última línea dibujada, el cuarto valor es 84 = 28 + 56, suma del tercer y cuarto valor de la línea anterior. Se observa, y no es difícil demostrarlo, que la capa exterior está formada de unos, la segunda capa de los naturales en orden creciente, que los números no hacen más que subir de una línea a la siguiente y que existe un eje de simetría vertical que pasa por el vértice.

Y a partir de aquí, empieza la wiki a comentar sus fórmulas matemáticas y tal, que no voy a reproducir yo aquí. Os he dejado el enlace.

Bueno, pues mi última práctica era exactamente eso: hacer un Triángulo de Pascal. A lo mejor lo habéis leído en mi Twitter.

Y por fin ayer la acabé. Después de una semana y media la acabé. Con su ventanita, su petición de datos… Que bonito T_T. Funciona, sin problemas. Por fin T_T.

En fin… Hasta la semana que viene no vuelvo a tocar la programación, lo juro…

Llevo semanas sin publicar nada en el blog, casi sin encender el ordenador, y no necesito dar una explicación demasiado complicada para que lo entendáis:

Estaba de exámenes.

Y han acabado hoy, por fin. Cierto es que no me he presentado a todas, y que no espero demasiado de este catastrofico primer cuatrimestre… Pero no se ha querido ir sin darme una buena noticia:

¡He aprobado programación T_T!

Vale, es una, una sola, tengo más asignaturas… pero el agobio que he tenido todos estos días pensando en cómo demonios me habría salido, se me ha ido de un plumazo. Y es que un examen de programación en papel, es duro. Los programadores me entendéis. Escribir con un bolígrafo un código en C++ de un programa (mejor dicho, de tres) más bien dificilito, sin poder depurar, sin poder compilar y probar, es MUY difícil de sacarlo bien. Porque no puedes comprobar que funciona sin errores, o que te has comido una llave }, o que no has puesto un punto y coma ; … O simplemente, ¡Si el algoritmo es correcto o no!

Pero no, he aprobado… no tengo una notaza, ciertamente, tengo un 5, pero he aprobado…

Una menos :) Ahora, pa’lante con el segundo cuatrimestre.

Homer Programa

Cuando era pequeño, en los ratitos antes de dormirme, mi mente imaginaba cosas como por ejemplo una linea. De ahí derivaba en un rectangulo. De ahí, iba jugando con las lineas hasta obtener figuras, desdoblandolas, recortandolas, sacando cuadrados de dentro de otro cuadrado… Vamos, que me “rayaba” mucho… xD

El caso es que hoy me ha tocado jugar con rectangulos en programación. Tenía que hacer un ejercicio que decía así:

3. Establecer una definición de una estructura que represente el tipo de dato rectángulo. A partir de la definición propuesta construir:
a) Una función que calcule el área de un rectángulo.
b) Una función que calcule el perímetro de un rectángulo.
c) Una función que dados dos rectángulos, nos diga cual de ellos es mayor, teniendo en cuenta que el mayor es aquel que tiene mayor área.
d) Una función que nos diga si dos rectángulos son idénticos. Ser idénticos implica que tienen el mismo área y el mismo perímetro.
e) Una función que intercambie los valores entre dos variables de tipo rectángulo.
f ) Una función que dado un vector de rectángulos los ordene de mayor a menor.

Tras leerme profundamente el tema 5 (estructuras), y entenderlo bastante mejor de lo que me esperaba, me he dicho “Vamos a probar con este…”

Y con Coldplay acompañandome desde mi pequeño ObiPod, me he pasado hora y media-dos horas haciendo el programita. No es difícil, estaréis pensando algunos. Hombre, pues no. Difícil no es. Pero pensad que hoy he entendido yo lo que es una estructura xD. Y que han sido 236 lineas de código (que sí, que vale, que 236 lineas no son nada, pero que yo nunca he hecho un programa tan largo, leñe xD)

Lo cierto es que después de arreglar los chorrocientos fallos que daba el compilador… ¡Funciona! Probé que todas las funciones hiciesen lo correcto (tuve que arreglar todas xD) y el programa funciona perfectamente, ajustándose a lo que me piden. ¡Qué emoción! :fan: (En un alarde de originalidad, lo he llamado “Rectangulos 1.0″ … xD)

Es la primera vez que hago un programa complejo sin presión por el examen ni leches. Que funcione por mi propia cuenta es para mi todo un logro. Estoy bastante contento conmigo mismo.

Mañana probaré otro ejercicio… a ver si me sale también :)

Autoestima+=10;