We will entertain your mind, enhance your brain, expand your lifestyle.

異路同帰

13番目のパズルがほぼ出来上がった。

色を引きずる

このパズルでは、絵の具で複数の線を描いていく。線が交差した場合、後の線は元ある線の色を少し引きずっていく。

複数の色で線を交差させていくと、線の向きや順番で結果が変わっていく。提示されている絵と同じ結果となるよう線を引いていくパズル。

今回のシェーダーは、1つのストロークを1つのマテリアルで処理する。これを実現するためスクリプトでは、ユーザが描画するストロークの色・位置・方向を順番に記録する。そののちどの様に色が混じっているか複数のグラデーションとしてシェーダーに指示する。

迷う判定

全体のロジック出来上がり、最後に、正解の手順となったか判定するところで問題発生。ユーザ操作にしたがって引かれた線の色とむきを順番に記録して、正解パターンと比較すれば良いと考えていたが、そう簡単にはいかなかった。

その原因は、違う手順でも同じ結果となるパターンがあるため。具体的には下記の3つのケースがそれ。

  • a) 最初の線(どちら向きに描いても結果は同じ)
  • b) 同じ色の交差(色が混じらないので向きや順番に関係しない)
  • c) 連続して同じ方向に描画した線(下の図の様な場合、2本目と3本目はどちらが先でも同じ結果)

とりあえず、正解パターンについて b,c のケースにならない様に作成した。aについては避けようがないので、1本目の描画は向きを無視する判定とした。