Sphinx ─ O Jogo

Projeto criado para demonstrar o uso da computação distribuída usando a linguagem Python.

Empregando a tecnologia RPC (remote procedure call) para intermediar a comunicação entre o servidor e os clientes, a cada partida um ditado popular será aleatoriamente sorteado. O jogador deverá tentar decifrar qual é a frase, escolhendo uma letra por vez.

Porém, há uma condição: ou o jogador desvenda o ditado antes de cometer 5 erros, ou a esfinge irá devorá-lo.

Projeto open source, com seu código-fonte integral disponível no GitHub.

Ficha Técnica

Categoria Projeto Cliente-Servidor
Sub-categoria Desafio de Programação ─ Game
Tecnologias
  • Python (versão 3.6 ou superior)
  • RPC (remote procedure call)
  • Tkinter (interface gŕafica)
  • Código-Fonte GitHub
    Autor Eduardo Stuart

    Sobre o projeto

    Idealizado com o objetivo de demonstrar algumas técnicas da computação distribuída, usando a linguagem Python.

    Tanto o servidor, quanto o cliente do jogo Sphinx em execução


    Estrutura do projeto

    Usando a arquitetura cliente-servidor, o projeto, apresenta a seguinte estrutura:

    • O cliente
      • É ativado pelo jogador
      • Apresenta graficamente ao jogador o objetivo da partida, que consiste em tentar adivinhar um provérbio famoso, escolhido aleatoriamente pelo servidor
    • O servidor
      • Pode estar hospedado em uma máquina da rede local ou na internet
      • Pode receber uma grande quantidade de acessos simultâneos
      • Fica encarregado de receber as requisições dos clientes e respondè-las apropriadamente, considerando o tipo de soliitação ou a etapa em que o jogo se encontra

    Destaques do projeto

    • Interamente desenvolvido usando a linguagem Python, versão 3.6
    • Tem como objetivo demonstrar como é possível criar uma solução cliente-servidor usando o Python
    • Todos os algoritmos necessários para uma boa realização das partidas estão fartamente comentados
    • O servidor é capaz de responder a inúmeras requisições simultâneas de diversos clientes
    • O cliente possui uma interface gráfica desenvolvida usando a biblioteca Tkinter
    • O servidor exibe no terminal cada uma das requisições feitas, incluindo mensagens de estado e outras informações pertinentes ao projeto

    Como executá-lo?

    Por ter sido desenvolvido em Python, não é preciso compilar os arquivos que integram o projeto Sphinx. No entanto, será preciso instalar, via PIP, as dependências para que o projeto possa ser executado ─ como as bibliotecas Tkinter, RPYC, etc.

    Todas as instruções, que são bastante simples de serem seguidas, podem ser obtidas no manual de instruções (arquivo PDF, com 3.8MB de tamanho.)