rmayormartins commited on
Commit
9cbf9f5
·
1 Parent(s): 92bc16b
Files changed (1) hide show
  1. README.md +180 -41
README.md CHANGED
@@ -1,50 +1,189 @@
1
  ---
2
- title: sentiment-analysis-committee
3
- emoji: 👥
4
  colorFrom: blue
5
- colorTo: green
6
  sdk: gradio
7
- sdk_version: "4.12.0"
8
  app_file: app.py
9
  pinned: false
 
10
  ---
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
- # Sentiment Analysis Committee
14
-
15
- A comprehensive sentiment analysis tool using multiple methods, including BERT (Base and Large), DistilBERT, SiEBERT, TextBlob, VADER, and AFINN.
16
-
17
- ## How to Use
18
-
19
- Enter text into the interface to receive sentiment analyses from various methods. The committee's decision is based on the majority of votes among the methods.
20
-
21
- ## Technical Details
22
-
23
- This project leverages various natural language processing models to evaluate the sentiment of entered text:
24
-
25
- - **BERT Base and BERT Large**: Transformer-based models providing sentiment scores and labels. BERT Large is a larger variant of BERT with more layers, potentially offering more nuanced sentiment analysis.
26
- - **DistilBERT**: A distilled version of BERT, optimized for speed and efficiency.
27
- - **SiEBERT**: A RoBERTa-based model fine-tuned for sentiment analysis.
28
- - **TextBlob**: Utilizes Naive Bayes classifiers, offering straightforward sentiment evaluations.
29
- - **VADER**: Designed for social media and short texts, giving a compound sentiment score.
30
- - **AFINN**: A lexical method assigning scores to words, indicating sentiment intensity.
31
-
32
- The final decision of the committee is determined by a majority vote approach, providing a balanced sentiment analysis.
33
-
34
- ## Additional Information
35
-
36
- - Developed by Ramon Mayor Martins (2023)
37
- - E-mail: [[email protected]](mailto:[email protected])
38
- - Homepage: [https://rmayormartins.github.io/](https://rmayormartins.github.io/)
39
- - Twitter: [@rmayormartins](https://twitter.com/rmayormartins)
40
- - GitHub: [https://github.com/rmayormartins](https://github.com/rmayormartins)
41
-
42
- ## Notes
43
-
44
- - The committee's decision is democratic, based on the majority vote from the utilized methods.
45
- - The project is implemented in Python and hosted on Hugging Face Spaces.
46
-
47
-
48
-
49
-
50
 
 
 
1
  ---
2
+ title: Java-Air-Combat
3
+ emoji: ⯐🛦🛧
4
  colorFrom: blue
5
+ colorTo: red
6
  sdk: gradio
7
+ sdk_version: 4.44.0
8
  app_file: app.py
9
  pinned: false
10
+ license: mit
11
  ---
12
 
13
+ # ⯐🛦🛧 Java Air Combat - Arena de Batalha Aérea
14
+
15
+ Uma ferramenta educativa gamificada para aprendizado de programação Java através de combate aéreo entre aeronaves programáveis.
16
+
17
+ ## Desenvolvedor
18
+ Desenvolvido por Ramon Mayor Martins (2025)
19
+ - Email: [email protected]
20
+ - Homepage: https://rmayormartins.github.io/
21
+ - Twitter: @rmayormartins
22
+ - GitHub: https://github.com/rmayormartins
23
+ - Space: https://huggingface.co/rmayormartins
24
+ - Instituição: IFSC - Instituto Federal de Santa Catarina
25
+
26
+ ## 🎮 Sobre o Jogo
27
+
28
+ Java Air Combat é uma plataforma onde você programa sua própria aeronave de combate em Java e a coloca para batalhar contra outras aeronaves. É uma metodologia de **Gamificação no nível Modify** de código, desenvolvida para a disciplina de Programação.
29
+
30
+ ### ✨ Características Principais
31
+
32
+ - **Sistema de Pontos**: Distribua 100 pontos entre 11 atributos diferentes
33
+ - **Combate em Tempo Real**: Visualize suas aeronaves batalhando em uma arena ASCII colorida
34
+ - **Estratégias Avançadas**: Implemente táticas de movimento, altitude e combate
35
+ - **Novos Recursos**: Radar, tiro duplo, mísseis nucleares e mais!
36
+
37
+ ## 🚀 Como Usar
38
+
39
+ 1. **Carregar Templates**: Clique nos botões para carregar o código base de cada time
40
+ 2. **Personalizar Aeronaves**: Distribua seus 100 pontos entre os atributos
41
+ 3. **Configurar Arena**: Ajuste tamanho, posições iniciais e vida das aeronaves
42
+ 4. **Batalhar**: Clique em "🔥 Combate!" e assista à batalha!
43
+
44
+ ## 📊 Atributos das Aeronaves
45
+
46
+ | Atributo | Faixa | Descrição |
47
+ |----------|-------|-----------|
48
+ | **speed** | 1-10 | Velocidade de movimento |
49
+ | **fireRate** | 1-10 | Taxa de disparo |
50
+ | **maneuverability** | 1-10 | Facilita mudanças de altitude |
51
+ | **shotPower** | 5-20 | Dano do tiro normal |
52
+ | **supersonicPower** | 10-30 | Dano do tiro supersônico |
53
+ | **missilePower** | 15-40 | Dano do míssil especial |
54
+ | **defense** | 5-25 | Reduz dano recebido |
55
+ | **stealthChance** | 0-20 | Chance de esquiva |
56
+ | **radar** | 0-10 | Detecção de projéteis |
57
+ | **doubleShot** | 0-10 | Tiro em duas altitudes |
58
+ | **nuclearPower** | 0-10 | Poder do míssil nuclear |
59
+
60
+ > **Importante**: A soma de todos os atributos não pode exceder 100 pontos!
61
+
62
+ ## 🎯 Tipos de Projéteis
63
+
64
+ - **Tiro Normal** (`->`, `<-`): Básico, frequente
65
+ - **Tiro Supersônico** (`>>`, `<<`): Mais rápido e poderoso
66
+ - **Míssil Especial** (`=>`, `<=`): Alto dano, cooldown de 3 turnos
67
+ - **Tiro Duplo** (`=>`, `<=`): Ataca em duas altitudes simultaneamente
68
+ - **Míssil Nuclear** (`-N->`, `<-N-`): Dano massivo, cooldown de 5 turnos
69
+
70
+ ## 🏗️ Configurações da Arena
71
+
72
+ ### Tabela de Configurações
73
+ | Configuração | Faixa | Descrição |
74
+ |-------------|-------|-----------|
75
+ | **Largura da Tela** | 50-200 | Define a largura do campo de batalha |
76
+ | **Altura do Campo** | 3-7 | Define o número de linhas/altitudes possíveis |
77
+ | **Posição Inicial Time 1** | 0-49 | Define onde o Time 1 começa na arena |
78
+ | **Posição Inicial Time 2** | 51-200 | Define onde o Time 2 começa na arena |
79
+ | **Vida Time 1** | 50-500 | Define a vida inicial da aeronave do Time 1 |
80
+ | **Vida Time 2** | 50-500 | Define a vida inicial da aeronave do Time 2 |
81
+
82
+ ## 🎨 Representação Visual
83
+
84
+ ### Aeronaves e Projéteis
85
+ | Símbolo | Origem | Significado |
86
+ |---------|--------|-------------|
87
+ | `T1` | Time 1 | Aeronave do Time 1 |
88
+ | `T2` | Time 2 | Aeronave do Time 2 |
89
+ | `->` | Time 1 | Tiro normal do Time 1 |
90
+ | `<-` | Time 2 | Tiro normal do Time 2 |
91
+ | `>>` | Time 1 | Tiro supersônico do Time 1 |
92
+ | `<<` | Time 2 | Tiro supersônico do Time 2 |
93
+ | `=>` | Time 1 | Míssil especial do Time 1 |
94
+ | `<=` | Time 2 | Míssil especial do Time 2 |
95
+ | `=>` | Time 1 | Tiro duplo do Time 1 |
96
+ | `<=` | Time 2 | Tiro duplo do Time 2 |
97
+ | `-N->` | Time 1 | Míssil nuclear do Time 1 |
98
+ | `<-N-` | Time 2 | Míssil nuclear do Time 2 |
99
+
100
+ ### Alertas do Sistema
101
+ | Emoji | Mensagem | Significado |
102
+ |-------|----------|-------------|
103
+ | ❤️ | Vida Time X: 100 | Mostra a vida atual da aeronave |
104
+ | 💥 | Aeronave atingida! | Indica que uma aeronave foi atingida |
105
+ | 👻 | Aeronave esquivou! | Indica esquiva bem-sucedida |
106
+ | 📡 | Radar detectou projétil! | O radar detectou um projétil inimigo |
107
+ | ☢️ | Míssil nuclear lançado! | Alerta sobre míssil nuclear |
108
+ | 🏆 | Time X venceu! | Indica o vencedor da batalha |
109
+
110
+ ## 💡 Dicas de Estratégia
111
+
112
+ 1. **Equilíbrio**: Aeronaves balanceadas são mais eficazes que especializadas
113
+ 2. **Contramedidas**: Defesa baixa? Compense com manobrabilidade e furtividade
114
+ 3. **Movimento Inteligente**: Crie padrões ao invés de movimento aleatório
115
+ 4. **Use o Radar**: Detecte projéteis e implemente esquivas automáticas
116
+ 5. **Tiro Duplo**: Aumente chances de acerto atacando múltiplas altitudes
117
+ 6. **Mísseis Nucleares**: Use estrategicamente - alto dano, mas longo cooldown
118
+
119
+ ## 🔧 Métodos Personalizáveis
120
+
121
+ | Método | Parâmetros | Retorno | Descrição |
122
+ |--------|------------|---------|-----------|
123
+ | `move()` | nenhum | int | Controla movimento horizontal |
124
+ | `changeAltitude()` | nenhum | int | Controla mudanças de altitude |
125
+ | `shoot()` | posX, direction | Projectile | Dispara tiro normal |
126
+ | `shootSupersonic()` | posX, direction | Projectile | Dispara tiro supersônico |
127
+ | `specialMissile()` | posX, direction | Projectile | Dispara míssil especial |
128
+ | `doubleShot()` | posX, direction | Projectile | Implementa tiro duplo |
129
+ | `nuclearMissile()` | posX, direction | Projectile | Controla mísseis nucleares |
130
+ | `radarScan()` | projectiles, enemyPosX, enemyPosY | void | Processa informações do radar |
131
+
132
+ ## 📚 Conceitos de Programação Aplicados
133
+
134
+ Esta ferramenta ensina conceitos fundamentais de programação:
135
+
136
+ - **Herança**: Aeronaves estendem a classe abstrata `Aircraft`
137
+ - **Polimorfismo**: Métodos abstratos implementados de forma única por cada aeronave
138
+ - **Encapsulamento**: Atributos protegidos e métodos públicos bem definidos
139
+ - **Abstração**: Interface comum para diferentes tipos de aeronaves
140
+ - **Lógica Algorítmica**: Estratégias de movimento, combate e tomada de decisão
141
+
142
+ ## 🏫 Uso Educacional
143
+
144
+ ### Objetivos de Aprendizagem
145
+ - Programação Orientada a Objetos em Java
146
+ - Conceitos de herança e polimorfismo
147
+ - Lógica de programação e algoritmos
148
+ - Estratégia computacional
149
+ - Debugging e otimização de código
150
+ - Pensamento algorítmico aplicado a jogos
151
+
152
+ ### Metodologia
153
+ - **Gamificação no nível Modify**: Estudantes modificam código existente para criar estratégias únicas
154
+ - **Aprendizado baseado em competição**: Motiva experimentação e refinamento
155
+ - **Feedback visual imediato**: Resultados das estratégias são vistos em tempo real
156
+
157
+ ## 🔄 Desenvolvimento Local
158
+
159
+ Para rodar localmente:
160
+
161
+ ```bash
162
+ # Instalar dependências
163
+ pip install -r requirements.txt
164
+
165
+ # Executar aplicação
166
+ python app.py
167
+ ```
168
+
169
+ **Requisitos do sistema:**
170
+ - Java JDK 8+ instalado
171
+ - Python 3.7+
172
+ - Gradio 4.44.0
173
+
174
+ ## 🤝 Contribuições
175
+
176
+ Este projeto é educacional e está aberto a melhorias:
177
+ - Novas funcionalidades de combate
178
+ - Estratégias de IA mais avançadas
179
+ - Melhorias na interface
180
+ - Correções de bugs
181
+ - Otimizações de performance
182
+
183
+ ## 📄 Licença
184
+
185
+ Este projeto está licenciado sob a [MIT License](LICENSE). Use livremente em contextos acadêmicos e de aprendizado.
186
 
187
+ ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
+ 🎮 **Bons combates e boa programação!** ✈️🚁💥