準結晶

http://ci.nii.ac.jp/naid/110007226732
これ読んで誰か正方形と正三角形をランダムに敷き詰めるゲームを作ってください。
混ぜるほど高得点。整数と√3の整数倍の和で表される頂点座標を整数4つで管理してそれら同士の重なり判定なんかが必要です。


ローカルしか見ないと破綻するな。難しい

これと比較http://www.spring8.or.jp/en/news_publications/publications/scientific_results/soft_matter/topic10
とりあえず新たに■か▲を追加するとき、その頂点が既存の全てのタイルの内側にないことのチェック、および既存の頂点すべてが新規のタイルの内側にないことをチェックする処理で作った。N^2なんで重い。セルリストなどの処理が必要。
当然ながらコード中では実数は使わず整数演算のみ。a+sqrt(3)b の正負は if(a*a>3*b*b)で判定できる。

オマケ:gnuplotで上の図を書く

四角は

0 0
1 0

0 1
1 1

(二行以上改行)

1 1
2 1

1 2
2 2

などして

set pm3d
set view 0,0
splot -1, "data" using 1:2:(0) w l

三角は四角の二点を同一にする。

追記

もっと大きいのを作ってみた。タイル一万個。