Ahorcado online multijugador

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Ahorcado online multijugador"

Transcripción

1 Ahorcado online multijugador Objetivo Que el alumno ponga en práctica los conocimientos teóricos y prácticos adquiridos en la Parte II de la asignatura de Programación Concurrente. La práctica podrá realizarse de forma individual o por parejas. Fecha y mecanismo de entrega La entrega se realizará el Viernes 29 de Enero de 2016 por el campus virtual. Se deberá entregar un.zip cuyo contenido será el proyecto eclipse en el que se ha realizado la práctica. Las carpetas src, target y el fichero pom.xml deberán estar en la raíz del fichero comprimido (no debe haber una carpeta practica o similar). El nombre del fichero.zip tiene que ser igual al identificador del alumno en la URJC (la parte antes de del correo electrónico del alumno en la URJC). En caso de dos alumnos, se incluirán ambos nombres separados por -. En el fichero pom.xml se deberá incluir el siguiente nombre del proyecto (donde nombre.alumno corresponde con el identificador del alumno o alumnos): <groupid>es.urjc.pc</groupid> <artifactid>nombre.alumno</artifactid> <version>0.0.1-snapshot</version> Además del envío del código, se realizará un examen oral de la práctica para que el profesor pueda verificar que ambos alumnos conocen el funcionamiento de la práctica entregada. Durante el examen los alumnos tendrán delante el código fuente de la práctica y se les pedirán explicaciones sobre el mismo y su ejecución. El examen se llevará a cabo el mismo día 29 de Enero de 12:00 a 14:00 y de 15:00 a 18:00. El aula está todavía por determinar y será notificada desde el campus virtual. Los alumnos seleccionarán la franja horaria en la que desean defender la práctica usando esta página web: dit?usp=sharing 1

2 Enunciado La empresa HappyPigs de desarrollo de videojuegos quiere desarrollar un juego ahorcado online multijugador. Para poder implementar este juego la empresa ha decidido realizar varias iteraciones. En cada iteración se irán incorporando funcionalidades a la iteración anterior. Esta forma de desarrollar aplicaciones es muy habitual en equipos de desarrollo profesionales porque permite tener versiones completas que enseñar al cliente en cada iteración. Además, también es una forma efectiva de organizar el trabajo. En el caso de HappyPigs, se van a realizar las siguientes iteraciones: Iteración 1 - Ahorcado monojugador offline: Esta primera versión del ahorcado sólo permite un único usuario y se ejecuta completamente en la máquina del jugador. Esto permite centrarse en la mecánica del juego y olvidarse de los detalles de red. Además, al existir un único usuario hace el código más sencillo de implementar. Iteración 2 - Ahorcado monojugador online: En esta segunda versión se aborda la conversión de una aplicación offline (que se ejecuta completamente en el sistema del jugador) a una aplicación online. La aplicación online está formada por dos partes: la parte servidor y la parte cliente. La parte servidor alberga la lógica del juego. La parte cliente tiene el interfaz necesario para interactuar con el jugador y se ejecuta en el sistema de dicho jugador. Iteración 3 - Ahorcado multijugador online: En la tercera versión el juego se convierte en multijugador. Esta versión está centrada en la sincronización de los distintos jugadores, que tendrán que esperar a que se hayan unido los demás jugadores para iniciar la partida y tendrán que esperar su turno para poder mostrar una letra. Iteración 4 - Ahorcado multijugador online con estadísticas: En la cuarta y última versión del juego el objetivo es añadir estadísticas. De esta forma, la empresa HappyPigs podrá saber qué jugadores son los mejores jugando al juego del ahorcado. A continuación se describen en mayor detalle cada una de estas iteraciones. Las dos primeras ya están completamente desarrolladas. La tercera está parcialmente completada y la cuarta aún no ha empezado su desarrollo. Iteración 1 - Ahorcado monojugador offline La versión monojugador offline del ahorcado es una aplicación Java en modo consola. El objetivo del juego consiste en que el jugador adivine el nombre de un país. Para ello, el jugador verá tantos guiones como letras tiene el nombre del país. La mecánica del juego consiste en que el jugador va indicando letras (vocales o consonantes). Cada letra que seleccione el jugador que esté presente en el nombre del país se considera un acierto y se muestra en la propia palabra sustituyendo el guión o los guiones en los que aparezca esa letra. Cada letra que elija el jugador que no esté presente en el nombre del país se considera un error. 2

3 Cada vez que se produce un error, se añade una parte del cuerpo del ahorcado. El jugador pierde si el cuerpo del ahorcado aparece completo antes de que el haya completado el nombre del juego. El jugador gana si es capaz de completar el nombre del juego. Para un jugador, el juego del ahorcado funciona de la siguiente manera: 1) Cuando el juego se inicia se pide el nombre al jugador para poder dirigirse a él. 2) A continuación se muestra el dibujo de una horca sin el ahorcado. 3) Posteriormente se muestran tantos guiones como letras tiene el nombre del país que el jugador tiene que adivinar. 4) Se pregunta al jugador una letra. Si la letra aparece en el nombre, se muestra en todas las posiciones en las que aparezca. Si no está en el nombre, se añade una parte más al cuerpo del ahorcado. 5) Si el nombre del juego se ha completado, el jugador gana. Si el cuerpo del ahorcado se ha completado, el jugador pierde. Si no se ha llegado al final, se vuelve a preguntar una letra al jugador. El cuerpo del ahorcado se va completando con las siguientes partes: cabeza, tronco, un brazo, otro brazo, una pierna y la otra pierna. A continuación se muestra la sucesión de pasos en los que se va formando el cuerpo del ahorcado. (1) (2) (3) # (_) # (_) [ ] [_] (4) (5) (6) # (_) x--[ ] [_] # (_) x--[ ]--x [_] # (_) x--[ ]--x [_] _

4 (7) # (_) x--[ ]--x [_] El juego está formado por las siguientes clases: ahorcado.app.ahorcadoapp: Es la clase que contiene el método main de la aplicación. Se encarga de crear el objeto encargado de gestionar el juego (JuegoAhorcado) y el objeto encargado de representar al jugador (Jugador). ahorcado.juego.juegoahorcado: Es la clase encargada de seleccionar el país de forma aleatoria de una lista que contiene todos los países del planeta. Una vez seleccionada la palabra, crea un objeto encargado de gestionar la partida (PartidaAhorcado). ahorcado.juego.partidaahorcado: Contiene la lógica del juego del ahorcado. Es la encargada de preguntar las letras al usuario, verificar si están o no en la palabra y en función del resultado, incluir una parte más en el cuerpo del ahorcado. ahorcado.juego.jugador: Es la clase encargada de comunicarse con el jugador. Le pide el nombre, las letras de la palabra y cunado finaliza la partida, pregunta al usuario si quiere una nueva. ahorcado.juego.palabra: Controla la palabra que tiene que ser adivinada por el jugador. Es la encargada de verificar si cada una de las letras están en la palabra y de ser así, es la encargada de mostrar dicha letra. ahorcado.juego.horca: Es la clase encargada de mostrar la horca con las diferentes partes del ahorcado. util.consola: Esta clase oculta todos los detalles de gestión del teclado para poder leer información del jugador. También es la encargada de mostrar información por pantalla. Esta versión del juego del ahorcado está completamente implementada y se encuentra en el proyecto Ahorcado_1. Iteración 2 - Ahorcado monojugador online Para crear la versión monojugador online partiendo de la versión offline se ha dividido la aplicación de la iteración 1 en dos aplicaciones: un servidor y un cliente. Primero se arranca el servidor y queda a la espera de recibir peticiones. Posteriormente el jugador inicia la aplicación cliente que se conecta al servidor y en ese momento inicia la partida. Cuando el jugador termina la partida y no 4

5 quiere jugar otra, el servidor queda disponible para un nuevo cliente. En esta iteración la aplicación no puede atender a varios jugadores de forma simultánea. Para conseguir esta funcionalidad, se han incluido y/o modificado las siguientes clases al programa: ahorcado.app.servidorahorcadoapp: Es la clase que contiene el método main e inicia un servidor de red en el puerto Este servidor está diseñado para atender las peticiones de una aplicación que actúa como cliente. ahorcado.app.clienteahorcadoapp: Es la clase que contiene el método main e inicia un cliente de red. Al arrancar le pregunta al usuario la dirección IP y el puerto del servidor. Si no se introduce ningún valor, el cliente se conecta al servidor por defecto que está en la misma máquina (dirección IP ) y puerto util.consolatecladopantalla: No es una clase nueva, en realidad es el nuevo nombre de la clase Consola. Se ha cambiado de nombre porque se ha decidido crear una clase Consola genérica que sea la clase padre de todos los tipos de consola que se pueden necesitar en un programa online. util.consola: Es una clase abstracta que actúa como clase padre de todos los tipos de consolas del programa. En concreto, existe una consola que permite escribir en la pantalla y leer del teclado (ConsolaTecladoPantalla) y otra consola diseñada para enviar la información por la red a un cliente y recibir la información de un cliente (ConsolaRed). util.red.consolared: Es un tipo de consola diseñada para comunicar a un cliente con un servidor. Para ello utiliza un protocolo muy básico basado en texto que sirve para enviar comandos del servidor al cliente. util.red.servidor: Es la clase encargada de esperar la llegada de conexiones a un socket que actúa como servidor. Cuando llega una nueva conexión se crea una tarea y se envía a un Executor para que sea procesada en un hilo. El Executor se pasa como parámetro en el constructor de forma que se pueda configurar de forma adecuada. Esta clase contiene todos los detalles de bajo nivel que permiten crear un servidor. Un objeto de esta clase se usa en el ServidorAhorcadoApp para crear el servidor del ahorcado. util.red.cliente: Es la clase encargada de realizar una conexión a un servidor implementado con la clase Servidor. Esta clase contiene todos los detalles de bajo nivel que permiten crear un cliente. Un objeto de esta clase se usa en el ClienteAhorcadoApp para crear el cliente del ahorcado. Las demás clases que no se indican aquí no han cambiado nada desde la iteración 1. Para que un desarrollador pueda ejecutar el ahorcado monojugador online de la iteración 2 debe ejecutar dos aplicaciones a la vez en la misma máquina. Primero se ejecuta el servidor (ServidorAhorcadoApp), de forma que pueda atender peticiones. Posteriormente se inicia el cliente (ClienteAhorcadoApp) que será la aplicación con la que interactuará el jugador. Los entornos de desarrollo para Java (Eclipse y Netbeans) permiten la ejecución de varias aplicaciones de forma simultánea. El desarrollador sólo tiene que elegir de qué ejecución quiere ver la salida. Cuando el juego se encuentre en producción, la aplicación ServidorAhorcadoApp se ejecutará en un 5

6 servidor y la aplicación ClienteAhorcadoApp se ejecutará en el ordenador del jugador. Esta versión del juego del ahorcado está completamente implementada y se encuentra en el proyecto Ahorcado-2. Iteración 3 - Ahorcado multijugador online En la iteración 3 se incorpora la característica de que varios jugadores puedan jugar a la misma vez al ahorcado. Las reglas del juego con varios jugadores son las siguientes: Todos los jugadores tienen que adivinar el mismo país. Un jugador elige letras mientras acierte las que vaya indicando. Cuando un usuario falla al elegir una letra (porque no se encuentre en la palabra) se añade una parte al cuerpo del ahorcado y el turno pasa al siguiente jugador. Todos los jugadores comparten la misma horca, de forma que los fallos de un jugador cuentan para los demás jugadores. El juego termina cuando un jugador completa la palabra o cuando un jugador completa el ahorcado. Además, como ahora varios jugadores se tienen que coordinar para jugar a la misma vez en la misma partida, cuando un jugador quiere jugar sucede lo siguiente: Una partida puede tener un mínimo de 1 jugador y un máximo de 4. Sólo se permite una partida a la vez. Cuando un jugador se conecta al servidor y quiere iniciar una partida se pueden dar las siguientes situaciones: Si no hay ninguna partida iniciada, el jugador espera a que se unan a la partida hasta 3 jugadores más (un máximo de 4 jugadores por partida) o hasta que finalice el tiempo de espera (10 segundos). Si hay una partida iniciada, el jugador tiene que esperar a que finalice la partida en curso. Una vez que finaliza la partida en curso, tendrá que esperar a que se unan el resto de jugadores o finalice el tiempo de espera. Los desarrolladores de HappyPigs han estado trabajando en la iteración 3. Han añadido / modificado las siguientes clases: ahorcado.app.servidorahorcadoapp: Han modificado el servidor para permitir que varias conexiones sean procesadas de forma concurrente. En concreto, el executor que alberga el pool de hilos se ha creado con 10 hilos, por lo tanto se permiten hasta 10 conexiones simultáneas al servidor. En cualquier caso, sólo 4 jugadores podrán estar jugando al ahorcado a la misma vez. 6

7 ahorcado.juego.juegoahorcado: Esta es la clase que más ha cambiado respecto a la iteración anterior. Ahora se utiliza para sincronizar a los jugadores durante todas las fases del juego: Bloqueo de jugadores que no pueden empezar una partida porque ya hay una partida activa. Bloqueo de jugadores que no pueden empezar una partida porque todavía no han llegado los demás jugadores o no ha pasado el tiempo de espera. Bloqueo de jugadores hasta que sea su turno o finalice la partida. ahorcado.juego.partidaahorcado: Esta clase también ha cambiado respecto a la iteración anterior. Se han realizado las modificaciones necesarias para que pueda haber varios jugadores en una partida del ahorcado. Se han añadido/modificado los siguientes atributos: consola: Se ha sustituido la consola básica (que sólo permitía la comunicación con un jugador) con una consola múltiple (ConsolaMultiple) que permite enviar la información a todos los jugadores de la partida. juegoahorcado: Ahora una partida tiene acceso al objeto JuegoAhorcado para sincronizar los turnos de los jugadores. ahorcado.juego.jugadorreal: La clase jugador de la iteración 2 se ha cambiado de nombre. Además, se ha incorporado todo el protocolo de acceso a una nueva partida (esperar si hay una en curso y esperar hasta el resto de jugadores) y las reglas que se aplican cuando varios jugadores juegan en la misma partida (espera por el turno o que haya finalizado la partida). ahorcado.juego.jugadorbot: Es un jugador automático que se comporta parecido a un jugador real pero sin realizar una conexión de red. Esta clase se ha creado con el objetivo de probar el funcionamiento del JuegoAhorcado y la PartidaAhorcado con múltiples usuarios de forma automática. Así los desarrolladores evitan la tediosa tarea de probar manualmente todas las situaciones posibles con partidas de varios usuarios. ahorcado.juego.jugadortest: Es un jugador que no tiene comportamiento y que se utiliza para implementar tests automáticos. ahorcado.juego.jugador: Es el interfaz implementado por JugadorReal y JugadorBot. De esta forma, las clases JuegoAhorcado y PartidaAhorcado pueden comunicarse con cualquier tipo de jugador (sea real o sea automático). ahorcado.app.pruebajugadoresbot: Es una aplicación que permite probar el correcto funcionamiento del juego del ahorcado multijugador online de forma automática. Para ello, crea un objeto JuegoAhorcado y arranca seis hilos de ejecución, en cada uno de esos hilos ejecuta un JugadorBot. Para facilitar la depuración del programa, sólo el servidor muestra información por pantalla. Los jugadores automáticos (JugadorBot) usan una consola que no muestra información por pantalla (ConsolaOculta). 7

8 util.consolaoculta: Consola que no muestra información por pantalla. Es utilizada en las aplicaciones de prueba en las que no se requiera que todos los jugadores muestren información por pantalla. Aunque la empresa HappyPigs ha avanzado bastante en el desarrollo de la iteración 3, está incompleta. Como en la mayoría de las aplicaciones de red, cada jugador que se conecta al servidor se ejecuta en su propio hilo de ejecución. Y todos hilos ejecutan el mismo objeto de la clase JuegoAhorcado. El problema es que los desarrolladores de la empresa no han sido capaces de implementar el código para que la clase JuegoAhorcado sea thread-safe y que coordine correctamente a los jugadores. Por este motivo la clase JuegoAhorcado tiene métodos sin completar y no compila. Para solucionar estos problemas, la empresa HappyPigs ha decidido contratar a los alumnos de la asignatura de Programación Concurrente. En concreto, la empresa pide a los alumnos: Que analicen y comprendan el código de las iteraciones 1 y 2. No es importante que se centren en los detalles de comunicación cliente/servidor porque esta parte está completa y no necesita ningún cambio. Tampoco es importante que conozcan los detalles de las clases Palabra y Horca, ya que tampoco necesitan ningún cambio. No obstante, conviene que conozcan a grandes rasgos su funcionamiento. Que implementen completamente la clase ahorcado.juego.juegoahorcado, que se utiliza para sincronizar los hilos de los jugadores. En esta clase deben implementarse los siguientes métodos: esperarjugarpartida(jugador jugador): Bloquea al jugador hasta que se han apuntado el resto de jugadores o se ha llegado al tiempo máximo de espera (10 segundos) y se puede empezar una nueva partida. También bloquea al jugador en caso de que haya una partida en curso o bien la partida que está a punto de comenzar ya ha alcanzado el número máximo de jugadores. Este método es usado por el jugador. esperarturnoofin(jugador jugador): Bloquea al jugador hasta que llega su turno o hasta que acaba la partida (porque otro de los jugadores ha ganado o ha perdido). Este método es usado por el jugador. cambiarturno(): Asigna el turno al siguiente jugador. Es importante que los turnos vayan cambiando en el orden en que los jugadores se apuntaron a la partida. Este método es usado por la PartidaAhorcado. getjugadoractual(): Devuelve el jugador que tiene asignado el turno. Este método es usado por la PartidaAhorcado para mostrar mensajes y usar su consola. finpartida(): Finaliza la partida actual desbloqueando a todos los jugadores que esperaban en esperarturnoofin. Este método es usado por la PartidaAhorcado cuando la partida ha finalizado. Que verifiquen el correcto funcionamiento del juego del Ahorcado. Para ello, los alumnos deberán hacer las siguientes pruebas: 8

9 Pruebas funcionales manuales: Para ello iniciarán el servidor y varios clientes en su propio equipo. De esa forma se estará realizando una partida con varios usuarios simultáneos. Pruebas de integración automáticas: La clase PruebaJugadoresBot inicia una serie de jugadores automáticos (bots) que juegan al ahorcado. Como seleccionan las letras al azar, es bastante probable que pierdan la mayoría de las veces, pero de estar forma se puede comprobar que el sistema se comporta de forma adecuada con interacciones muy rápidas. Pruebas unitarias de la clase JuegoAhorcado: Esta clase es la que más se tiene que probar porque es la que tienen que implementar los alumnos. Por este motivo, se tienen que implementar varios tests unitarios que verifiquen el correcto funcionamiento de sus métodos. Para implementar estos tests unitarios se utilizará la librería JUnit. En la siguiente sección se explica el funcionamiento de esta librería y se detallan los tests que deben implementarse. JUnit, librería de testing Java Además de las clases del propio programa, el código disponible de la iteración 3 dispone de un test unitario para verificar el correcto funcionamiento de la clase JuegoAhorcado. Los tests son miniprogramas que comprueban de forma automática que una determinada funcionalidad que está implementada se comporta como se espera. Los tests son especialmente útiles para asegurarnos de que algo que tenemos implementado y funciona no se rompe al añadir nueva funcionalidad. El test está implementado con la herramienta JUnit ( que se utiliza bastante en el ámbito profesional para la implementación de tests en Java. Cada test se implementa como un método de un clase. La clase PartidaTest implementa un test que verifica que cuando se añaden cuatro jugadores a una partida, la partida comienza inmediatamente sin que transcurra el tiempo máximo de espera. Como la clase JuegoAhorcado está sin implementar, si ejecutamos el test fallará, pero cuando implementemos correctamente dicha clase, el test pasará y verificará que todo es correcto. El código de la clase PartidaTest es el siguiente: public class PartidaTest public void test() throws InterruptedException{ JuegoAhorcado juego = new JuegoAhorcado(new ConsolaTecladoPantalla()); CountDownLatch latch = new CountDownLatch(4); for(int i=0; i<4; i++){ String nombre = "Jugador"+i; new Thread(()->{ Jugador jugador = new JugadorTest(nombre); try { juego.esperarjugarpartida(jugador); } catch (Exception e) {} 9

10 } latch.countdown(); }).start(); } } El test hace lo siguiente: if(!latch.await(5, TimeUnit.SECONDS)){ Assert.fail("El jugador no debería esperar para jugar"); } 1) Crea un objeto de la clase JuegoAhorcado: JuegoAhorcado juego = new JuegoAhorcado(new ConsolaTecladoPantalla()); 2) Simula que 4 jugadores quieren jugar una partida. Para ello, crea 4 hilos, en cada hilo crea un objeto de la clase JugadorTest y se invoca el método juego.esperarjugarpartida(jugador). De esa forma, se estará ejecutando ese método desde 4 hilos a la misma vez. for(int i=0; i<4; i++){ String nombre = "Jugador"+i; new Thread(()->{ Jugador jugador = new JugadorTest(nombre); try { juego.esperarjugarpartida(jugador); } catch (Exception e) {} } latch.countdown(); }).start(); 3) Finalmente se verifica que todos los jugadores han finalizado la ejecución del método esperarjugarpartida inmediatamente, sin esperar los 10 segundos necesarios. Para ello se utiliza un CountDownLatch para sincronizar los hilos de los jugadores con el hilo del propio test. Se crea un CountDownLatch inicializado a 4, cada jugador invoca countdown y por último el test verifica que la cuenta llega a 0 antes de 5 segundos, lo que demuestra que no se han esperado los 10 segundos. CountDownLatch latch = new CountDownLatch(4); latch.countdown(); if(!latch.await(5, TimeUnit.SECONDS)){ Assert.fail("El jugador no debería esperar para jugar"); } Para ejecutar este test en eclipse, basta con hacer botón derecho sobre el nombre del método y 10

11 seleccionar la opción Run as... > JUnit Test. Durante la ejecución, aparecerá una vista en eclipse que muestra el resultado de los tests. El color verde significa que los tests han pasado, es decir, que han comprobado que el comportamiento del código es el esperado. En caso de que los tests fallen, se mostrará el color rojo con el mensaje que indica qué ha ido mal. Test con fallo Test correcto Se considera que un test no pasa, cuando se da alguna de las siguientes situaciones: Se eleva una excepción en el hilo del test durante su ejecución y no se captura en ningún catch. Si se eleva una excepción en cualquier otro hilo del programa, el test no se considerará como fallo. Se invoca el método Assert.fail Se invoca el método Assert.assertTrue con una expresión que se evalúa a false. Se considera que un test pasa en cualquier otro caso. Es decir, un test se considera que pasa en las siguientes situaciones: Si el método del test finaliza sin excepción y todos los asserts ejecutados son correctos. Si el método del test finaliza sin excepción (aunque no se haya ejecutado ningún assert). Es importante tener en cuenta algunos aspectos de JUnit cuando estamos implementando tests para código concurrente: Si el test termina sin excepción, ni llamada a fail, ni llamada a asserttrue con una expresión falsa, se considera el test correcto. Es decir, los tests no esperan a que cualquier hilo creado dento del test haya terminado. Si deseamos que nuestro test se espere, tendremos que implementarlo de forma explícita en el test. Para que un test falle, se debe llamar al método fail o al método asserttrue en el hilo que ejecuta el propio test. Si se llama a estos métodos en otro hilo se provocará que esos hilos 11

12 finalicen su ejecución (porque se elevará una excepción), pero eso no implicará que el test falle. Es decir, si dentro de un hilo detectamos alguna situación que indica que el test no debe pasar (es decir, debe finalizar con error o fallo), entonces habrá que comunicar dicha situación al hilo del test para que invoque el método adecuado. Por último, una clase de test puede tener varios métodos anotados También puede tener métodos auxiliares usados por los propios tests. Si la clase es muy grande, conviene crear varias clases separando los tests por grupos relacionados entre sí. Las tareas concretas que el alumno debe hacer para completar la iteración 3 son las siguientes: Tarea 1: Implementar el método esperarjugarpartida(jugador jugador): Este método debe bloquear al jugador hasta que se han apuntado el resto de jugadores (otros 3 más) o se ha llegado al tiempo máximo de espera (10 segundos). En ese momento el método se desbloqueará y se podrá empezar una nueva partida. También debe bloquear al jugador en caso de que haya una partida en curso o bien la partida que está a punto de comenzar ya ha alcanzado el número máximo de jugadores. El método devuelverá cuando se desbloquee el objeto de la clase PartidaAhorcado en el que se desarrollará la partida. Al implementar este método debe invocarse el método PartidaAhorcado.apuntarJugador(jugador) por cada jugador que finalmente esté involucrado en la partida. Tarea 2: Implementar tests para el método esperarjugarpartidaverificar: Verificar que el método esperarjugarpartida funciona correctamente en todas las situaciones con tests automáticos: Tarea 2.1: Verificar que la partida comienza inmediatamente al llegar 4 jugadores. Para ello se puede usar el test ya implementado de la clase PartidaTest. Tarea 2.2: Implementar un test que verifique que una partida comienza con menos de 4 jugadores después del tiempo de espera de 10s (y no antes). Tarea 2.3: Implementar un test que verifique que si un nuevo jugador se conecta con una partida ya comenzada, ese jugador se espera hasta que la partida anterior haya terminado y que se cumpla que llegan 4 jugadores o ha transcurrido el tiempo de espera de 10s. Tarea 2.4: Implementar un test que verifique que se respeta el orden de llegada de los jugadores para que puedan jugar a una nueva partida. Por ejemplo, si llegan 10 jugadores ordenados del 1 al 10, los 4 primeros (1,2,3,4) jugarán la primera partida, los 4 siguientes (5,6,7,8) la segunda partida y los últimos (9 y 10) jugarán la última partida. Tarea 3: Implementar método esperarturnoofin: Este método debe bloquear al jugador hasta que llega su turno o hasta que acaba la partida (porque otro de los jugadores ha ganado o ha perdido). Tarea 4: Implementar el método cambiarturno: Este método debe asignar el turno al siguiente jugador. Es importante que los turnos vayan cambiando en el orden en que los jugadores se apuntaron a la partida. 12

13 Tarea 5: Implementar el método getjugadoractual: Este método debe devolver el jugador que tiene asignado el turno. Tarea 6: Implementar el método finpartida: Este método debe finalizar la partida actual desbloqueando a todos los jugadores que esperaban en esperarturnoofin. Tarea 7: Implementar tests para los métodos esperarturnoofin, cambiarturno, getjugadoractual y finpartida: Verificar que el método esperarturnoofin funciona correctamente en todas las situaciones con tests automáticos: Tarea 7.1: Implementar un test que verifique que los jugadores se van desbloqueando del método esperaturnoofin en el orden en el que se unieron a la partida cuando se llama al método cambiarturno. Tarea 7.2: Implementar un test que verifique que el resto de jugadores se desbloquean del método esperaturnoofin cuando un compañero finaliza la partida ejecutando finpartida. Iteración 4 - Ahorcado multijugador online con estadísticas Los responsables técnicos de la empresa HappyPigs han quedado gratamente sorprendidos de la capacidad técnica que han demostrado los alumnos de la asignatura en la iteración 3. Por ello, han decidido ofrecerles un trabajo de mayor responsabilidad para la iteración 4. Para la iteración 4 quieren incorporar estadísticas al juego del ahorcado. En concreto, quieren que la aplicación tenga las siguientes funcionalidades: Estadísticas al finalizar la partida: Cada vez que un jugador finaliza una partida, se quiere registrar si el jugador ha perdido, ha ganado o ninguna de las dos cosas (ha perdido o ganado otro jugador). En concreto, quieren llevar una cuenta del número de partidas en las que cada jugador ha ganado, perdido o ninguna de las dos. Además, cada vez que finaliza una partida quieren mostrar por pantalla el jugador que más veces ha jugado, el que más veces ha ganado, el que más veces ha perdido y el que más veces ni ha ganado, ni ha perdido. Como todos estos cálculos llevan tiempo, no quieren que el jugador tenga que realizar esos cálculos en su hilo. Es decir, deben realizarse en un hilo diferente. Obviamente, en vez de crear un nuevo hilo cada vez, será mejor reutilizar hilos con alguna de las técnicas conocidas. Además, para implementar estos cálculos, no deben procesarse la lista de jugadores completa, basta con evaluar los jugadores que acaban de terminar la partida y los jugadores que antes ocupaban estas posiciones top. Estadísticas cada 10 segundos: Además de las estadísticas básicas que se muestran cuando finaliza una partida, es necesario sacar unas estadísticas más elaboradas cada 10 segundos. En estas estadísticas más elaboradas lo que se pretende es mostrar varias listas de jugadores con sus puntuaciones: Lista 1: Jugadores ordenados de mayor a menor por el número de partidas ganadas. Lista 2: Jugadores ordenados de menor a mayor por el número de partidas perdidas. 13

14 Lista 3: Jugadores ordenados de menor a mayor por el número de partidas ni ganadas ni perdidas. Lista 4: Jugadores ordenados de menor a mayor por el número de partidas jugadas. Para aprovechar la potencia de cómputo del sistema informático estas ordenaciones tienen que realizarse en paralelo utilizando varios hilos. Para ello pueden emplearse streams o implementar manualmente un algoritmo de ordenación paralelo. Hay que tener en cuenta que las estadísticas que se ejecutan por cada partida y las estadísticas que se ejecutan cada 10 segundos acceden a los mismos datos a la misma vez. Por tanto, es necesario que los objetos estén debidamente gestionados para que no se produzcan condiciones de carrera. En este sentido, es importante tener en cuenta de que los resultados de las listas tienen que ser coherentes entre sí. Es decir, no debería ocurrir que un jugador indique que ha jugado 30 partidas, pero que la suma de ganadas, perdidas y ni ganadas ni perdidas sea 29, por ejemplo. Dicho de otro modo, hay que hacer lo que sea necesario para que las estadísticas sean correctas aunque un jugador acabe un partida justo en el momento del cálculo de estadísticas cada 10 segundos. Se pide Se pide a los alumnos que complenten la iteración 3 y que implementen la iteración 4 del juego del ahorcado de la empresa HappyPigs. 14

Práctica 2: Simón dice

Práctica 2: Simón dice Práctica 2: Simón dice Fecha de entrega: 31 de enero de 2016 0.- Descripción del juego (Wikipedia.org) Simon dice es un juego electrónico, creado por Ralph Baer, que consiste en reproducir una secuencia

Más detalles

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Examen Curso 2001-2002. Convocatoria de Febrero Página 1 Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Este ejercicio se divide en dos partes con el fin de que el alumno no intente

Más detalles

TUTORIAL SOBRE EL MANEJO DE LA OFICINA VIRTUAL PARA LA REMISIÓN DE INFORMES DE DOCENCIA VIRTUAL VÍA ADMINISTRACIÓN ELECTRÓNICA

TUTORIAL SOBRE EL MANEJO DE LA OFICINA VIRTUAL PARA LA REMISIÓN DE INFORMES DE DOCENCIA VIRTUAL VÍA ADMINISTRACIÓN ELECTRÓNICA TUTORIAL SOBRE EL MANEJO DE LA OFICINA VIRTUAL PARA LA REMISIÓN DE INFORMES DE DOCENCIA VIRTUAL VÍA ADMINISTRACIÓN ELECTRÓNICA. COORDINADORES DE MÓDULOS/MATERIAS/ ASIGNATURAS VIRTUALES DE POSGRADOS CON

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid Descarga Automática Manual de Usuario Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid Versión 5.2 Fecha: 2008-10-15 Ref : MU_DescargaAutomática.doc ÍNDICE 1 INTRODUCCIÓN...

Más detalles

Internet aula abierta

Internet aula abierta MINISTERIO DE EDUCACIÓN Y CIENCIA SECRETARÍA GENERAL DE EDUCACIÓN Y FORMACIÓN PROFESIONAL DIRECCIÓN GENERAL DE EDUCACIÓN, FORMACIÓN PROFESIONAL E INNOVACIÓN EDUCATIVA CENTRO NACIONAL DE INFORMACIÓN Y COMUNICACIÓN

Más detalles

Instrucciones para la familiarización de los alumnos con el instrumento de evaluación de EECL (ES)

Instrucciones para la familiarización de los alumnos con el instrumento de evaluación de EECL (ES) Instrucciones para la familiarización de los alumnos con el instrumento de evaluación de EECL (ES) Índice 1 INTRODUCCIÓN 3 2 REALIZACIÓN DE LAS PRUEBAS 3 2.1 Entrada al sistema 3 2.2 Prueba de sonido para

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

ESPAÑOL BLACK-VS. Guía de uso e instalación

ESPAÑOL BLACK-VS. Guía de uso e instalación ESPAÑOL BLACK-VS Guía de uso e instalación ÍNDICE 1 INTRODUCCIÓN... 2 2 INSTALACIÓN Y PUESTA EN MARCHA... 2 3 REGISTRO DE LA APLICACIÓN... 4 4 CONFIGURACIÓN DE LAS CONEXIONES... 6 5 CONEXIÓN... 9 5.1

Más detalles

Manual Time One Software control de horarios

Manual Time One Software control de horarios Manual Time One Software control de horarios C/ Salva 63, 3º, 1ª 08004 Barcelona ( España ) Telf.: 93 329 34 35 Mail: [email protected] Web: www.bioclave.com Índice 1 - Instalación.....3 2 - Guía inicio

Más detalles

Manual del Profesor Campus Virtual UNIVO

Manual del Profesor Campus Virtual UNIVO Manual del Profesor Campus Virtual UNIVO Versión 2.0 Universidad de Oriente UNIVO Dirección de Educación a Distancia INDICE 1. Campus Virtual. 03 1.1 Accesos al Curso 04 1.2 Interfaz del Curso...06 1.3

Más detalles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. [email protected]

Más detalles

GUÍA BÁSICA DE USO DEL SISTEMA RED

GUÍA BÁSICA DE USO DEL SISTEMA RED SUBDIRECCIÓN GENERAL DE INSCRIPCIÓN, AFILIACION Y RECAUDACIÓN EN PERIODO VOLUNTARIO GUÍA BÁSICA DE USO DEL SISTEMA RED Marzo 2005 MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES TESORERÍA GENERAL DE LA SEGURIDAD

Más detalles

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE OBJETIVOS Aprender el manejo de entrada/salida con ficheros

Más detalles

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. 1 Direcciones o Ubicaciones, Carpetas y Archivos Botones de navegación. El botón Atrás permite volver a carpetas que hemos examinado anteriormente. El botón Arriba

Más detalles

Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos

Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos Atrapa la tarta Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos Instrucciones (Controla el movimiento del ratón con las teclas flecha derecha,

Más detalles

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...

Más detalles

1. INTRODUCCIÓN 3 2. INSTALACIÓN DE LA APLICACIÓN PACK PYME 5. 2.1. Proceso de Instalación y Arranque... 5

1. INTRODUCCIÓN 3 2. INSTALACIÓN DE LA APLICACIÓN PACK PYME 5. 2.1. Proceso de Instalación y Arranque... 5 Contenido 1. INTRODUCCIÓN 3 2. INSTALACIÓN DE LA APLICACIÓN PACK PYME 5 2.1. Proceso de Instalación y Arranque... 5 2.2. Obtención de Ficheros del Pack Pyme... 5 2.2.1. Fichero de Configuración... 5 2.2.2.

Más detalles

2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU 2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU Antecedentes:... 2 1. Introducción... 3 2. Imágenes que no se visualizan... 3 3. URLs de recursos o actividades que no son autocontenido...

Más detalles

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT Versión 1. Mayo de 2001 Luis Vinuesa Martínez. Departamento de Informática Universidad de Oviedo [email protected] www.di.uniovi.es/~vinuesa ÍNDICE. Introducción...

Más detalles

Google Calendar. Google Calendar

Google Calendar. Google Calendar Google Calendar Tabla de contenido Tabla de contenido... 2 Introducción... 3 Qué es Google Calendar?... 3 Acceder y crear una cuenta de Google Calendar... 4 Creación de eventos... 11 Envío de invitaciones...

Más detalles

MANUAL MÓDULO CECA CON RECARGOS O DESCUENTOS PARA PRESTASHOP Guía Básica

MANUAL MÓDULO CECA CON RECARGOS O DESCUENTOS PARA PRESTASHOP Guía Básica MANUAL MÓDULO CECA CON RECARGOS O DESCUENTOS PARA PRESTASHOP Guía Básica Módulo CECA con recargos o descuentos para PrestaShop CONFIGURACIÓN DEL MÓDULO CECA CON RECARGOS O DESCUENTOS PARA PRESTASHOP...

Más detalles

Manual del usuario. Flash Point Genius. FLASH POINT GENIUS: Programación Serial para turismos

Manual del usuario. Flash Point Genius. FLASH POINT GENIUS: Programación Serial para turismos Manual del usuario Flash Point Genius FLASH POINT GENIUS: Programación Serial para turismos 2010 INDICE 1. INTRODUCCIÓN 3 2. COMPONENTES DEL SISTEMA FLASH POINT 3 3. REQUISITOS DEL SISTEMA 4 4. INSTALACIÓN

Más detalles

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable Manual de ayuda para crear y gestionar Tareas, como actividad evaluable Contenido TAREAS.... 3 CONFIGURACIÓN.... 3 GESTIÓN Y CALIFICACIÓN DE TAREAS.... 8 TAREAS. Mediante esta herramienta podemos establecer

Más detalles

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución Tema 8 Procesos 8.1 Aspectos básicos de los procesos 8.1.1 Concepto de proceso * Definición informal: un proceso es un programa en ejecución Un programa ejecutable es un conjunto de instrucciones y datos

Más detalles

e-conocimiento Manual de uso

e-conocimiento Manual de uso 2 Índice 1. Qué es e-conocimiento?... 3 Web del I+CS... 3 Web de los profesionales... 4 2. Cómo puedo acceder a la Web de los profesionales?... 6 3. Qué puedo encontrar en la Web de los profesionales?...

Más detalles

Proyectos de Innovación Docente

Proyectos de Innovación Docente Proyectos de Innovación Docente Manual de Usuario Vicerrectorado de Docencia y Profesorado Contenido INTRODUCCIÓN... 3 DATOS PERSONALES... 6 Modificar email... 6 Modificar contraseña... 7 GESTIÓN PROYECTOS...

Más detalles

Documentación de la Práctica 1 para la asignatura de Nuevas Tecnologías de la Programación (NTP)

Documentación de la Práctica 1 para la asignatura de Nuevas Tecnologías de la Programación (NTP) Documentación de la Práctica 1 para la asignatura de Nuevas Tecnologías de la Programación (NTP) Realizado por: José Luis López Pino Aitor Garcia Manterola Índice de contenido Enunciado de la práctica...3

Más detalles

ZCARTAS: Iniciación a la suma y resta de números enteros... 4. Introducción... 4. Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

ZCARTAS: Iniciación a la suma y resta de números enteros... 4. Introducción... 4. Actividad 1: Escenario con cartas numeradas desde -2 hasta 2... CONTENIDO ZCARTAS: Iniciación a la suma y resta de números enteros... 4 Introducción... 4 Actividad 1: Escenario con cartas numeradas desde -2 hasta 2... 4 Contenidos trabajados... 4 Instrucciones de Scratch...

Más detalles

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005 Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005 1. Acerca de este documento Este documento describe el servicio de estadísticas del que actualmente disfrutan algunas de las páginas

Más detalles

Manual para Empresas Prácticas Curriculares

Manual para Empresas Prácticas Curriculares Manual para Empresas Prácticas Curriculares ÍNDICE 1. Introducción... 3. Registro y Acceso... 3.1. Registro Guiado... 4.1. Registro Guiado Datos Básicos... 5.1. Registro Guiado Contactos... 5 3. Creación

Más detalles

PROGRAMA DE GESTIÓN. Tutorial para usuarios del sistema de información

PROGRAMA DE GESTIÓN. Tutorial para usuarios del sistema de información PROGRAMA DE GESTIÓN Tutorial para usuarios del sistema de información Planeación Julio de 2014 0 Contenido 1. Cómo ingresar al sistema?... 1 2. Cómo ingresar un proyecto de gestión?... 3 3. Cómo aceptar

Más detalles

PROPUESTAS COMERCIALES

PROPUESTAS COMERCIALES PROPUESTAS COMERCIALES 1. Alcance... 2 2. Entidades básicas... 2 3. Circuito... 2 3.1. Mantenimiento de rutas... 2 3.2. Añadir ofertas... 5 3.2.1. Alta desde CRM... 5 3.2.2. Alta desde el módulo de Propuestas

Más detalles

Manual de Usuario del Sistema RECIBOS DE HABERES UNLu Contacto:

Manual de Usuario del Sistema RECIBOS DE HABERES UNLu Contacto: Manual de Usuario del Sistema RECIBOS DE HABERES UNLu Agosto 2015 Contacto: e-mail: [email protected] teléfono: (02323) 423979/423171 Interno 1236 INDICE Pág. 1. Introducción 2 2. Acceso al sistema

Más detalles

4. EVALUACIÓN DEL PROGRAMA DE CAPACITACIÓN

4. EVALUACIÓN DEL PROGRAMA DE CAPACITACIÓN 4. EVALUACIÓN DEL PROGRAMA DE CAPACITACIÓN La etapa final del proceso de capacitación es la evaluación de los resultados obtenidos, mediante este proceso se puede responder a las siguientes preguntas:

Más detalles

Dell Premier. Guía para comprar y efectuar pedidos de. Registro en la página Premier. Administrar su perfil personal

Dell Premier. Guía para comprar y efectuar pedidos de. Registro en la página Premier. Administrar su perfil personal Guía para comprar y efectuar pedidos de Dell Premier Dell Premier es su una solución Online personalizada y segura en el que puede llevar a cabo un proceso de compras fácil, económico y eficaz. Revise

Más detalles

CÓMO CREAR NUESTRO CATÁLOGO

CÓMO CREAR NUESTRO CATÁLOGO CÓMO CREAR NUESTRO CATÁLOGO Mediante la aplicación (http://www.prensasoft.com/programas/conline) podemos crear nuestros propios catálogos. Para crear un catálogo necesitamos: - Varios productos que mostrar,

Más detalles

Manual de usuario. Tramitación de inspecciones periódicas de ascensores: La visión de las empresas conservadoras

Manual de usuario. Tramitación de inspecciones periódicas de ascensores: La visión de las empresas conservadoras Tramitación de inspecciones periódicas de ascensores: La visión de las empresas conservadoras 7 de Enero de 2008 Índice 1. INTRODUCCIÓN 3 2. SECUENCIAS PRINCIPALES A REALIZAR 4 2.1. FLUJO BASICO DE SECUENCIAS

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

Guía rápida del alumno. Versión 6.2

Guía rápida del alumno. Versión 6.2 Guía rápida del alumno Versión 6.2 Índice 1. Qué es learningcentral?... 3 2. Elementos principales... 3 3. Cómo funciona learningcentral?... 6 4. Empezar a usar learningcentral... 6 4.1 Entrar y salir

Más detalles

DCU Diagramas de casos de uso

DCU Diagramas de casos de uso DCU Diagramas de casos de uso Universidad de Oviedo Departamento de Informática Contenidos Introducción Elementos básicos Más sobre los actores Más sobre los casos de uso Más sobre las asociaciones Otros

Más detalles

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) aprenderaprogramar.com Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) Sección: Cursos Categoría: Curso Bases de la programación

Más detalles

Ingeniería del Software Arquitectura Física en 3 niveles

Ingeniería del Software Arquitectura Física en 3 niveles Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre

Más detalles

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes VAST: Manual de usuario Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes Índice general Índice general 2 1. Introducción 4 2. Representación intermedia del AST 5 2.1. Funcionamiento del VAST

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Guía de uso de Moodle para participantes

Guía de uso de Moodle para participantes Guía de uso de Moodle para participantes ÍNDICE 1 ACCESO... 4 1.1 PORTAL... 4 1.2 INGRESAR A PLATAFORMA... 6 1.3 ESTRUCTURA DEL CURSO... 7 1.3.1 BLOQUES... 8 2 RECURSOS Y MÓDULOS... 10 LOS RECURSOS SE

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

Unidad II: Administración de Procesos y del procesador

Unidad II: Administración de Procesos y del procesador Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros

Más detalles

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 22 de enero de 2015 Histórico de cambios Fecha Descripción Autor 16/09/13

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7 MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Índice Pasos previos a la visualización del programa: Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7 Conceptos e información

Más detalles

MANUAL DE USUARIO ARCHIVO

MANUAL DE USUARIO ARCHIVO MANUAL DE USUARIO ARCHIVO ÍNDICE Páginas 1. INTRODUCCIÓN... 1 2. MENÚ PRINCIPAL... 2 2.1 TABLAS... 2 2.1.1. Localización... 4 2.1.2. Tipos de Documentos... 4 2.1.3. Tipos Auxiliares... 6 2.2. DOCUMENTOS...

Más detalles

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico Acceso al correo electrónico Pasamos ahora a lo que sería usar la cuenta de correo que nos hicimos en la clase anterior. Lo primero que hacemos es entrar en la página web de Yahoo y localizar el icono

Más detalles

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES Joma ha creado una herramienta con la cual, usted, como distribuidor, podrá generar presupuestos de las agrupaciones

Más detalles

1. Solicitando una cuenta de correo a nuestro proveedor de Internet. 2. Adquiriendo una cuenta de correo a través de la web (webmail).

1. Solicitando una cuenta de correo a nuestro proveedor de Internet. 2. Adquiriendo una cuenta de correo a través de la web (webmail). CORREO ELECTRÓNICO NIVEL BÁSICO DE CORREO ELECTRÓNICO INICIACIÓN A CORREO ELECTRÓNICO OBTENER UNA CUENTA DE CORREO ELECTRÓNICO GRATUITA Al correo electrónico también se lo conoce como e-mail, abreviatura

Más detalles

Servicio de hospedaje de servidores

Servicio de hospedaje de servidores Servicio de hospedaje de servidores Tomás P. de Miguel Gabinete de Informática y Comunicaciones ETSIT Madrid, 18 de Marzo de 2004 1. Introducción Cada día se hace más necesaria la utilización de nuevas

Más detalles

Exportación e Importación horarios XML

Exportación e Importación horarios XML Exportación e Importación horarios XML Tipo documento Guía de procesos Funcionalidad Perfiles: Administración y Dirección Etapa Descripción Dirigido a Guía para la comunicación entre SAUCE y las aplicaciones

Más detalles

MANUAL DE USUARIOS DEL MODULO DE EVALUACIÓN DE DESEMPEÑO SISTEMA DE ADMINISTRACIÓN DE SERVIDORES PÚBLICOS (SASP)

MANUAL DE USUARIOS DEL MODULO DE EVALUACIÓN DE DESEMPEÑO SISTEMA DE ADMINISTRACIÓN DE SERVIDORES PÚBLICOS (SASP) MINISTERIO DE ADMINISTRACIÓN PÚBLICA (MAP) Dirección de Tecnología de la Información y Comunicación MANUAL DE USUARIOS DEL MODULO DE EVALUACIÓN DE DESEMPEÑO SISTEMA DE ADMINISTRACIÓN DE SERVIDORES PÚBLICOS

Más detalles

SISTEMA DE BECAS AL EXTERIOR

SISTEMA DE BECAS AL EXTERIOR SISTEMA DE BECAS AL EXTERIOR Manual del Becado En este manual se describen los diferentes procesos que ejecuta el becado en el desarrollo de sus estudios en el exterior. Todos los procesos serán ejecutados

Más detalles

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2 Manual de usuario EXTRACTO Descripción del uso y manejo de ELABORADO POR Dr. Javier Rodríguez Suárez Director General de Difusión e Investigación Ing. José Joel Lucero Morales Jefe de Enseñanza de la Dirección

Más detalles

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B 141 1 FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 Unidad 6 B 142 2 Índice SEGUIMIENTO DE PERSONAS 1 INFORMES 2 143 3 SEGUIMIENTO DE PERSONAS E INFORMES EN MOODLE El seguimiento de los participantes en Moodle

Más detalles

INSTRUCTIVO PLATAFORMA ITM VIRTUAL itmvirtual.itm.edu.co

INSTRUCTIVO PLATAFORMA ITM VIRTUAL itmvirtual.itm.edu.co INSTRUCTIVO PLATAFORMA ITM VIRTUAL itmvirtual.itm.edu.co INTRODUCCIÓN A continuación podrá tener a su disposición la principal información para acceder a los cursos a distancia que ofrece el ITM a través

Más detalles

Curso Internet Básico - Aularagon

Curso Internet Básico - Aularagon Antes de empezar es necesario que tengas claro algunas cosas: para configurar esta cuenta de correo, debes saber que el POP y el SMTP en este caso son mail.aragon.es; esta cuenta de correo hay que solicitarla

Más detalles

Comercial Cartas de Fidelización

Comercial Cartas de Fidelización Comercial Cartas de Fidelización El objetivo es poder enviar, de una forma sencilla a través de e-mail, textos en su idioma a todos los clientes que cumplen determinadas características. En principio,

Más detalles

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10 CONCEPTOS BASICOS Febrero 2003 Página - 1/10 EL ESCRITORIO DE WINDOWS Se conoce como escritorio la zona habitual de trabajo con windows, cuando iniciamos windows entramos directamente dentro del escritorio,

Más detalles

Descripción técnica. Sicherheit-TES103010 Versión 1.0

Descripción técnica. Sicherheit-TES103010 Versión 1.0 Monitorización de la instalación Concepto sobre seguridad y contraseñas de SMA para instalaciones fotovoltaicas protegidas por contraseñas con Bluetooth Wireless Technology Descripción técnica Sicherheit-TES103010

Más detalles

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060 SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060 Elaborado por: Departamento de Informática Febrero 2012 SISTEMA InfoSGA _ Manual de Actualización 16/02/2012 ÍNDICE

Más detalles

PRÁCTICAS ADMINISTRATIVAS

PRÁCTICAS ADMINISTRATIVAS DIPLOMATURA EN GESTIÓN Y ADMINISTRACIÓN PÚBLICA PROGRAMA DE LA ASIGNATURA PRÁCTICAS ADMINISTRATIVAS Código: 445 (16 créditos) CURSO 2011-12 Coordinadora: Mª Teresa Balaguer Coll Departamento de Finanzas

Más detalles

MANUAL PARA REALIZAR LA SOLICITUD ELECTRÓNICA

MANUAL PARA REALIZAR LA SOLICITUD ELECTRÓNICA SECRETAÍA DE ESTADO DE INVESTIGACIÓN, DESARROLLO E INNOVACIÓN MINISTERIO DIRECCIÓN GENERAL DE INVESTIGACIÓN CIENTÍFICA Y TÉCNICA SUBDIRECCIÓN GENERAL DE PROYECTOS INTERNACIONES MANUAL PARA REALIZAR LA

Más detalles

José Ramón Olalla. Crear un curso nuevo en Edmodo. Manuales jr2.0 - José Ramón Olalla Celma

José Ramón Olalla. Crear un curso nuevo en Edmodo. Manuales jr2.0 - José Ramón Olalla Celma José Ramón Olalla Cuando accedemos a https://www.edmodo.com, encontramos la zona de acceso para usuarios registrados o bien el registro, diferente para profesores (1) y para el estudiante (2) (que son

Más detalles

MATERIAL 2 EXCEL 2007

MATERIAL 2 EXCEL 2007 INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

GRABACIÓN DE DATOS Apuntes de mecanografía

GRABACIÓN DE DATOS Apuntes de mecanografía GRABACIÓN DE DATOS Apuntes de mecanografía Página 1 El arte de la mecanografía Convertirse en un buen mecanógrafo es sólo cuestión de tiempo, entrenamiento y práctica. No requiere ninguna habilidad especial.

Más detalles

3º Grado Educación Infantil Bilingüe Números. Método Singapur y F. Bravo E R

3º Grado Educación Infantil Bilingüe Números. Método Singapur y F. Bravo E R MATEMÁTICAS PARA EDUCACIÓN INFANTIL N Enseñamos y aprendemos llos números:: Método Siingapur y Fernández Bravo,, Porr Clarra Garrcí ía,, Marrtta Gonzzál lezz y Crri isstti ina Lattorrrre.. Ú M E R O S

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO

GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO UNIDAD DE SISTEMAS DE INFORMACION Y COMPUTO DEPARTAMENTO DE ADQUISICIONES INDICE Tema Página Objetivo 2 Portal del Departamento de Adquisiciones 3 Sección

Más detalles

QUÉ ES HOMEBASE? Encontrar Libros

QUÉ ES HOMEBASE? Encontrar Libros QUÉ ES HOMEBASE? HomeBase 2.3 es el software de gerencia de inventario que permite no perder de vista sus libros, catálogos, desideratas, clientes y facturas. Usted puede agregar nuevas entradas, actualizar

Más detalles

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro USAR MYSQL EN PHP PHP tiene una librería de funciones nativas para conectarse a las base de datos MySQL. Por un lado reconoce la librería mysql y por otro mysqli. Se recomienda el uso de mysqli dado que

Más detalles

Qué es y para qué sirve Excel2007?

Qué es y para qué sirve Excel2007? Excel es un programa del tipo Hoja de Cálculo que permite realizar operaciones con números organizados en una cuadrícula. Es útil para realizar desde simples sumas hasta cálculos de préstamos hipotecarios.

Más detalles

Contenido NO EXPONGA SU INFORMACIÓN PERSONAL.

Contenido NO EXPONGA SU INFORMACIÓN PERSONAL. FUNCIONALIDADES DE LOS DISPOSITIVOS MÓVILES Contenido NO EXPONGA SU INFORMACIÓN PERSONAL. 1. COMO ESTABLECER PROTECCIÓN EN SUS DISPOSITIVOS MÓVILES... 2 2. PERFILES DE USO Y BLOQUEO DE LLAMADAS.... 7 Establezca

Más detalles

por Miguel Crespo Celda

por Miguel Crespo Celda PRACTICA DE TACTICA: LA ANTICIPACION 1. Definición. La anticipación en tenis significa adivinar cuáles son las intenciones del contrario de forma que el jugador se pueda preparar adecuadamente para reaccionar.

Más detalles

Práctica 2: El problema de la sección crítica

Práctica 2: El problema de la sección crítica Práctica 2: El problema de la sección crítica Programación de Sistemas Concurrentes y Distribuidos Grado de Ingeniería Informática Dpto. de Informática e Ingeniería de Sistemas, Escuela de Ingeniería y

Más detalles

OFICINA INTERNET EMPRESAS

OFICINA INTERNET EMPRESAS OFICINA INTERNET EMPRESAS Bienvenido a su oficina en Internet Oficina Internet Empresas le ofrece un servicio personal y accesible las 24 horas del día, de manera sencilla, cómoda e integrada, al incorporar

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET Cada capa de la pila añade a los datos a enviar a la capa inferior, información de control para que el envío sea correcto. Esta información

Más detalles

GOOGLE NOTICIAS Y ALERTAS

GOOGLE NOTICIAS Y ALERTAS GOOGLE NOTICIAS Y ALERTAS Curso de Noticias y Alertas por KZgunea se encuentra bajo licencia Creative Commons de Reconocimiento-NoComercial-CompartirIgual_3.0_ (CC-BY-NC-SA_3.0) Índice del curso 1. TEMA

Más detalles

Guía para el Portal de Profesores del Sistema de Información CLASS Académico

Guía para el Portal de Profesores del Sistema de Información CLASS Académico Centro de Apoyo en Tecnologías de la Información y la Comunicación CATIC Guía para el Portal de Profesores del Sistema de Información CLASS Académico El Sistema de Información CLASS Académico es el sistema

Más detalles

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente 3 o curso de Ingeniería Técnica en Informática de Sistemas 13 de abril de 2007 El objetivo de esta práctica es realizar una

Más detalles

Menús. Gestor de Menús

Menús. Gestor de Menús Menús Para dar acceso a las categorías, artículos y generar espacio para los módulos se deben crear menús, éstos son enlaces a determinado recurso en el portal Web, sin ellos no es posible visualizar ninguno

Más detalles

[MANUAL DE USO DE EKADE2ABIES] Pincel E ADE

[MANUAL DE USO DE EKADE2ABIES] Pincel E ADE [MANUAL DE USO DE EKADE2ABIES] Pincel E ADE ÍNDICE DE CONTENIDOS: 1.- INTRODUCCIÓN 3 2.- INSTALACIÓN DE LA APLICACIÓN 3 3.- CONFIGURACIÓN DE LA APLICACIÓN 3 4.- EJECUCIÓN DE LA IMPORTACIÓN DE DATOS 15

Más detalles

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A) aprenderaprogramar.com Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A) Sección: Cursos Categoría: Curso creación y administración web: Joomla

Más detalles

Acciones Correctivas y Preventivas. Universidad Autónoma del Estado de México

Acciones Correctivas y Preventivas. Universidad Autónoma del Estado de México Acciones Correctivas y Preventivas Universidad Autónoma del Estado de México Mejora Continua La mejora continua del desempeño global de la organización debería ser un objetivo permanente de ésta. Mejora

Más detalles

Operación 8 Claves para la ISO 9001-2015

Operación 8 Claves para la ISO 9001-2015 Operación 8Claves para la ISO 9001-2015 BLOQUE 8: Operación A grandes rasgos, se puede decir que este bloque se corresponde con el capítulo 7 de la antigua norma ISO 9001:2008 de Realización del Producto,

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario 14 CORREO SEGURO. Hay aplicaciones de correo que permiten enviar y recibir correos cifrados y firmados digitalmente utilizando criptografía. Estas operaciones garantizan el intercambio seguro de información,

Más detalles

Educar a los hijos. La estrategia principal: economía de fichas

Educar a los hijos. La estrategia principal: economía de fichas Educar a los hijos La estrategia principal: economía de fichas Algunos niños arman un verdadero escándalo a la hora de irse a dormir, cuando tienen que irse del parque en el que están jugando, dejar de

Más detalles

Bienvenido al sistema de Curriculum Digital CVDigital

Bienvenido al sistema de Curriculum Digital CVDigital CVDigital 1 Bienvenido al sistema de Curriculum Digital CVDigital Este programa se ha desarrollado con el fin de llevar a cabo Certificaciones y Recertificaciones de los profesionales a partir del ingreso

Más detalles

CarFirma Firma electrónica del Gobierno de La Rioja Manual de usuario

CarFirma Firma electrónica del Gobierno de La Rioja Manual de usuario CarFirma Firma electrónica del Gobierno de La Rioja Manual de usuario 1 ÍNDICE Í 1 ÍNDICE...2 2 INTRODUCCIÓN...3 3 DETECCIÓN DE LA APLICACIÓN...4 4 DESCARGA...6 5 INSTALACIÓN Y DESINSTALACIÓN...8 6 EJECUCIÓN...10

Más detalles

Elementos de Microsoft Word

Elementos de Microsoft Word Contenido 1. Distintas formas de iniciar Word 2007... 2 2. Ayuda de Word... 2 3. Las barras de herramientas... 3 4. Funcionamiento de las pestañas. Cómo funcionan?... 4 5. Personalizar barra de acceso

Más detalles