Muitos de vocês provavelmente já ouviram falar do famoso programa Turtle Graphics, inicialmente popularizado pelo Logo. Esse desafio é implementar um programa Turtle Graphics no seu idioma preferido.
Regras:
O piso deve ser uma diagonal com as dimensões inseridas pelo usuário através de std-in no formulário
x/y
, representando o comprimentox
ey
, respectivamente.x
não pode ser superior a 20 ey
não superior a 45,Quando a caneta está no estado inativo, ela deve desenhar o quadrado (a coordenada x / y) que a tartaruga deixa e o quadrado em que a tartaruga entra. Isso é o que aconteceria na vida real, e é isso que o seu programa deve fazer.
Posição inicial e o sentido da tartaruga devem ser introduzidas pelo utilizador, sob a forma
x,y,d
, ondex
ey
são as posições de X e Y-eixo, respectivamente, ed
é o sentido, inserido comoU
,D
,R
, ouL
(para cima, para baixo, para a direita e esquerda, respectivamente).Você deve parar a tartaruga e exibir uma mensagem de erro se ela bater na parede. Em outras palavras, a tartaruga não pode atravessar a parede.
A tartaruga deve incluir estes comandos:
RESET - Redefine o quadro para branco - a tartaruga volta à posição e direção inicial.
DRAW e ERASE - Esses comandos definem a tartaruga para desenhar e apagar, respectivamente.
ACIMA e ABAIXO - Esses dois comandos definem a posição da ferramenta ativa (caneta ou borracha) para cima e para baixo, respectivamente.
DIREÇÃO x - Este comando gira a tartaruga para qualquer direção Norte, Nordeste, Leste, Sudeste, Sul, Sudoeste, Oeste ou Noroeste, representados como dígitos de 1 a 8, com Norte (acima) sendo 1, Nordeste sendo 2 ...
FORWARD xx - Avança os quadrados da tartaruga xx; FORWARD 15 avança a tartaruga 15 quadrados. Se a tartaruga estiver de frente para N, E, S, de W, ela desenhará
x
quadrados somente nessa direção. Se a tartaruga estiver voltada para NE, NW, SE ou SW, ela desenharáx
quadrados nas duas direções; ou seja, no FORWARD 1, enquanto enfrenta NE, ele desenhará o seguinte:X X
DISPLAY - Exibe o quadro, usando
X
para quadrados preenchidos (coordenadas x / y) e um espaço em brancopara quadrados vazios.
POSIÇÃO - Imprime a coordenada x / y da tartaruga no quadro.
SETPOS xyd - Define a tartaruga na direção voltada para a coordenada x / y
d
, usando a mesma notação que o comando DIRECTION.PARAR - Exibe o quadro e encerra o programa após o usuário inserir o personagem
~
.
Comandos de exemplo:
DIREÇÃO 2 FRENTE 1 DIREÇÃO 4 FRENTE 1:
X X X
DIREÇÃO 2 FRENTE 1 DIREÇÃO 4 FRENTE 4:
X X X X X
DIREÇÃO 3 FRENTE 5:
XXXXX
Este programa usará regras padrão de pontuação de código atômico-golfe para tentar permitir que linguagens de programação não esotéricas, como Java e C ++, concorram.
A versão 1 está aqui . Ele não exigia a entrada do usuário do tamanho da placa e do ponto inicial da tartaruga, nem exigia movimentos diagonais.