「Piet」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''Piet'''(読み:ぴえと)とは、[[プログラミング言語]]の一つであり、「[[ソースコード]]」が[[テキストファイル]]ではなく[[画像ファイル]]であることが特徴である。
+
'''Piet'''とは[[プログラミング言語]]の一つであり、
 +
[[ソースコード]]」が[[テキストファイル]]ではなく[[画像ファイル]]であることが特徴である。
  
 
==概要==
 
==概要==
* 画像の左上の[[画素]]から右側に[[実行]]される。
+
* 画像の左上の画素から右側に[[実行]]される。
* 「[[ソースコード]]」にはあらかじめ決められた20色を使用する。
+
* 「ソースコード」にはあらかじめ決められた20色を使用する。
 
* 白黒以外の色から別の白黒以外の色に実行位置が移るとき、その色の組み合わせに対応する[[命令]]が実行される。
 
* 白黒以外の色から別の白黒以外の色に実行位置が移るとき、その色の組み合わせに対応する[[命令]]が実行される。
 
* 実行位置の次の色への移動は、一定の法則に従って今の色が四方向に連続している領域の「隅」から行われる。
 
* 実行位置の次の色への移動は、一定の法則に従って今の色が四方向に連続している領域の「隅」から行われる。
9行目: 10行目:
 
* 画像の外側や黒色の画素には移動できない。
 
* 画像の外側や黒色の画素には移動できない。
 
* 前に進めなくなったら基本的に時計回りに曲がろうとし、何回曲がっても次の領域に進めなくなったら終了する。
 
* 前に進めなくなったら基本的に時計回りに曲がろうとし、何回曲がっても次の領域に進めなくなったら終了する。
* [[データ]]の保存や計算はすべて[[スタック]]上で行う。
+
* データの保存や計算はすべて[[スタック]]上で行う。
* [[スタック]]に数値をプッシュする命令を使用するとき、プッシュされる値として命令の実行直前にいた領域の面積が使用される。
+
* スタックに数値をプッシュする命令を使用するとき、プッシュされる値として命令の実行直前にいた領域の面積が使用される。
  
 
ここで述べたのはあくまで概要である。正式な仕様は[http://www.dangermouse.net/esoteric/piet.html 公式ページ]で確認してほしい。
 
ここで述べたのはあくまで概要である。正式な仕様は[http://www.dangermouse.net/esoteric/piet.html 公式ページ]で確認してほしい。
18行目: 19行目:
 
右の画像は、与えられた整数が[[コラッツの問題]]の計算で1になるまでのステップ数を計算するPietプログラムである。
 
右の画像は、与えられた整数が[[コラッツの問題]]の計算で1になるまでのステップ数を計算するPietプログラムである。
  
この[[プログラム]]を起動すると、[[整数]]の入力を求められる。
+
このプログラムを起動すると、整数の入力を求められる。
[[標準入力]]から[[整数]]を入力すると、その整数が[[コラッツの問題]]の計算で1になるまでのステップ数が出力され、
+
標準入力から整数を入力すると、その整数がコラッツの問題の計算で1になるまでのステップ数が出力され、
その後[[改行]]が出力される。
+
その後改行が出力される。
 
 
 
ただし、計算の途中で[[オーバーフロー]]を検知した場合は-1が出力される。
 
ただし、計算の途中で[[オーバーフロー]]を検知した場合は-1が出力される。
  
 
==テクニック==
 
==テクニック==
 
ここで紹介するテクニックは、主にPiet[[初心者]]を対象としたものです。
 
ここで紹介するテクニックは、主にPiet[[初心者]]を対象としたものです。
中級者以降は自分で考え、芸術的な[[コード]]の作成を目指す方がいいでしょう。
+
中級者以降は自分で考え、芸術的なコードの作成を目指す方がいいでしょう。
 
(この記述は中級者以降がここで紹介するテクニックを利用することを禁止するものではありません)
 
(この記述は中級者以降がここで紹介するテクニックを利用することを禁止するものではありません)
  
39行目: 39行目:
 
* そもそも領域の幅を1ピクセルにし、「どっちの隅」と考える必要をなくす。
 
* そもそも領域の幅を1ピクセルにし、「どっちの隅」と考える必要をなくす。
  
また、[[プログラム]]の実行とは関係ない領域を黒で埋めておくと、流れがわかりやすくなるでしょう。
+
また、プログラムの実行とは関係ない領域を黒で埋めておくと、流れがわかりやすくなるでしょう。
  
 
===分岐は2方向にする===
 
===分岐は2方向にする===
72行目: 72行目:
 
* [[画像]]
 
* [[画像]]
 
* [[スタック]]
 
* [[スタック]]
 
== 参考文献 ==
 
{{reflist}}
 
 
{{stub}}
 

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: