Proyecto - Parcial 3

Objetivo: Aplicar algoritmos que requieran el uso de estructuras de control, conteo e implementación de funciones y variables; además de saber aplicar y conocer  plataformas o páginas de desarrollo móvil.


Parte 1: MIT App Inventor
  • Se solicita iniciar sesión desde una cuenta Gmail para hacer uso de la plataforma.
  • Una vez ingresada la cuenta que se trabajará y dando los permisos correspondientes, aparece un menú, el cual muestra todos los proyectos que se realizan.
    • Para generar un nuevo proyecto, dar clic en New Project, el cual abre una alerta, en la cual se debe escribir el nombre que se le dará al proyecto (no incluir espacios).
    • Después de ingresar el nombre del proyecto, este habrá sido creado correctamente.


Parte 2: Diseño del tablero (Gato)
  • Para dibujar el tablero de gato, se deben anexar un componente llamado DisposiciónVertical, el cual se encuentra en la pestaña Disposición; para anexarlo simplemente se selecciona el componente, y sin soltar el botón izquierdo del mouse, arrastrarlo al visor del teléfono.
  • Una vez agregado este componente, se deben anexar el componente DisposiciónHorizontal 3 veces dentro del componente DisposiciónVertical.
  • Ahora, dentro de cada componente que fueron agregados (DisposiciónHorizontal), se anexa el componente Botón 3 veces en cada uno.
    • A cada botón se le debe borrar su texto.
  • Antes de iniciar el juego del gato, todas las casillas están en blanco, y en cada jugada, dichas casillas deben se marcadas por una equis (X) o una o (O); así que entonces se deben cargar 3 imágenes para ser usados al momento del juego.
      • Las imágenes que se deben anexar son las siguientes:
    • Después de cargar las imágenes que se requieren, la imagen en blanco debe estar predefinida en los componentes Botón; para ello se debe seleccionar cada uno de estos componentes y en Propiedades, en Imagen se debe seleccionar la imagen en blanco.



    • Las casillas del tablero ya están definidas, pero estas normalmente son separados por líneas dentro del tablero, así que estas se anexan como imágenes dentro del tablero ya definido; con apoyo del componente Imagen, y se cargan las líneas en Propiedades, dar clic en Foto y cargar las líneas correspondientes (vertical u horizontal).




      • La división de cada casilla es por medio de líneas, las cuales pueden ser las siguientes:
    • Se puede agregar un botón adicional para reiniciar el juego.
    • Una vez diseñado el tablero completo, en la barra de navegación dar clic en Generar y seleccionar la opción Android App (.apk).
    • Al momento de seleccionar esa opción, se genera una barra de progreso, que cuando este finaliza da la opción de descargar el apk, o leer el QR desde un celular.

    • Entonces se escanea el código QR, se descarga el apk, y este mismo se instala, quedando el diseño de esta forma:


    Parte 3: Implementación del algoritmo por medio del uso de bloques
    • Al momento de generar un proyecto, la página abre el modo Diseñador para la parte gráfica de la aplicación móvil, pero en la pestaña Bloques es donde se realiza la programación del juego.
    • En la parte izquierda de la ventana se muestran los tipos de bloques que se pueden implementar en la aplicación:
      • Integrados:
        • Control: Bloques que controlan el flujo de la ejecución de la aplicación móvil, mediante el uso de condiciones, las cuales ejecutan un fragmento cuando la condición dada es verdadera..
        • Lógica: Bloques que importantes para usar bloques de control, ya que estas dan las condiciones para ejecutar un fragmento.
        • Matemáticas: Bloques que realiza varias operaciones matemáticas básicas, y definir un valor inicial a una variable.
        • Texto: Bloques que realiza operaciones pero con cadenas de texto o caracteres, y definir una cadena de texto como vacía.
        • Listas: Bloques que se encargan de almacenar varios datos sin la necesidad de declarar varias variables, de las cuales pueden o no ser utilizadas.
        • Dictionaries: Bloques que se encargan de almacenar varios datos de tipo númerico o de tipo texto (en programación no es posible que una lista contenga tanto números como letras, con los diccionarios si es posible).
        • Colores: Bloques que pueden cambiar los colores de los componentes que se agreguen en la aplicación móvil.
        • Variables: Bloques que definen las variables que se implemntarán en la aplicación móvil, de tipo texto o númerico.
        • Procedimientos: Bloques que definen el algoritmo que se ejecutará en la aplicación móvil.
      • Screen1: Al dar clic en el mas que esta a lado de este componente, se extenderán todos los componentes que fueron agreados en el diseño, los cuales al dar clic en cualquiera de estos, da posibles bloques de ejecución, de las mencionadas anteriormente.

    Parte 4: Algoritmo
    • Realizar el algoritmo por botón, en el cual al momento de darle clic, cambie su imagen a los símbolos del gato (debe ser una X o una O).
      • Cuando el botón ya no este vacío y tenga un símbolo del gato, al volverle dar clic este no debe modificar su símbolo.
    • Llevar un conteo y un control para determinar los turnos y quien gane el partido.
    • La partida finaliza cuando todas las casillas esten llenas o cuando haya un ganador (no hay necesidad que todas las casillas esten llenas).
      • Cuando se determine el ganador y aun haya casillas vacías, estas ya no pueden ser modificadas.
    • Tomar en cuenta que el ganador debe cumplir con estas posibles soluciones:



      • Tomar en cuenta la solución tanto para las X y las O.

    Parte 5: Algoritmo en bloques implementado
    • Variables que se utilizan en el juego.
    • Algoritmo de los botones (se debe implementar estos bloques en todos los botones).
    • Determinar si el jugador hizo una combinación, determinado por las 8 soluciones que se mostraron anteriormente.
    • Finalizar juego, verificar quien gano (X ó O) o si el juego termino en empate.
    • Botón para reiniciar juego.


    Indicaciones Generales:
    • El trabajo es de forma individual.
    • Se registrará el correo electrónico para ingresar a MIT App Inventor.
    • Por cada detalle extra que se agregue a la aplicación móvil, será acreedor de puntaje extra.
    • Fecha de entrega: Antes del 18 de enero de 2024.