Introduction: Logic-Blocks / Prototipo FOC

Tecnológico de Costa Rica / Campus Tecnológico Central de Cartago
Escuela de Computación / Ingeniería en Computación
Prototipo / Proyecto 2 / Fundamentos de Organización de Computadoras / IC-1400
Jose Pablo Agüero Mora - 2021126372 / José Julián Gutiérrez Badilla - 2021072199
Prof: Esteban Arias Mendez / I Semestre 2021

Bienvenidos a Logic-Blocks, este juego está diseñado con el objetivo de incentivar el aprendizaje sobre ciertas bases de las ciencias de la computación en generaciones jóvenes con interés en la tecnología. El público meta de este juego se encuentra principalmente en un rango entre los 8 y 12 años de edad, debido a que busca lograr un aprendizaje moderado sobre el funcionamiento de las compuertas lógicas principales además de la manipulación del sistema numérico binario (tanto conversiones como sumas).

El juego puede tener desde 2 hasta 4 participantes (para que la partida mantenga un buen ritmo) y plantea un entorno de competencia en relación al funcionamiento de las compuertas lógicas, para esto se utiliza el sistema binario con el objetivo de simular un mecanismo de recompensas en donde los jugadores puedan ganar "bits" los cuales representan los puntos del juego.

La implementación de este juego es realmente sencilla y no requiere de una gran preparación, esto se puede analizar mejor en la siguiente sección, la cual aclara los materiales requeridos y las reglas de cada actividad. Además, se encuentran adjuntos los documentos para las plantillas del juego a continuación:

Supplies

El diseño del juego implementa elementos sencillos de conseguir y muy flexibles en su usabilidad. Como se puede observar en la imagen principal, el recurso primordial son los legos o bloques de construcción, estos pueden ser de cualquier tipo o tamaño, ya que solo se usan para unir partes y diferenciar cada pieza por su color.

Por otro lado se encuentran las plantillas del juego, las cuales están adjuntadas al inicio de las instrucciones. Estos son dos documentos los cuales ayudarán a la conversión de los bits (de base 2 a base 10) y por otro lado una ficha de jugador para registrar información básica de la partida y llevar registro contable de los resultados en cada set o ronda. Estas fichas contienen un diseño bastante simplificado, por lo que se pueden imprimir o también copiar los datos a mano, lo cual no altera el desarrollo del juego. El uso de tales herramientas se explicarán a lo largo de las instrucciones.

Además se puede hacer uso de bases para legos (elemento opcional), las cuales se muestran en la imagen. Estas son piezas planas con los anclajes del lego. Dichos objetos facilitarán la administración de los "bits" que gana cada jugador, pero no son completamente indispensables.

Finalmente se necesita de un lápiz o lapicero y estas instrucciones a mano para entender a profundidad cada paso. Y por supuesto que lo más importante es las buena actitud y deseo de nuevos conocimientos; ahora sí, a jugar!!!

Step 1: Conceptos Iniciales Y Preparación

Para entender inicialmente el sistema de puntos por bits, es importante dejar claros ciertos conceptos para contextualizarlos en el juego.

Un bit es la unidad básica de la información, que se respalda del sistema numérico posicional en base 2 o binario, en donde cada bit puede tener solo uno de dos estados 1 o 0; en este caso, para visualizarlos mejor estructuramos bloques de construcción de dos colores, cada uno representando un estado. Azul para el 0 y rojo para el 1. (Ver comentarios en imágenes)

Cada torre representa un número binario que puede ser de diferentes extensiones, el bloque más alto siempre será el bit más significativo mientras que el bloque más bajo representará el bit menos significativo. Estos números o torres se pueden colocar ya sea de forma vertical o también acostada, teniendo en cuenta que el bit más significativo o el primer bloque de la torre de arriba hacia abajo deberá ir en el extremo izquierdo.

Teniendo esto claro, se procede a comprender las bases sobre cómo estos números toman valor.

Step 2: El Valor De Los Bloques (Bits)

Para entender este paso es importante hacer uso de la primera plantilla adjunta al documento. Esta es una estructura básica para poder facilitar el entendimiento sobre el valor de estas torres. Se deberá imprimir o calcar este diseño para hacer uso de las posiciones. Los sistemas posicionales tienen este nombre debido a que cada dígito adquiere un valor en relación a su base y la posición en que se encuentra dentro del número total, por este motivo se debe conocer cómo calcular los valores totales de cada torre (número).

Claro que el diseño de la plantilla tiene un tamaño único realizado para los bloques mostrados en las imágenes, por lo que en caso de usar otros bloques o legos es necesario adaptar el diseño a las medidas de cada bloque correspondiente.

Para hacer uso de este recurso se coloca la torre de forma correspondiente en las casillas y se escribe en los espacios en blanco del exponente en cada número 2, los números del 0 en adelante hasta que se complete la cantidad de bloques que hay, menos uno, anotando esto de derecha a izquierda. Es decir, se comienza escribiendo el número 0 en el primer exponente de derecha a izquierda y a partir de ahí se continúan con los números naturales hasta llegar a la última casilla ocupada por los bloques.

Con esto se procede a tomar únicamente los bloques en rojo (los 1) y sumar sus potencias (2^0+2^2+2^4+2^5 = 53 / ejemplo de la primera imagen) el resultado de esto será el número decimal equivalente a la torre (o número binario).

Step 3: Uso De Las Compuertas Lógicas

Esta sección representa el núcleo de toda la actividad lúdica, ya que el juego como tal trata sobre el uso de compuertas lógicas y el entendimiento de sus funciones. Se usarán únicamente las compuertas principales y ciertas combinaciones de las mismas.

Las compuertas lógicas son dispositivos electrónicos con los que se pueden obtener resultados booleanos. Están hechos con transistores, dispositivos que determinan el paso o bloqueo de energía dependiendo de sus entradas, se puede tomar la analogía de que cada bloque con que están hechas las compuertas en este caso, representan transistores. Para simplificar el concepto, en este caso determinan la interacción entre ciertas entradas de bits, con el objetivo de brindar una salida (o respuesta). La diferencia entre las compuertas es cómo se comportan para brindar esa salida.

Para iniciar contamos con la compuerta lógica AND ("Y" en español) que se representa de color amarillo, la cual brinda una salida de 1 (bloque rojo) sólo cuando ambas entradas son 1 (bloques rojos), en caso de que exista una entrada azul (en 0), la salida también será azul (0).

Cabe resaltar que todas las compuertas cuentan con dos entradas, excepto el NOT (la cual cuenta solo con una).

Luego la compuerta OR ("O" en español) que se representa con color verde, esta brinda una salida de 1 (bloque rojo) cuando una de sus entradas también lo es, o si ambas son 1. La salida sólo es azul (0) cuando sus dos entradas son azules también.

Luego encontramos la compuerta NOT ("NO" en español) de color anaranjado, esta simplemente invierte el valor que reciba como entrada, es decir, si se ingresa un bloque rojo (1), devuelve un bloque azul (0) y devuelve un bloque rojo si se ingresa un bloque azul.

Finalmente se encuentra la compuerta XOR (o Exclusive OR) esta devuelve un bloque rojo (1) únicamente cuando una de las dos entradas es un bloque rojo (1), devuelve un bloque azul (0) cuando ambas entradas son iguales (ya sean ambas rojas o ambas azules).

Para comprender mejor esta última compuerta, se adjunta una imagen que la recrea usando las compuertas ya vistas previamente.

Cabe resaltar que estas compuertas se pueden combinar, un ejemplo importante es la unión de la compuerta NOT con todas las demás, lo cual produce elementos como NAND, NOR, y XNOR, que cumplen con las funciones ya identificadas pero negando su resultado.

Step 4: Inicio Y Desarrollo Del Juego

Se inician creando bastantes compuertas variadas para que los jugadores puedan elegir sus compuertas iniciales. El juego se divide en rondas y sets, las rondas definen la cantidad de bits que tenga cada torre o número completo, es decir, si son 4 rondas por set, cada torre o número binario será de 4 bloques (bits). De esta forma si se establecen 4 rondas por ejemplo, el número máximo (en valor decimal) al que puede llegar cada torre es de 15, ya que 2^4 = 16, por lo que los números van desde el 0 hasta el 15.

Estos valores de cuántas rondas o entradas tendrá la partida se definen por los jugadores al iniciar la partida en la plantilla de datos adjunta al documento. No hay límite de rondas o sets, pero entre más sean, la dificultad aumentará en las rondas más elevadas de cada set.

La dinámica principal del juego es crear circuitos sencillos a base de estas compuertas iniciales y de esta forma simular de una manera divertida el funcionamiento computacional básico.

En la primera ronda del primer set, sin importar cuál cifra de repeticiones se eligieran al inicio, se pueden elegir únicamente 4 compuertas por jugador. Este cuenta con 30 segundos para formular un circuito sin que el otro jugador lo observe, para desarrollarlo puede recordar las funciones de cada compuerta y puede combinar las diferentes entradas y salidas a conveniencia mientras cumpla con la lógica de cada elemento. Una vez que está listo el diseño general debe incluir las entradas correspondientes en donde se requiera, así como se muestra en las imágenes.

Posterior a esto, el segundo jugador posee 10 segundos para determinar cuál es el recorrido del circuito y por supuesto la salida final, posicionando los bloques (bits) faltantes.

En este proceso si el jugador acierta todas las variables, gana un bloque rojo, en caso de que falle gana un bloque azul, y si no logra completar las variables no se lleva ningún bloque.

De esta forma se continuaría con el diseño de este jugador, en donde el jugador 1 sería el que cumpla el rol de resolución. En caso de que sean más de dos jugadores, este proceso se repite hasta que todos hayan participado.

Cada jugador debe ir montando su torre, apilando los bloques que gana de forma ascendente, por ejemplo, en una partida de 4 rondas por set, el bloque ganado en la primera ronda representa el bit menos significativo y el bloque ganado en la cuarta ronda de ese set representa el bit más significativo del número.

Este sistema permite ir incrementando la dificultad en cada ronda, por ejemplo incrementar la cantidad de compuertas que se pueden usar en 2 por ronda, usando en la primera ronda 4 compuertas, en la segunda 6 compuertas, en la tercera 8 compuertas y en la cuarta 10 compuertas. En cada ronda el tiempo de ejecución incrementa en 5 segundos. Ejemplo de esta dificultad progresiva son las dos últimas imágenes mostradas en esta sección, las cuales plantean un circuito usando 6 compuertas.

Si el jugador lo desea puede ir convirtiendo sus resultados parciales de cada set e incluiros en la hoja de datos, como un registro de progreso.

Las torres se van acumulando por cada set logrado, así como se muestra en las imágenes. Esto con el objetivo de llegar a la fase final del juego para determinar el ganador.

Step 5: Cálculo De Resultados

Para llegar al final del juego es necesario formular una torre final la cual se comparará con la de los demás jugadores y la que tenga un número mayor gana. Pero para llegar a esto es necesario realizar una suma de torres o números binarios, debemos sumar los resultados de cada set.

Para esto hay dos técnicas, la primera es sumar todas las torres a la vez. En este caso se colocan de forma correspondiente y se procede a sumar bloque (bit) por bloque (bit), de derecha a izquierda. Si se suma un 0 (bloque azul) con un 1 (bloque rojo) o un 1 con un 0 este resultado siempre será 1 (bloque rojo). Si se suman dos bloques azules (0) el resultado siempre será un bloque azul. Pero si se suman dos bloques rojos (1) entra en juego el acarreo al igual que en las sumas convencionales. Se debe poner un 0 y llevar 1 (bloque rojo) al siguiente bloque o bit, así como se muestra en las imágenes.

El resultado de cada suma por columna se va ingresando como una nueva torre y al final se comprueba de forma horizontal o acostada. Un acarreo en el último bloque cuenta como un overflow, en estos casos se deja ya que significa que el número crece de bits (o bloques), así como se observa en el ejemplo.

La segunda técnica es realizar este mismo proceso de sumas pero tomando una pareja de torres y sumando el resultado de esto a la siguiente y así sucesivamente hasta que se llegue al final.

Con esta sección se logra interactuar con los números binarios y realizar la operación de la suma.

Al final del proceso se obtienen los resultados completos de cada jugador, los cuales están listos para ser comparados.

Step 6: Comparación De Resultados

Al final se hace uso de las técnicas previamente aprendidas de conversión. También se pueden comparar estos números sin necesidad de convertirlos, pero se hace como un repaso y elemento importante del juego.

Se vuelve a utilizar la plantilla de conversión, usando las mismas reglas y se pasa el número a decimal, este resultado se escribe en la hoja de datos de cada jugador.

Finalmente se comparan estos datos y se determina cuál es el jugador que ha salido victorioso y ha logrado montar una torre de bits más valiosa.

En el ejemplo de las imágenes, el jugador 1 logró una torre con un valor decimal de 18, mientras que el jugador 2 alcanzó un valor total de 24, por lo que este segundo fue el ganador.

La última imagen hace alusión al podio que expone estos resultados, posicionando a la torre ganadora en un nivel más elevado.

De esta forma concluye el juego, logrando una manera entretenida de interactuar con conceptos básicos relacionados a los circuitos lógicos, álgebra de Boole y conversiones binarias, acercando así estos términos en forma de práctica a los niños.