From b62e53eb22ff5fbc51cae5503d9797022719ddb4 Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Thu, 20 Feb 2020 00:30:16 -0300 Subject: [PATCH 1/9] criada a classe pessoa --- oo/__init__.py | 0 oo/pessoa.py | 2 ++ placa_grafica_tkinter.py | 8 ++++---- 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 oo/__init__.py create mode 100644 oo/pessoa.py diff --git a/oo/__init__.py b/oo/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/oo/pessoa.py b/oo/pessoa.py new file mode 100644 index 000000000..eb7c0a9c1 --- /dev/null +++ b/oo/pessoa.py @@ -0,0 +1,2 @@ +class Pessoa: + pass diff --git a/placa_grafica_tkinter.py b/placa_grafica_tkinter.py index 318542e65..a0a25ff76 100644 --- a/placa_grafica_tkinter.py +++ b/placa_grafica_tkinter.py @@ -1,13 +1,13 @@ # coding: utf-8 +import math import time +from os import path from tkinter import PhotoImage, NW, Tk, Canvas from tkinter.constants import ALL -import math -from os import path -import atores -from fase import Fase, EM_ANDAMENTO, VITORIA +import atores from atores import PassaroVermelho, PassaroAmarelo, Porco, Obstaculo +from fase import Fase, EM_ANDAMENTO, VITORIA ALTURA_DA_TELA = 600 # px From a3764ff46338cba14da493fbc1b706dc635392a8 Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Thu, 20 Feb 2020 00:48:04 -0300 Subject: [PATCH 2/9] criado o metodo cumprimentar --- oo/pessoa.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index eb7c0a9c1..ca5254987 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,2 +1,9 @@ class Pessoa: - pass + def cumprimentar(self): + return f'Ola!!!{id(self)}' +if __name__ =='__main__': + p= Pessoa() + print(Pessoa.cumprimentar(p)) + print(id(p)) + print(p.cumprimentar()) + From 668d3ffeca68e51b813eb062a4116590d24dabe0 Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Thu, 20 Feb 2020 01:10:55 -0300 Subject: [PATCH 3/9] criados atributos de instancia nome e idade --- oo/pessoa.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index ca5254987..3d3b46409 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,9 +1,18 @@ class Pessoa: + def __init__(self, nome=None, idade=49): + self.idade = idade + self.nome = nome + def cumprimentar(self): return f'Ola!!!{id(self)}' -if __name__ =='__main__': - p= Pessoa() - print(Pessoa.cumprimentar(p)) - print(id(p)) - print(p.cumprimentar()) + +if __name__ == '__main__': + p = Pessoa('Pedro') + print(Pessoa.cumprimentar(p)) + print(id(p)) + print(p.cumprimentar()) + print(p.nome) + p.nome = 'Josue' + print(p.nome) + print(p.idade) From 31187b056940c71543b0c01e281f1c079308faa7 Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Fri, 28 Feb 2020 14:13:50 -0300 Subject: [PATCH 4/9] criado atributos complexo filhos --- oo/pessoa.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 3d3b46409..9fb7df643 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,18 +1,21 @@ class Pessoa: - def __init__(self, nome=None, idade=49): + def __init__(self, nome=None, *filhos, idade=None, peso=None, sexo=None): + self.sexo = sexo + self.peso = peso self.idade = idade self.nome = nome + self.filhos = list(filhos) def cumprimentar(self): return f'Ola!!!{id(self)}' if __name__ == '__main__': - p = Pessoa('Pedro') + josue = Pessoa(nome ='Josue') + jose = Pessoa(josue, nome='Jose') + print(Pessoa.cumprimentar(p)) print(id(p)) print(p.cumprimentar()) print(p.nome) - p.nome = 'Josue' - print(p.nome) - print(p.idade) + From 8c9af8de28abad96b4d3edab964b8d69afed8581 Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Fri, 28 Feb 2020 14:28:52 -0300 Subject: [PATCH 5/9] criado atributos complexo filhos --- oo/pessoa.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 9fb7df643..1501e8cd1 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,5 +1,5 @@ class Pessoa: - def __init__(self, nome=None, *filhos, idade=None, peso=None, sexo=None): + def __init__(self, *filhos, nome=None, idade=None, peso=None, sexo=None): self.sexo = sexo self.peso = peso self.idade = idade @@ -11,11 +11,15 @@ def cumprimentar(self): if __name__ == '__main__': - josue = Pessoa(nome ='Josue') - jose = Pessoa(josue, nome='Jose') + josue = Pessoa(nome = 'Josue') + jose = Pessoa(josue, nome= 'Josue') + + print(Pessoa.cumprimentar(jose)) + print(id(jose)) + print(jose.cumprimentar()) + print(jose.nome) + print(jose.idade) + for filho in jose.filhos: + print(filho.nome) - print(Pessoa.cumprimentar(p)) - print(id(p)) - print(p.cumprimentar()) - print(p.nome) From 744f5ac015d5b31acbb1038c888c78b9971453a8 Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Fri, 28 Feb 2020 14:37:15 -0300 Subject: [PATCH 6/9] criado e atribuido atributo complexo --- oo/pessoa.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/oo/pessoa.py b/oo/pessoa.py index 1501e8cd1..9beb89034 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -21,5 +21,11 @@ def cumprimentar(self): print(jose.idade) for filho in jose.filhos: print(filho.nome) + jose.sobrenome = 'Silva' + + print(jose.__dict__) + print(josue.__dict__) + + From 3dbe7851ad132e7e229f9f95da85a73bb9352b17 Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Sat, 29 Feb 2020 10:53:45 -0300 Subject: [PATCH 7/9] criado atributo de classe olhos --- oo/pessoa.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 9beb89034..f182bbaca 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,4 +1,5 @@ class Pessoa: + olhos = 2 def __init__(self, *filhos, nome=None, idade=None, peso=None, sexo=None): self.sexo = sexo self.peso = peso @@ -22,9 +23,15 @@ def cumprimentar(self): for filho in jose.filhos: print(filho.nome) jose.sobrenome = 'Silva' - + jose.olhos = 1 print(jose.__dict__) print(josue.__dict__) + Pessoa.olhos = 3 + print(Pessoa.olhos) + print(jose.olhos) + print(josue.olhos) + print(id(Pessoa.olhos), id(josue.olhos), id(jose.olhos)) + From d0f30ef0d08631d36334cf0aab9080840b3c3210 Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Sat, 29 Feb 2020 14:44:32 -0300 Subject: [PATCH 8/9] Inicio exercicio sobre carro. --- oo/carro.py | 24 ++++++++++++++++++++++++ oo/pessoa.py | 20 ++++++++++++-------- 2 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 oo/carro.py diff --git a/oo/carro.py b/oo/carro.py new file mode 100644 index 000000000..f1c647aee --- /dev/null +++ b/oo/carro.py @@ -0,0 +1,24 @@ +""" +Você deve criar uma classe carro que vai possuir +dois atributos compostos por outras duas classes: + +Motor +Direção +O Motor terá a responsabilidade de controlar a velocidade. +Ele oferece os seguintes atributos: + +Atributo de dado velocidade +Método acelerar, que deverá incremetar a velocidade de uma unidade +Método frear que deverá decrementar a velocidade em duas unidades +A Direção terá a responsabilidade de controlar a direção. Ela oferece +os seguintes atributos: + +Valor de diração com valores possíveis: Norte, Sul, Leste, Oeste. +Método girar_a_direita +Método girar_a_esquerda + + N + O L + S +""" + diff --git a/oo/pessoa.py b/oo/pessoa.py index f182bbaca..fdb395a14 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,6 +1,7 @@ class Pessoa: olhos = 2 - def __init__(self, *filhos, nome=None, idade=None, peso=None, sexo=None): + + def __init__(self, *filhos, nome=None, idade=None, peso=None, sexo=None): self.sexo = sexo self.peso = peso self.idade = idade @@ -9,11 +10,17 @@ def __init__(self, *filhos, nome=None, idade=None, peso=None, sexo=None): def cumprimentar(self): return f'Ola!!!{id(self)}' + @staticmethod + def metodo_estatico(): + return 42 + @ classmethod + def atributo_e_metodo(cls): + return f'{cls} - olhos {cls.olhos}' if __name__ == '__main__': - josue = Pessoa(nome = 'Josue') - jose = Pessoa(josue, nome= 'Josue') + josue = Pessoa(nome='Josue') + jose = Pessoa(josue, nome='Josue') print(Pessoa.cumprimentar(jose)) print(id(jose)) @@ -31,8 +38,5 @@ def cumprimentar(self): print(jose.olhos) print(josue.olhos) print(id(Pessoa.olhos), id(josue.olhos), id(jose.olhos)) - - - - - + print(Pessoa.metodo_estatico(), jose.metodo_estatico()) + print(Pessoa.atributo_e_metodo(), jose.atributo_e_metodo()) \ No newline at end of file From b8dcdde3fb98848b9a18d2cd452dd69951c567dd Mon Sep 17 00:00:00 2001 From: jsaleseim Date: Fri, 13 Mar 2020 12:46:12 -0300 Subject: [PATCH 9/9] implementacao da direcao esquerda e direita --- oo/carro.py | 127 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 116 insertions(+), 11 deletions(-) diff --git a/oo/carro.py b/oo/carro.py index f1c647aee..aa7ae80cb 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -1,24 +1,129 @@ + + + """ Você deve criar uma classe carro que vai possuir dois atributos compostos por outras duas classes: -Motor -Direção +1) Motor +2) Direção + O Motor terá a responsabilidade de controlar a velocidade. Ele oferece os seguintes atributos: +1) Atributo de dado velocidade +2) Método acelerar, que deverá incremetar a velocidade de uma unidade +3) Método frear que deverá decrementar a velocidade em duas unidades -Atributo de dado velocidade -Método acelerar, que deverá incremetar a velocidade de uma unidade -Método frear que deverá decrementar a velocidade em duas unidades A Direção terá a responsabilidade de controlar a direção. Ela oferece os seguintes atributos: +1) Valor de diração com valores possíveis: Norte, Sul, Leste, Oeste. +2) Método girar_a_direita +2) Método girar_a_esquerda -Valor de diração com valores possíveis: Norte, Sul, Leste, Oeste. -Método girar_a_direita -Método girar_a_esquerda + N +O L + S - N - O L - S + Exemplo: + >>> # Testando motor + >>> motor = Motor() + >>> motor.velocidade + 0 + >>> motor.acelerar() + >>> motor.velocidade + 1 + >>> motor.acelerar() + >>> motor.velocidade + 2 + >>> motor.acelerar() + >>> motor.velocidade + 3 + >>> motor.frear() + >>> motor.velocidade + 1 + >>> motor.frear() + >>> motor.velocidade + 0 + >>> # Testando Direcao + >>> direcao = Direcao() + >>> direcao.valor + 'Norte' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Leste' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Sul' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Oeste' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Norte' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Oeste' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Sul' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Leste' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Norte' + >>> carro = Carro(direcao, motor) + >>> carro.calcular_velocidade() + 0 + >>> carro.acelerar() + >>> carro.calcular_velocidade() + 1 + >>> carro.acelerar() + >>> carro.calcular_velocidade() + 2 + >>> carro.frear() + >>> carro.calcular_velocidade() + 0 + >>> carro.calcular_direcao() + 'Norte' + >>> carro.girar_a_direita() + >>> carro.calcular_direcao() + 'Leste' + >>> carro.girar_a_esquerda() + >>> carro.calcular_direcao() + 'Norte' + >>> carro.girar_a_esquerda() + >>> carro.calcular_direcao() + 'Oeste' """ +NORTE = 'Norte' +SUL = 'Sul' +LESTE = 'Leste' +OESTE = 'Oeste' + +class Direcao: + rotacao_a_direita_dct={NORTE: LESTE, LESTE:SUL, SUL:OESTE, OESTE:NORTE} + rotacao_a_esquerda_dct = {NORTE:OESTE, OESTE:SUL, SUL:LESTE, LESTE:NORTE} + def __init__(self): + self.valor = NORTE + def girar_a_direita(self): + self.valor = self.rotacao_a_direita_dct[self.valor] + def girar_a_esquerda(self): + self.valor= self.rotacao_a_esquerda_dct[self.valor] + + + + + + +class Motor: + def __init__(self): + self.velocidade = 0 + def acelerar(self): + self.velocidade += 1 + def frear(self): + self.velocidade -= 2 + self.velocidade = max(0, self.velocidade) + +