Jump to content
ortsac

Jogo do galo

Recommended Posts

ortsac

Boas,

assim como diz o titulo do tópico tenho que fazer um projecto que é o jogo do galo, Este deve ser jogado em computadores diferentes em rede um com outro. Agora o problema é o seguinte, fazer o jogo não traz qualquer dificuldade porque isso consigo, o que não sei fazer é a parte "online" de como fazer para conseguir jogar com outro computador.

Se alguém me puder dar umas luzes era excelente.

Cumprimentos

Share this post


Link to post
Share on other sites
KTachyon

Luz #1: Sockets


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
Ernest

Bom dia,

Há aspectos e questões importantes para resolver esta problemática :

1 - O número de jogadores e o algoritmo do jogo

2 - A arquitetura em rede e os protocolos de comunicação de rede

3- tipo de rede e de interação homem-máquina (HMI)

O número de jogadores é de dois no jogo do galo?

Se assim for, então a arquitectura topológica de rede poderia ser centralizada tipo modelo cliente/servidor e não distribuída, P2P ou outra coisa.

Um servidor centralizado contendo o algoritmo do jogo, e permitindo a vários jogadores de se conectar ao servidor via os softwares clientes.

Obviamente, o servidor deve ser capaz de permitir que vários pares de jogadores joguem simultaneamente (isolando os dados de cada um).

Os jogos são, humano contra máquina ou humano contra humano?

Em ambos os casos, a inteligência está toda do lado do servidor. Do lado do cliente tem apenas a apresentação (vista) e gestão de eventos do usuário.

A interação homem-máquina (HMI) poderia ser em SWING, SWT, pagina WEB, Console, JavaFX, JSF 2 , HTML, etc...

A parte "online", pode ser feita na linguagem JAVA, com um destes protocolos da rede :

Socket, RMI, WEB (HTTP, REST, SOAP), CORBA (Common Object Request Broker Architecture) / Java IDL.

Qual a rede? LAN atrás de um firewall ou NAT ? Ou na Internet (WAN) ?

Os protocolos da rede Socket, RMI as vezes tem dificuldades par atravessar firewall .

Você precisa desenvolver um servidor ou é que você pode usar um já escrito em HTTP (TOMCAT, JETTY, GlassFish, ...etc) ?

Conclusão: A resposta final dependerá de sua resposta a estas perguntas.

Cordialmente

Ernest Duarte

Share this post


Link to post
Share on other sites
ortsac

Boas Ernest Duarte,

numa primeira fase o jogo é para 2 pessoas e creio que o objectivo (assim como descreveu) é ter um servidor com o algoritmo de jogo e os clientes conectarem-se a ele.

A rede é LAN se não estou em erro mas o melhor seria funcionar com LAN e com WAN. O protocolo creio que posso usar qualquer um o que seja mais conveniente e o servidor posso usar um já escrito .

Cumprimentos.

Nuno Castro

Share this post


Link to post
Share on other sites
Ernest

Bom dia Nuno Castro,

Tudo depende do objectivo do projeto e dos objectivos pedagógicos.

Pode fazer SWING ----Socket ----> Servidor escrito por si com o seu procolo privado.

O problema é que você não vai poder jogar na rede Internet por causa dos FireWalls que não deicharam passar o seu procolo Socket ou até RMI.

Mas HTTP passa quase sempre os FireWalls.

Por isso pode Usar HTTP directamente ou REST ou SOAP sobre HTTP...

Mas eu acho que na área de TI, devemos seguir em frente e ser curiosos e ir para a escola da vida e da experiência, descobrir de novos horizontes.

Não ser apenas consumidores, mas também produtores.

Se for o seu caso, sugiro desenvolver o lado do cliente em Java SWING.

E no aplicativo do lado do servidor, utilizar JETTY incorporado (embeded). O principal objectivo é utilizar HTTP. JETTY : http://www.eclipse.org/jetty/

Basicamente é desenvolver uma "Web Application" Java com uma única HttpServlet.

E no meio dos dois (cliente e servidor) utilizar HTTP.

E transferir os dados para o cliente SWING em JSON. ( http://wiki.fasterxml.com/JacksonInFiveMinutes ).

E quando detectar que é um navegador então disponibiliza HTML5, para ser interpretado pelo navegador Web.

Depois o aplicativo do lado do servidor, pode ser metido no Cloud Java, sem dificuldade nenhuma e gratuitamente :

http://jelastic.com/,

https://www.openshift.com/,

https://developers.google.com/appengine/ ,

http://www.cloudbees.com/ ...

Poderia também numa fase ulterior desenvolver um aplicativo para Mobile, Android, já que também se desenvolve em JAVA.

Se há pessoas que estão motivadas então vamos lá, neste caso, vou acompanhar na realização para fins pedagógicos de programação em rede JAVA com um tutorial.

A realização completa mete cerca de 24 horas de trabalho.

O algoritmo do jogo é relativamente simples por isso permite experimentar a programação em rede utilizando :

----> JAVA, Web(HTML5) , Cloud Computing, Mobile ANDROID, gerenciamento de projetos com métodos ágeis (SCRUM, Extreme Programming (XP)).

Cordialmente

Ernest Duarte

Edited by Ernest Duarte

Share this post


Link to post
Share on other sites
Ernest

Bom dia Nuno Castro,

Nunca tinha ouvido falar de "Jogo do galo" penso que é o Tic-tac-toe ? http://en.wikipedia.org/wiki/Tic-tac-toe

Este é um jogo muito simples. Realizar este jogo em rede permite estudar todas estas tecnologias e métodos. Sem ter que implementar um algoritmo complexo.

----> JAVA, SWING, Web(HTML5) , Cloud Computing, Mobile ANDROID, gerenciamento de projetos com métodos ágeis (SCRUM, Extreme Programming (XP)).

Cordialmente

Ernest Duarte

Share this post


Link to post
Share on other sites
KTachyon

Nunca tinha ouvido falar de "Jogo do galo" penso que é o Tic-tac-toe ? http://en.wikipedia.org/wiki/Tic-tac-toe

http://pt.wikipedia.org/wiki/Jogo_da_velha

O jogo da velha (português brasileiro) ou jogo do galo (português europeu) é um jogo e passatempo popular.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.