Projeto 2 - Mini-game com Turtle
Desafio proposto na aula 16 do módulo 3 do curso de Pythonista Autodidata.unknown
python
a year ago
4.5 kB
10
Indexable
# Importando o módulo tartaruga from turtle import Turtle # Criando a tartaruga mov = Turtle() # Definindo a velocidade de movimentação mov.speed(1) print('=-=' * 30) print('######## DESAFIO DO DESENHO COM MÓDULO TURTLE! ########'.center(80)) print('=-=' * 30) print('-> Para mover para frente digite -> "F", para mover para trás digite-> "T"!') print('-> Para indicar a distância informe um número inteiro que será medido em pixels!') print('-> Para rotacionar, primeiro digite "S" para sim ou "N" para não!') print('-> Caso for rotacionar, digite quantos grau informando um número inteiro!') print('=-=' * 30) while True: # Informe em qual direção ocorrerá a movimentação: para frente ou para trás! # Para isso deverá ser digitado F ou T, caso contrário ocorrerá uma validação! direcao = str(input('Deseja mover para frente ("F") ou para trás ("T")? ')).strip().upper() if direcao not in 'FT': print('ATENÇÃO! Digite "F" para mover para frente ou "T" para mover para trás!') direcao = str(input('Deseja mover para frente ("F") ou para trás ("T")? ')).strip().upper() distancia = int(input('Qual a distância em pixels a percorrer? ')) # Caso o usuário deseje rotacionar deverá digitar "S" (sim), caso contrário "N" (não) # Perceba que na sequência será validado a digitação para então continuar! rotacionar = str(input('Rotacionar para esquerda ou direita? [S/N] ')).strip().upper() if rotacionar not in 'SN': print('ATENÇÃO! Digite "S" para sim e "N" para não!') rotacionar = str(input('Rotacionar para esquerda ou direita? [S/N] ')).strip().upper() # Se o usuário desejar rotacionar deverá ser informado quantos graus digitando um valor inteiro! if rotacionar == 'S': sentido = str(input('Deseja rotacionar para Direita "D" ou Esquerda "E"? [D/E] ')).strip().upper() if sentido not in 'DE': print('ATENÇÃO! Digite "D" para direita e "E" para esquerda!') sentido = str(input('Deseja rotacionar para Direita "D" ou Esquerda "E"? [D/E] ')).strip().upper() graus = int(input('Digite quantos graus deverá rotacionar: ')) if direcao == 'F' and rotacionar == 'S': if sentido == 'D': mov.right(graus) mov.forward(distancia) else: mov.left(graus) mov.forward(distancia) elif direcao == 'F' and rotacionar == 'N': mov.forward(distancia) elif direcao == 'T' and rotacionar == 'S': if sentido == 'D': mov.right(graus) mov.backward(distancia) else: mov.left(graus) mov.backward(distancia) elif direcao == 'T' and rotacionar == 'N': mov.backward(distancia) # Informe 's' para sim, continuar ou 'n' para não continuar a movimentação! # O strip elimina possíveis espaços digitados e o Upper transforma a letra digita em maiúscula. continua = str(input('Digite "S" para continuar ou "N" para parar: ')).strip().upper() # Aqui acontece uma validação sobre o que fora digitado, se for algo diferente de "S" ou "N" será solicitado correção. if continua not in 'SN': print('ATENÇÃO! Digite "S" para "sim" continuar ou "N" para "não", então parar!') continua = str(input('Digite "S" para continuar ou "N" para parar: ')).strip().upper() # Caso o usuário informe "N", ou seja, que seja parar esse if é executado e acontece o break no while. if continua == 'N': break print('=-=' * 30) print('FIM DO JOGO... Volte Sempre!'.center(80)) print('=-=' * 30) ''' ##### DESAFIO 2 - DESENHANDO UM QUADRADO PASSANDO INSTRUÇÕES PARA A TURTLE! ##### # Uma das possibilidades para conseguir fechar um quadrado é seguinte percurso: Obs. 1: vamos fixar a movimentação em 150 pixels, portanto sempre que perguntar a distância assuma 150 como valor! Obs. 2: Até fechar o quadrado sempre responda sim para a pergunta se deseja continuar! - Mova para frente 150px sem rotacionar; - Mova para frente 150px rotacionando para direita 90°; - Mova para frente 150px rotacionando para direita 90°; - Mova para frente 150px rotacionando para direita 90°; - Pronto pode clicar em "N" para não continuar, está fechado o quadrado! '''
Editor is loading...
Leave a Comment