Ayuda con Threads (hilos)
Lo que pasa es que nunca he usado los Threads (hilos), me he puesto a investigar un poco sobre este tema y he encontrado que estos sirven para realizar tareas de manera simultanea y he visto ejemplos y los he entendido, el problema es que estoy realizando un juego en java multijugador, mi profesora me dijo que debia usar hilos para manejar los turnos y funciones del juego, pero no entiendo muy bien que iria en estos Threads (hilos), ella me dijo que debia poner los hilos a dormir, pero en realidad no entendi muy bien, si ustedes me pueden aclarar un poco mejor la forma en que deberia hacer los hilos, que funcion cumpliria cada hilo y como deberian de funcionar y si me podrian dar un ejemplo de threads con algun juego me serian de gran ayuda. espero sus respuestas
Gracias de antemano
- Inicie sesión o regístrese para enviar comentarios
Creo que deberias de
Creo que deberias de mencionar o explicar de que se trata el juego.
Ademas
Ademas de explicar mas sobre lo que trata tu juego como lo dice @beto.bateria, lo que te dijo tu maestra no es suficiente como para poder
empezar tu proyecto.
Ten mas clara tu idea, solo te puedo comentar que lo Hilos en Java hay dos formas de crearlos Extendiendo de Thread E Implementando la interfaz Runnable, con eso podrías empezar a definir que es lo que vas a realizar.
Saludos
Si, me falto explicar mas del
Si, me falto explicar mas del juego, el juego consiste en un tablero o circuito, con unos dados y varios jugadores (multijugador), asi que el juego es por turnos, los jugadores simplemente tiraran los dados y caeran en la casilla correspondiente, donde luego se le abrira una pregunta que debera responder el jugador (la pregunta solo se mostrara al jugador que cayo en la casilla), luego de responder la pregunta, el siguiente jugador podra continuar con su turno y lanzar los dados y asi sucesivamente con los demas jugadores.
espero me puedan aclarar como irian los hilos aqui, si pueden con ejemplos, o si no simplemente una explicacion que el resto lo consulto yo, muchas gracias
Explicate mas por favor, por
Explicate mas por favor, por ejemplo, ¿a traves de varias computadoras se va a jugar?, ¿o va a ser solo a traves de una computadora y los jugadores van a cambiar de lugar?, ¿van a poder tirar al mismo tiempo los dados?, etc, etc.
El juego se podra jugar desde
El juego se podra jugar desde distintas computadoras, para lo cual se implemento RMI (invocacion de metodos remotos) que es lo que me va a permitir a los jugadores jugar en linea, los jugadores estaran ubicados en un tablero (digamoslo asi tipo monopolio pero en vez de propiedades y casas van a ser preguntas que se abriran y solo seran vistas por el jugador que cayo en esa casilla), un jugador va a lanzar los dados, segun el numero en el que quedo el dado, se ubicara al jugador en la casilla del tablero que le corresponda segun el numero sacado, los dados seran tirados por turnos cuando un jugador acabe su turno, continuara el siguiente jugador para lanzar los dados y asi sucesivamente.
Olvidandote de detalles
Olvidandote de detalles tecnicos (por ejemplo RMI), podrias explicarme como imaginas que funcionaria funcionaria?, te voy a dar un ejemplo:
Para logearse a a facebook o twitter, u otro cualquier servicio:
Pones el url en el navegador.
El navegador se conecta al servidor.
El servidor contesta con una pagina.
El navegar recibe esta pagina y la muestra.
El usuario pone su nombre y paswword y le da aceptar.
El navegador envia esta informacion al servidor.
El servidor verifica la informacion recibida y si es correcta manda la pagina de inicio.
El navegador recibe la hoja de inicio y la muestra al usuario.
Tu necesitarias empezar con:
Varios usuarios ejecutal la aplicacion.
El usuario 01 lanza los dados.
al caer en la casilla x el programa manda a la computadora del usuario 02 (es un decir) los resultado.
y asi hasta terminar.
Primero que todo muchas
Primero que todo muchas gracias por tratar de ayudarme, voy a explicar como funcionaria paso a paso.
1. un usuario se loguea en el aplicativo (ingresa su nombre de usuario y contraseña, si son correctas ingresa)
2. luego este usuario podra crear partidas de juego a la cual lo demas usuarios que se logueen(desde otra computadora) podran ingresar
3. luego de que los usuarios se hayan unido a la partida que se creo con anterioridad, el usuario creador de la partida iniciara la partida
4. Cuando se inicia la partida simplemente se abrira el tablero de juego, de todos los jugadores que se unieron a la partida.
Supongamos que ingresaron 4 jugadores asi, con los siguientes turnos:
Turno #1 | Turno #2 | Turno #3 | Turno #4
----------------------------------------------------------------------------------------
Jose | Carlos | Andres | Camilo
5. El jugador JOSE debera lanzar los dados, los dados generaran un aleatorio que corresponde al numero de casilla que se movera la pieza del jugador correspondiente, el movimiento de la pieza se vera en los tableros de los demas jugadores participantes en la partida.
6. Segun la casilla en la que quede la pieza del jugador JOSE, se abrira una pregunta, esta pregunta solo sera vista por el jugador JOSE, JOSE escogera una opcion de respuesta de la pregunta y pasara el turno al siguiente jugador osea CARLOS el cual lanzara los dados y seguira el mismo proceso del jugador JOSE, todo esto se realizara con los demas jugadores
Cliente- Servidor
Ajedrez en red
Saludos.
Estudialo y nos cuentas.
Saludos: A veces, cuando
Saludos:
A veces, cuando empezamos a programar, nos falta considerar los detalles de un problema o nuevo requerimiento. En este caso, mi forma de ayudarte es para que veas esos detalles; una vez que veas esos detalles entonces te podre decir en donde debes de poner threads y porque.
Por ejempo, aqui no indicas en que momento se conectaran a la computadora que va a servir de servidor, ni que datos mandara y los detalles del logueo no interesan en esta descripcion. Deberia quedar mas o menos asi:
La explicacion del funcionamiento de tu aplicacion deberia de estar redactada del tal forma que a toda accion del usuario debe de existir una reaccion en la aplicacion.
Definir arquitectura
Primeramente deberás de definir tu arquitectura y para todos los procesos que no desees que hagan esperar a todos los jugadores identificarlos para ponerlos en hilos. Por ejemplo, debes detectar si puedden tirar el dado de manera simultánea o si deben esperar a que el anterior tire el dado, si puede haber partidas simultáneamente o si se debe de esperar a que termine la partida, si debes de notificar a todos los usuarios cuando haya terminado una partida, o si debes de notificar por ejemplo cuanod se conecte el amigo de un jugador.
En principio para todos aquellos eventos que no deban interrumpir el curso del juego deberás de asignar hilos.
Saludos cordiales.