Paso 1: implementar y probar localmente
En este paso se descarga, implementa y prueba la aplicación del juego de tres en raya en el equipo local. En lugar de utilizar el servicio web de Amazon DynamoDB, descargue DynamoDB en su ordenador y cree en él la tabla requerida.
1.1: descargar e instalar los paquetes obligatorios
Necesitará lo siguiente para probar localmente esta aplicación:
-
Python
-
Flask (un micromarco de trabajo para Python)
-
AWS SDK for Python (Boto)
-
Ejecución de DynamoDB en su ordenador
-
Git
Para obtener estas herramientas, haga lo siguiente:
-
Instalación de Python. Para ver instrucciones paso a paso, consulte Download Python
. La aplicación Tic-Tac-Toe se ha probado con Python versión 2.7.
-
Utilice Python Package Installer (PIP) para instalar Flask y el AWS SDK for Python (Boto):
-
Instale PIP.
Para ver instrucciones, consulte Install PIP
. En la página de instalación, seleccione el enlace get-pip.py y, a continuación, guarde el archivo. Después abra un terminal de comandos como administrador y escriba lo siguiente en el símbolo del sistema. python.exe get-pip.py
En Linux, no se especifica la extensión
.exe
. Solo se especificapython get-pip.py
. -
Utilice PIP para instalar los paquetes Flask y Boto mediante el siguiente código.
pip install Flask pip install boto pip install configparser
-
-
Descargue DynamoDB en su ordenador. Para obtener instrucciones sobre cómo ejecutarlo, consulte Configuración de la versión de DynamoDB local (versión descargable) .
-
Descargue la aplicación Tic-Tac-Toe:
-
Instale Git Para ver instrucciones, consulte git downloads
. -
Para descargar la aplicación, ejecute el siguiente código:
git clone https://github.com/awslabs/dynamodb-tictactoe-example-app.git
-
1.2: probar la aplicación del juego
Para probar la aplicación Tic-Tac-Toe (Tres en raya), debe ejecutar DynamoDB localmente en su ordenador.
Para ejecutar la aplicación tic-tac-toe (tres en raya)
-
Inicie DynamoDB.
-
Inicie el servidor web de la aplicación Tic-Tac-Toe.
Para ello, abra un terminal de comandos, diríjase a la carpeta en la que ha descargado la aplicación Tic-Tac-Toe (Tres en raya) y ejecute la aplicación localmente con el código siguiente.
python.exe application.py --mode local --serverPort 5000 --port 8000
En Linux, no se especifica la extensión
.exe
. -
Abra el navegador web y escriba lo siguiente.
http://localhost:5000/
En el navegador aparece la página de inicio.
-
Escriba
user1
en el cuadro Log in (Iniciar sesión) para iniciar sesión como user1.nota
En este ejemplo de aplicación no se lleva a cabo la autenticación del usuario. El identificador de usuario se utiliza solamente para identificar a los jugadores. Si dos jugadores inician sesión con el mismo alias, la aplicación funciona como si estuviesen jugando en dos navegadores distintos.
-
Si es la primera vez que inicia el juego, aparece una página que le pide que cree la tabla requerida (
Games
) en DynamoDB. Seleccione CREATE TABLE (CREAR TABLA). -
Elija CREATE (CREAR) para crear la primera partida de tres en raya.
-
Escriba
user2
en el cuadro Choose an Opponent (Elegir un contrincante) y elija Create Game! (Crear partida)Se crea la partida agregando un elemento en la tabla
Games
. El estado de la partida se establece enPENDING
. -
Abra otra ventana del navegador y escriba lo siguiente.
http://localhost:5000/
El navegador transmite información a través de las cookies, por lo que ha de utilizar el modo de incógnito o la navegación privada para que las cookies no se conserven.
-
Inicie sesión como user2.
Aparecerá una página con una invitación pendiente de user1.
-
Elija accept (aceptar) para aceptar la invitación.
Aparecerá la página de la partida con una cuadrícula de tres en raya vacía. En la página se muestra también información pertinente sobre la partida, como el Id. de la partida, a quién le toca jugar y el estado de la partida.
-
Juegue la partida.
Cada vez que un usuario mueve la ficha, el servicio web envía una solicitud a DynamoDB para actualizar de forma condicional el elemento de la partida en la tabla Games
. Por ejemplo, las condiciones garantizan que el movimiento haya sido válido, que la casilla elegida por el usuario esté disponible o que le tocaba jugar al usuario que movió la ficha. Para cada jugada válida, la operación de actualización agrega un nuevo atributo correspondiente a la casilla seleccionada en el tablero. La operación de actualización también establece el valor del atributo existente en el usuario que puede llevar a cabo la siguiente jugada.
En la página del juego, la aplicación realiza llamadas asíncronas a JavaScript cada segundo durante un máximo de 5 minutos, para comprobar si el estado del juego en DynamoDB ha cambiado. En caso afirmativo, la aplicación actualiza la página con la nueva información. Después de 5 minutos, la aplicación deja de realizar las solicitudes y tendrá que actualizar la página si desea obtener información actualizada.