プログラム的なアイデア
ペンシルパズルにおいては、マスだけでなく、枠線にも着目するものもある。
数独
マス内の数字に意味あり
スリザーリンク
枠線に着目 線をひく/ひかない
枠線個数指定としてマスも意味あり
プログラムで解こうとしたときにデータの管理を
Masu masuTable[3,5];
Yokosen yokosenTable[4,5];
Tatesen tatesenTable[3,6];
として行うかも。
だが、テーブルが3つもあって多い。
masuTable[2,1]の上の横線データはどこ(=yokosen[?,?])を見ればいいのだっけ?とかちょっと複雑。
そこで、アイデアとしては、
Data dataTable[7,11]; として、
マスメも横線も縦線もそして十字部分も全部、いっしょにつっこんじゃえばいいじゃん。というもの。
↓図の下側を参考のこと
テーブルが1個だし、
data[3,5]のマスから、その上の横線へは
縦座標を 1個ずらしdata[2,5]にアクセスすればいいわけだし、その点簡単。
縦横の偶奇をみれば、マスなのか縦線なのか何なのか、わかる。
なんならDataの中にその情報も、前処理で、持たせればいい。
enum 種類
{
マス、
縦線、
横線、
十字
};
struct Data
{
種類 kind;
その他の情報
・・・・
};