Giter Club home page Giter Club logo

game's Introduction

Jogo de Adivinhação em Rede

Discentes

  • João Otávio Gurgel Souto
  • Guilherme Bonifácio Feitosa

Introdução

Este projeto foi desenvolvido para obtenção da nota final da disciplina de Redes de Computadores, ministrada pelo docente David Alain do Nascimento ao curso de Tecnólogo em Análise e Desenvolvimento de Sistemas na Instituição IFPE - Campus Garanhuns. O trabalho tem como objetivo implementar um jogo em rede usando a linguagem de programação Java, explorando conceitos como comunicação por sockets e multithreading.

Descrição do Projeto

O projeto consiste em um jogo de adivinhação em rede, no qual os jogadores podem se conectar a um servidor para participar do jogo. O servidor gera um número aleatório entre 1 e 100, e os jogadores tentam adivinhar esse número. A comunicação entre o servidor e os clientes é realizada por meio de sockets em Java.

Tecnologias Utilizadas

  • Java: A linguagem de programação utilizada para desenvolver tanto o servidor quanto o cliente.
  • Sockets: A comunicação entre o servidor e os clientes é implementada por meio de sockets, permitindo a troca de mensagens em tempo real.
  • Threads: O uso de threads possibilita que o servidor atenda a vários jogadores simultaneamente, garantindo uma experiência de jogo fluída.
  • IO Streams: Para lidar com entrada e saída de dados, são utilizadas classes como BufferedReader e PrintWriter.
  • Apache Maven: Utilizado para gerenciamento de dependências e construção do projeto.

Estrutura do Código

O código está organizado em três arquivos principais: GameServer, GameClient, e ClientHandler. A estrutura do projeto é gerenciada pelo Maven.

Cliente (GameClient)

O cliente é responsável por estabelecer a conexão com o servidor, enviar o nome do jogador e participar do jogo. O cliente pode enviar mensagens ao servidor e recebe mensagens em tempo real.

Servidor (GameServer)

O servidor gerencia a lógica do jogo, mantendo a lista de jogadores conectados, gerando o número secreto e distribuindo mensagens entre os jogadores. A classe GameServer cria uma instância de ClientHandler para cada jogador conectado.

Manipulação do Cliente (ClientHandler)

A classe ClientHandler é uma implementação de Runnable e lida com a interação entre o servidor e um cliente específico. Ela recebe mensagens do cliente, as processa de acordo com a lógica do jogo e as transmite para os demais jogadores.

Configuração do Maven

O arquivo pom.xml contém as configurações do projeto Maven, incluindo as versões do compilador Java, plugins necessários e a definição de scripts Batch para facilitar a execução do servidor e do cliente.

Execução do Projeto

Compile e empacote os arquivos Java com Maven

  mvn clean package

Inicie o servidor

  java -jar target/server/game-server.jar

Execute o cliente

  java -jar target/client/game-client.jar

Observação: Modifique o endereço de rede do servidor no cliente caso tente executar em maquinas diferentes.

game's People

Contributors

jotavios avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.