見出し画像

Scratchで学ぶ!ポリオミノ・パターンの世界~P.T.P.S.チュートリアル編 その1

どうもみなさんこんにちは。C-Watcher開発担当の鈴木です。さて、今回は私が最近Scratchで作って公開したアプリP.T.P.S.(Polyomino Tiling Pattern Simulator)について、その内容や使い方をチュートリアル形式で詳しくご紹介したいと思います。このアプリを使うとポリオミノ(後述)を使ったタイリング模様の繰り返しパターンを生成することができます。例えばデザイナーの方だったら、

「このアプリを使って生成した画像を元に、独自のシームレスなパターンを作って作品化する」

といった活用法があります。しかしその内容や使い方については、アプリの公開ページの説明文やアプリ内のチュートリアルではやや不十分だと感じたので、この場を借りて詳しく説明できればと思っています。

アプリへのリンク(Scratch):
P.T.P.S.(Polyomino Tiling Pattern Simulator)

Scratchとは?

ScratchはMITラボが開発したプログラミング言語で、そのカテゴリーとしてはビジュアルプログラミングと呼ばれています。テキストでコードを打っていくのではなく、色分けされたブロックをドラッグ&ドロップすることで直感的にコーディングできます。用途としてはおそらく、というか明白にそれは教育目的で、子どもたち(8~16歳くらい)を主な対象にしているのですが、思いつきでwebアプリを簡単に作成、かつ公開できるというその利便性ゆえに私もときどき使わせてもらっています。

Scratchの画面

P.T.P.S.とは?

P.T.P.S. (Polyomino Tiling Pattern Simulator)とは、上述のように私が先頃Scratchで作って公開したアプリで、ポリオミノと呼ばれる図形のタイリング模様の繰り返しパターンを生成することができるアプリです。

P.T.P.S.

このアプリは(他のScratchアプリがそうであるように)、「クリエイティブ・コモンズ 表示 – 継承 2.0」 (CC BY-SA 2.0)という国際的なライセンス方式が適用されており、どなたでも営利、非営利を問わずシェア、リミックスしたり、ご自身の作品に組み込んだりできます。(ただし、その際は原作者のクレジットを表記する等の条件があります。)

当該ライセンスについて詳しく知りたい方は下記リンクを参照してください。

ポリオミノとは?

ポリオミノ

では、ポリオミノについて簡単にご説明します。ポリオミノとは、ドミノやテトリスでおなじみの複数の正方形を辺でつなげた図形のことをいいます。この図形を使って平面を敷き詰める(タイリング)といった類の問題が広く共有されてきました。P.T.P.S.はポリオミノを使った繰り返しパターン(タイリング模様)を作成することができるのですが、より正確には単一ポリオミノの平行移動による敷詰めというジャンルです。例えばテトリスなら、4つの正方形からなるポリオミノ(この場合はとくにテトロミノと呼ばれる)が多種登場しますが、その中から一種類だけを使って平面を敷き詰めようというものです。しかもその際に図形を「回転」、「裏返す」といった操作はできず「平行移動」のみが許されています。

今から16年くらい前(2007年頃)に私はふとその問題に出会う機会があり、そのとき独自にアルゴリズムを開発しました。それからしばらくの間秘密の本棚に眠っていたそのアルゴリズムをこの度引っぱり出し、今回のアプリに使ってみたというわけです。(当該アルゴリズムについて新規性、進歩性を主張するつもりは毛頭ありません。)

ちなみに、複数の立方体を面でつなげた図形をポリキューブといって、当該問題を2次元から3次元に拡張した3D空間を単一のポリキューブの平行移動で充填させるといった問題があります。そちらの解決法ついても当該アルゴリズムの応用で容易に得ることが可能です。しかし、現在の私のプログラミングスキルでは到底実装はできないので、その解決法を利用したアプリのようなものは現状手つかずといった扱いになっています。

ポリキューブ

(次回へ続く)

いいなと思ったら応援しよう!