Skip to content

Commit 66beee5

Browse files
authored
Merge pull request #8 from LBBassani/simulator
Simulator
2 parents 389f96c + 2ba21ba commit 66beee5

File tree

99 files changed

+957
-410
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+957
-410
lines changed

README.md

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Caso o pacote `pkg-config` esteja indisponível, instale o `pkgconf`.
1313

1414
Utilize o gerenciador de pacotes da sua distribuição, como `apt` ou `pacman`, para instalar os pacotes listados.
1515

16-
Também é necessário instalar o vssscorepy, o vss-sdk e pyzmq
16+
Também é necessário instalar o vssscorepy, o vss-sdk, pyzmq, OpenCV, numpy e google.
1717

1818
```
1919
$ sudo -H pip install git+https://github.com/VSS-SDK/VSS-CorePy --upgrade
@@ -44,25 +44,23 @@ Em breve.
4444

4545
## Primeiro comentário do arquivo
4646

47-
"""
48-
Nome do módulo :
49-
Ano de criação :
50-
Descrição do módulo :
51-
Versão :
52-
Pré-requisitos : (arquivos e bibliotecas necessárias para compilar)
53-
Membros :
47+
""" Nome do módulo :
48+
Ano de criação :
49+
Descrição do módulo :
50+
Versão :
51+
Pré-requisitos : (arquivos e bibliotecas necessárias para compilar)
52+
Membros :
5453
"""
5554

5655

5756
## Comentário de protótipo de funções
5857

59-
"""
60-
Nome da função :
61-
Intenção da função :
62-
Pré-requisitos :
63-
Efeitos colaterais :
64-
Parâmetros :
65-
Retorno :
58+
""" Nome da função :
59+
Intenção da função :
60+
Pré-requisitos :
61+
Efeitos colaterais :
62+
Parâmetros :
63+
Retorno :
6664
"""
6765

6866

new_scripts/Agente.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
""" Nome do módulo : Agente
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Agente representa uma entidade em campo
4+
Versão : 2.0
5+
Pré-requisitos : sklearn
6+
geometria
7+
Membros : Lorena Bassani
8+
"""
9+
from sklearn.linear_model import LinearRegression
10+
from .Geometria import Ponto
11+
12+
class Agente(object):
13+
14+
def __init__(self, ponto = Ponto()):
15+
self.__ponto = ponto
16+
self.__posicoesAntigas = list()
17+
18+
@property
19+
def ponto(self):
20+
return self.__ponto
21+
22+
@ponto.setter
23+
def ponto(self, value):
24+
self._changePosition()
25+
self.__ponto = value
26+
27+
@property
28+
def posicao(self):
29+
return self.ponto.posicao
30+
31+
@posicao.setter
32+
def posicao(self, value):
33+
self._changePosition()
34+
self.ponto.posicao = value
35+
36+
@property
37+
def x(self):
38+
return self.ponto.x
39+
40+
@property
41+
def posicoesAntigas(self):
42+
return self.__posicoesAntigas.copy()
43+
44+
def _changePosition(self):
45+
if(len(self.__posicoesAntigas) >= 5):
46+
self.__posicoesAntigas.pop(0)
47+
self.__posicoesAntigas.append(Ponto(self.ponto.x, self.ponto.y))
48+
49+
def predicaoAdaptativa(self):
50+
pass

new_scripts/Aliado.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
""" Nome do módulo : Aliado
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Módulo que descreve um jogador aliado em campo
4+
Jogadores Aliados podem ser controlados
5+
Versão : 2.0
6+
Pré-requisitos : Jogador
7+
Ponto
8+
ComportamentoJogadores
9+
Factory
10+
IComportamento
11+
Membros : Lorena Bassani
12+
"""
13+
from .Jogador import Jogador
14+
from .Geometria import Ponto
15+
from .ComportamentosJogadores.Factory import Factory
16+
from .ComportamentosJogadores.IComportamento import IComportamento
17+
18+
class Aliado(Jogador):
19+
20+
def __init__(self, idJ, ponto = Ponto(), comportamento = COMPORTAMENTOS.DEFESA):
21+
Jogador.__init__(id = idJ, ponto = ponto)
22+
self.comportamento = comportamento
23+
24+
""" Nome da função : comportamento (getter)
25+
Intenção da função : Retornar qual o comportamento atual do Jogador
26+
Pré-requisitos : Nenhum
27+
Efeitos colaterais : Nenhum
28+
Parâmetros : Nenhum
29+
Retorno : COMPORTAMENTOS : Constante da Enumeração COMPORTAMENTOS
30+
"""
31+
@property
32+
def comportamento(self):
33+
return self.__comportamentoId
34+
35+
""" Nome da função : comportamento (setter)
36+
Intenção da função : Modificar o comportamento atual do Jogador
37+
Pré-requisitos : Nenhum
38+
Efeitos colaterais : Modifica o comportamento atual do Joagdor
39+
Parâmetros : COMPORTAMENTOS : Constante da Enumeração COMPORTAMENTOS
40+
Retorno : Nenhum
41+
"""
42+
@comportamento.setter
43+
def comportamento(self, comportamento):
44+
self.__comportamentoId = comportamento
45+
self.__comportamento = Factory.create(comportamento)
46+
47+
""" Nome da função : isInimigo
48+
Intenção da função : Dizer se o Jogador é Inimigo
49+
Pré-requisitos : Ser uma subclasse de Joagador
50+
Efeitos colaterais : Nenhum
51+
Parâmetros : Nenhum
52+
Retorno : Boolean : Sempre False
53+
"""
54+
def isInimigo(self):
55+
return False

new_scripts/Ball.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
""" Nome do módulo : Ball
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Módulo que define bola em campo
4+
Versão : 2.0
5+
Pré-requisitos : Agente
6+
Ponto
7+
Membros : Lorena Bassani
8+
"""
9+
from .Agente import Agente
10+
from .Geometria import Ponto
11+
12+
class Ball(Agente):
13+
14+
def __init__(self, ponto = Ponto()):
15+
Agente.__init__(self, ponto)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
""" Nome do módulo : ComportamentoAtacante
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Comportamento de Atacante para Jogadores
4+
Versão : 1.0
5+
Pré-requisitos : IComportamento
6+
Membros : Lorena Bassani
7+
"""
8+
from .IComportamento import IComportamento
9+
10+
class ComportamentoAtacante(IComportamento):
11+
def __init__(self):
12+
IComportamento.__init__(self)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
""" Nome do módulo : ComportamentoDefesa
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Comportamento de Defesa para Jogadores
4+
Versão : 1.0
5+
Pré-requisitos : IComportamento
6+
Membros : Lorena Bassani
7+
"""
8+
from .IComportamento import IComportamento
9+
10+
class ComportamentoDefesa(IComportamento):
11+
def __init__(self):
12+
IComportamento.__init__(self)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
""" Nome do módulo : ComportamentoGoleiro
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Comportamento de Goleiro para Jogadores
4+
Versão : 1.0
5+
Pré-requisitos : IComportamento
6+
Membros : Lorena Bassani
7+
"""
8+
from .IComportamento import IComportamento
9+
10+
class ComportamentoGoleiro(IComportamento):
11+
def __init__(self):
12+
IComportamento.__init__(self)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
""" Nome do módulo : COMPORTAMENTOS
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Enumeração de comportamentos de Jogador
4+
Versão : 1.0
5+
Pré-requisitos : Enum
6+
Membros : Lorena Bassani
7+
"""
8+
from enum import Enum
9+
10+
class COMPORTAMENTOS(Enum):
11+
GOLEIRO = 0
12+
ATACANTE = 1
13+
DEFESA = 2
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
""" Nome do módulo : Factory
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Fábrica de comportamentos de jogador
4+
Versão : 1.0
5+
Pré-requisitos : Comportamentos
6+
ComportamentoGoleiro
7+
ComportamentoDefesa
8+
ComportamentoAtaque
9+
Membros : Lorena Bassani
10+
"""
11+
from .Comportamentos import COMPORTAMENTOS
12+
from .ComportamentoGoleiro import ComportamentoGoleiro
13+
from .ComportamentoDefesa import ComportamentoDefesa
14+
from .ComportamentoAtacante import ComportamentoAtacante
15+
16+
class Factory(object):
17+
18+
""" Nome da função : create
19+
Intenção da função : Criar um objeto adequado de comportamento para Jogador
20+
Pré-requisitos : Nenhum
21+
Efeitos colaterais : Nenhum
22+
Parâmetros : COMPORTAMENTO : Comportamento relativo ao que se quer do Jogador
23+
Retorno : IComportamento : Objeto que implementa um Comportamento de Jogador
24+
"""
25+
@staticmethod
26+
def create(comportamento):
27+
if comportamento == COMPORTAMENTOS.GOLEIRO:
28+
return ComportamentoGoleiro()
29+
elif comportamento == COMPORTAMENTOS.ATACANTE:
30+
return ComportamentoAtacante()
31+
else:
32+
return ComportamentoDefesa()
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
""" Nome do módulo : IComportamento
2+
Ano de criação : 2019/10
3+
Descrição do módulo : Interface de Comportamento para Padrão Strategy
4+
Versão : 1.0
5+
Pré-requisitos : Nenhum
6+
Membros : Lorena Bassani
7+
"""
8+
class IComportamento(object):
9+
pass

0 commit comments

Comments
 (0)