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
11
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