Skip to main content

A multiplayer word game with real-time gameplay via WebSocket

Project description

🏗️ Word Tower# 🏗️ Word Tower

**Jogo de palavras multijogador em tempo real com sistema de eliminação por timeout****Jogo de palavras multijogador em tempo real com sistema de eliminação por timeout**

PyPI versionPyPI version

Python 3.8+Python 3.8+

License: MITLicense: MIT

---Projeto desenvolvido para a disciplina de Programação I (Ciência da Computação - UFCG, Campina Grande)

🚀 Instalação e Uso---

📋 Pré-requisitos## 🚀 Instalação Rápida (PyPI)

  • Python 3.8+ (Download)### 📋 Pré-requisitos

⚡ Instalação- Python 3.8+ (Download)

pip install word-tower-game

``````bash

pip install word-tower-game

### ▶️ Executar```



```bash### ▶️ Executar

word-tower

``````bash

word-tower

🎉 **Pronto!** O jogo abrirá automaticamente no seu navegador em `http://localhost:8000````



---🎉 **Pronto!** O jogo abrirá automaticamente no seu navegador em `http://localhost:8000`



## 🎮 Como Jogar---



### 🚪 Entrando no Jogo## 🛠️ Instalação para Desenvolvimento



1. **Crie uma sala** ou **entre em uma existente** usando o código### 📋 Pré-requisitos para Desenvolvimento

2. **Aguarde outros jogadores** (mínimo 2 para iniciar)

3. **Host inicia o jogo** quando todos estiverem prontos- **Python 3.8+** ([Download](https://www.python.org/downloads/))

- **Node.js 20+** ([Download](https://nodejs.org/))

### 🎯 Objetivo

### 🔧 Setup de Desenvolvimento

Formar uma "torre de palavras" onde cada palavra deve começar com a **última letra** da palavra anterior.

```bash

### ⏰ Sistema de Tempo# 1. Clone o projeto

git clone https://github.com/KJSS3012/word-tower.git

- **30 segundos** por turno (configurável)cd word-tower

- **Timer visual** mostra tempo restante

- **Eliminação automática** quando tempo esgota# 2. Instalar dependências Python

pip install -r requirements.txt

### 🏆 Vitória

# 3. Instalar dependências Node.js

- **Último jogador ativo** vence a rodadacd front

- **Jogo reinicia** automaticamente para nova partidanpm install



---# 4. Build do frontend

npm run build

## 📝 Regras do Jogo

# 5. Voltar para raiz e executar

### ✅ Palavra Válidacd ..

python -m app.main

- Deve começar com a **letra correta**```

- Deve ser uma **palavra real** (verificada no dicionário)

- **Não pode repetir** palavras já usadas### 🌐 Acessar



### ❌ Palavra InválidaAbra `http://localhost:8000` no navegador e divirta-se!



- **Letra errada**: Eliminação imediata---

- **Palavra inexistente**: Eliminação imediata

- **Palavra repetida**: Eliminação imediata## 🎮 Como Jogar



### 🎲 Dificuldades### 🚪 Entrando no Jogo



| Dificuldade | Dicionário  | Próxima Letra     | Desafio |1. **Crie uma sala** ou **entre em uma existente** usando o código

| ----------- | ----------- | ----------------- | ------- |2. **Aguarde outros jogadores** (mínimo 2 para iniciar)

| **Fácil**   | Sem acentos | Última letra      | ⭐      |3. **Host inicia o jogo** quando todos estiverem prontos

| **Normal**  | Com acentos | Última letra      | ⭐⭐    |

| **Caótico** | Com acentos | Posição aleatória | ⭐⭐⭐  |### 🎯 Objetivo



---Formar uma "torre de palavras" onde cada palavra deve começar com a **última letra** da palavra anterior.



## 💻 Tecnologias### ⏰ Sistema de Tempo



- **Backend**: Python 3.8+ com FastAPI e Socket.IO- **30 segundos** por turno (configurável)

- **Frontend**: Vue 3 + TypeScript- **Timer visual** mostra tempo restante

- **Real-time**: WebSocket para comunicação instantânea- **Eliminação automática** quando tempo esgota

- **Multiplayer**: Suporte para 2-8 jogadores por sala

### 🏆 Vitória

---

- **Último jogador ativo** vence a rodada

## 🎓 Sobre- **Jogo reinicia** automaticamente para nova partida



**Projeto Acadêmico**---



- **Disciplina**: Programação I## 📝 Regras do Jogo

- **Instituição**: Universidade Federal de Campina Grande (UFCG)

- **Curso**: Ciência da Computação### ✅ Palavra Válida



**Word Tower** © 2025 - Licença MIT- Deve começar com a **letra correta**
- Deve ser uma **palavra real** (verificada no dicionário)
- **Não pode repetir** palavras já usadas

### ❌ Palavra Inválida

- **Letra errada**: Eliminação imediata
- **Palavra inexistente**: Eliminação imediata
- **Palavra repetida**: Eliminação imediata

### 🎲 Dificuldades

| Dificuldade | Dicionário  | Próxima Letra     | Desafio |
| ----------- | ----------- | ----------------- | ------- |
| **Fácil**   | Sem acentos | Última letra      | ⭐      |
| **Normal**  | Com acentos | Última letra      | ⭐⭐    |
| **Caótico** | Com acentos | Posição aleatória | ⭐⭐⭐  |

---

## � Distribuição

### PyPI Package

O Word Tower está disponível como um pacote Python no PyPI, facilitando a instalação e distribuição:

- **Package Name**: `word-tower-game`
- **Entry Point**: `word-tower` (comando global após instalação)
- **Inclui**: Backend Python + Frontend Vue.js pré-compilado
- **Auto-start**: Abre automaticamente o navegador
- **Porta**: Detecta automaticamente porta livre (padrão: 8000)

### Como funciona

1. **Instalação**: `pip install word-tower-game`
2. **Execução**: `word-tower`
3. **Backend + Frontend**: Servidor único serve tanto API quanto arquivos estáticos
4. **WebSocket**: Comunicação real-time integrada
5. **Auto-browser**: Abre automaticamente `http://localhost:8000`

---

## �💻 Tecnologias

### Backend

- **Python 3.8+**: Linguagem principal
- **Socket.IO**: Comunicação em tempo real
- **uvicorn**: Servidor ASGI para WebSockets
- **AsyncIO**: Programação assíncrona para timers

### Frontend

- **Vue 3**: Framework reativo moderno
- **TypeScript**: Tipagem estática
- **Pinia**: Gerenciamento de estado
- **Socket.IO Client**: Comunicação real-time

### Comunicação

- **WebSocket**: Tempo real para gameplay
- **JSON**: Formato de troca de dados

---

## 📦 Dependências

### PyPI Package (Automáticas)

```txt
fastapi>=0.104.1              # Framework web moderno
uvicorn[standard]>=0.24.0     # Servidor ASGI
python-socketio>=5.10.0       # Socket.IO real-time
python-multipart>=0.0.6       # Upload de arquivos
jinja2>=3.1.2                 # Template engine
aiofiles>=23.2.1              # Arquivos assíncronos

Frontend (Pré-compilado no PyPI)

{
  "vue": "^3.5.18", // Framework reativo
  "typescript": "latest", // Tipagem estática
  "pinia": "^3.0.3", // Estado global
  "socket.io-client": "^4.8.1", // WebSocket client
  "vite": "^6.0.3" // Build tool
}

🎓 Créditos

Projeto Acadêmico

  • Disciplina: Programação I
  • Instituição: Universidade Federal de Campina Grande (UFCG)
  • Curso: Ciência da Computação

Word Tower © 2025

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

word_tower_game-1.0.0.tar.gz (4.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

word_tower_game-1.0.0-py3-none-any.whl (4.4 MB view details)

Uploaded Python 3

File details

Details for the file word_tower_game-1.0.0.tar.gz.

File metadata

  • Download URL: word_tower_game-1.0.0.tar.gz
  • Upload date:
  • Size: 4.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for word_tower_game-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ebe7c92852d1316921408a1c878532af0f032402cdb7720f24676aa07ee0c0ea
MD5 b1a39d318c7c3fd02210ab0d0141c6a1
BLAKE2b-256 5ef21bc453a30e464b4a1043ca767efc629f1fac9c1afb133d1dd3bae93c5482

See more details on using hashes here.

File details

Details for the file word_tower_game-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for word_tower_game-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 77de7f13988538635a315feb995602f9861e9bf8cb07b061763705784cc2b3d8
MD5 649bff41e000f56c11a87a091bcc6880
BLAKE2b-256 d5c3617aa927b8e8dfd0c23d32cfc168c5da9d3883d5076e8b546422f1511dfe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page