Aprendiendo a programar

Codear

Tomado de la Real Academia de la Lengua: codear**.** 1. intr. Mover los codos. 2. intr. Dar golpes con los codos frecuentemente. 3. intr._ Am. Mer._ Pedir con insistencia. 4. prnl. Dicho de una persona: Tener trato habitual, de igual a igual, con otra o con cierto grupo social. Usted programa, los necios codean frente a sus computadores, se van a cansar y no lograrán alzar vuelo nunca.

Capítulo 20, dispositivos

Ya se encuentra disponible el capítulo 20 de nuestro curso de programación, dispositivos. http://www.programando.org/aprende-a-programar/segunda-parte/arquitectura-de-computadores/dispositivos.html Este capítulo cierra la parte dedicada a la arquitectura de computadores. A continuación retomaremos el objetivo de la segunda parte del curso, que es construir una versión gráfica de nuestro juego.

Capitulo 19, interpretando el código de máquina

He completado el capitulo 19 del curso. Tal como les adelanté, estoy usando el nuevo formato para el curso, así que para leerlo deben ir a la siguiente dirección: http://www.programando.org/aprende-a-programar/segunda-parte/arquitectura-de-computadores/interpretando-el-codigo-de-maquina.html En este capítulo implemento el interprete del lenguaje assembler que hemos definido para nuestra máquina virtual (definida en el capítulo 17: Código de Máquina). Lo interesante es que implementamos un interprete de una forma totalmente funcional, lo que permite mayor flexibilidad y un código más simple y “mantenible”.

Nueva versión del curso

Ya terminé la traducción a Sphinx de los posts del curso, los 18 capítulos publicados hasta ahora se encuentran en su nuevo formato, pueden acceder en esta dirección: http://www.programando.org/aprende-a-programar/ En los próximos días retomo los capítulos que siguen. Dado que a partir de ahora sólo usaré sphinx para escribir el curso usaremos el blog para anunciar la incorporación de nuevos capítulos, y para que ustedes hagan sus comentarios. Esta es la versión 0.

Cargando el código de máquina

Si recuerdan en el capítulo anterior, de nuestro curso de programación, definimos una máquina virtual con un código, o lenguaje de máquina bien preciso. En el diagrama sin embargo aparece una componente que no explicamos, se trata del **módulo loader. **Acá está la figura para que la recuerden: El módulo **loader **se encarga de cargar un programa, escrito en el lenguaje ensamblador, a la memoria de nuestra máquina virtual, para su posterior ejecución.

Código de Máquina

En el capítulo anterior de nuestro curso de programación vimos algo de la historia del desarrollo del computador digital. Pero, ¿cómo funciona un computador? Para responder esta pregunta vamos a simular el funcionamiento de un computador usando Python. Lo que vamos a construir es un modelo de máquina, un híbrido entre máquina de Turing y de Von Neumann. Si recuerdan bien, la idea de Turing era construir una máquina que opera leyendo símbolos desde una larga cinta de papel, y escribiendo en esta misma cinta los resultados de las operaciones, las que dependen obviamente de la interpretación de estos símbolos.

La máquina universal

En la primera parte de nuestro curso de programación aprendimos los elementos básicos para construir programas simples. Fuimos aprendiendo esto en la medida que ibamos construyendo un juego de naipes. Pero este juego tiene una interfaz de usuario bastante básica basada en texto. Aunque ustedes no lo crean un programa idéntico a este fue usado en un proyecto de juegos para telefonía móvil usando SMS. Del mismo modo se podría usar para jugar en twitter, las posibilidades están abiertas a vuestra imaginación como desarrolladores.

La lógica del juego de BlackJack

En el capítulo anterior, de nuestro curso de programación, escribimos las rutinas necesarias para interactuar con el usuario. Además escribimos la función blackjack() que es la rutina principal de nuestro juego. Ahora nos vamos a concentrar en la lógica del juego. Volvamos a revisar la función blackjack(): def blackjack(pozo, apuesta_minima): print ("Bienvenido al juego de black jack") apuesta = solicitar_apuesta(pozo, apuesta_minima) while apuesta_minima <= apuesta <= pozo: resultado = jugar_mano(apuesta, pozo) pozo += resultado mostrar_resultado(resultado, pozo) apuesta = solicitar_apuesta(pozo, apuesta_minima) print ("Gracias por participar, su pozo final es: ", pozo) Lo que vamos a escribir a continuación es la función jugar_mano().

La interfaz de usuario de Black Jack

Ya es tiempo de que montemos nuestro juego. En las lecciones previas aprendimos todo lo necesario para armar el juego. Ahora vamos a escribir el programa que juega blackjack. Esta labor la dividimos en 2 partes: la interfaz de usuario y la lógica de juego. En nuestra descripción de las reglas del juego definimos que el jugador tendrá un pozo inicial y una apuesta mínima, estos serán los dos parámetros iniciales de nuestro programa.

La reglas del juego

Hasta ahora en las lecciones previas hemos aprendido como generar cartas y barajarlas. A continuación vamos a realizar una especificación de requerimientos para el juego de Black Jack. El juego de Black Jack En nuestro juego participará 1 sólo jugador, y el computador actuará como croupier. Este será un juego de apuestas. El juego consiste en obtener 21 puntos con las cartas que se tienen en la mano. Las cartas del 2 al 10 conservan su valor, las cartas de la J a la K tienen el valor 10, y el As puede valer 1 ú 11.