プログラム的なアイデア
ペンシルパズルにおいては、マスだけでなく、枠線にも着目するものもある。
数独
 マス内の数字に意味あり
スリザーリンク
  枠線に着目 線をひく/ひかない
  枠線個数指定としてマスも意味あり
プログラムで解こうとしたときにデータの管理を
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;
  その他の情報
  ・・・・
};