問題タブ [piet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
esoteric-languages - Piet で DP と CC はどのように変化しますか?
仕様によると、
黒色のブロックとプログラムの端は、プログラムの流れを制限します。Piet インタープリターが黒いブロックに移動しようとしたり、エッジから離れようとすると、停止し、CC が切り替えられます。次に、インタープリターは現在のブロックから再び移動しようとします。2 回目に失敗すると、DP は時計回りに 1 ステップ移動します。これらの試行が繰り返され、試行ごとに CC と DP が変更されます。8 回試行してもインタプリタが現在のカラー ブロックを離れられない場合、抜け道はなく、プログラムは終了します。
私の読み方が間違っていない限り、これはフィボナッチ数列の例の動作と矛盾しています。
(出典: http://www.dangermouse.net/esoteric/piet/samples.html )
具体的には、左端に当たったときに DP が (0,3) ((0,0) は (上、左) である) で左に曲がるのはなぜですか? この時点で、DP と CC の両方が LEFT であるため、私の読みでは、シーケンスは次のようになります。
- (0,4) のエッジから外れてブロックを離れようとして (そして失敗しました)、
- CCをRIGHTに切り替え、
- (0,2) のエッジを外れてブロックを離れようとします (そして失敗します)。
- DPをUPにローテーションし、
- (1,1) の白いブロックに入って、(1,2) のブロックを出ようとする (そして成功する)
トレースによって示される動作は、DP が完全に回転し、CC が LEFT のままになっているようです。
私は何を誤解しましたか?
esoteric-languages - Pietプログラミング言語で定数はどのように表されますか?
Piet プログラミング言語に近づいています。これまでのところ、コマンドがどのように表現されているかは理解できましたが、定数がどのように表現されているかは理解できません。、があり、in(char)
これらは役立つ可能性がありますが、その方法がわかりません。out(char)
in(num)
out(num)