Pregunta

De acuerdo con la especificación,

  

bloques de color negro y los bordes del programa restringen el flujo del programa. Si los intentos de interpretación Piet se muevan en un bloque negro o de un extremo, se detuvo y el CC se alterna. El intérprete entonces intenta mover de su bloque actual de nuevo. Si falla por segunda vez, el DP es hacia la derecha dado un paso. Estos intentos se repiten, con el CC y DP siendo cambiadas entre los intentos alternativos. Si después de ocho intentos, el intérprete no puede salir de su bloque de colores actual, no hay manera de salir y las termina el programa.

A menos que estoy leyendo de forma incorrecta, esto está reñido con el comportamiento de la sucesión de Fibonacci ejemplo aquí: http://www.dangermouse.net/esoteric/piet/fibbig1.gif (a partir de: http://www.dangermouse.net/esoteric/piet/samples.html )

En concreto, ¿por qué la DP a la izquierda en (0,3) ((0,0) siendo (arriba, izquierda)) cuando golpea el borde izquierdo? En este punto, tanto DP y CC se quedan, así, por mi lectura, la secuencia debe ser entonces:

  1. Remate (y fallan) para dejar el bloque yendo fuera del borde, (0,4),
  2. Activar CC a derecha,
  3. Intento (y fallar) para dejar el bloque por ir fuera del borde en (0,2).
  4. Rotar a DP UP,
  5. Remate (y tener éxito) para dejar el bloque en (1,2) mediante la introducción de la manzana blanca en (1,1)

El comportamiento indicado por la traza parece ser que DP se gira hasta el final, dejando CC a la izquierda.

Lo que tengo no he entendido bien?

¿Fue útil?

Solución

Su análisis parece correcta; la muestra está libre de errores. El bloque blanco en (1,1) debe ser negro. Esto se puede comprobar por el acaparamiento de la imagen de la muestra y ejecutarlo.

Tenga en cuenta que al menos tres de los intérpretes enlazado desde la página de DMM son con errores - Marc Majcher de está marcado como tal, poligonales y salidas correctamente de Sylvain Tintillier pero cambia el significado de en y posada de la especificación ( esta es una versión libre de errores), y PietDev atraviesa incorrectamente bloques de color.

EDIT: otros bloques de color blanco, probablemente, también tienen que ser de color negro, por ejemplo, el bloque en (6,3).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top