最新ソースはこちら。
https://github.com/takishita2nd/Picross
とりあえず画面を作ってみます。
クラス構成とか考えずに、
この画像を作成し、これを10×10に並べてみました。
class Program
{
[STAThread]
static void Main(string[] args)
{
PicrossUI picross = new PicrossUI();
picross.Run();
}
}
class PicrossUI
{
private const int setPositionX = 200;
private const int setPositionY = 200;
public PicrossUI()
{
}
public void Run()
{
asd.Engine.Initialize("ピクロス解析ツール", 1000, 800, new asd.EngineOption());
// 下地
var background = new asd.GeometryObject2D();
asd.Engine.AddObject2D(background);
var bgRect = new asd.RectangleShape();
bgRect.DrawingArea = new asd.RectF(0, 0, 1000, 800);
background.Shape = bgRect;
for(int row = 0; row <10; row++)
{
for(int col = 0; col <10; col++)
{
var square = new asd.TextureObject2D();
square.Texture = asd.Engine.Graphics.CreateTexture2D("square.png");
square.Position = new asd.Vector2DF(row * 32 + setPositionX, col * 32 + setPositionY);
asd.Engine.AddObject2D(square);
}
}
while (asd.Engine.DoEvents())
{
asd.Engine.Update();
}
asd.Engine.Terminate();
}
}
数独の時は9×9のマスの画像をあらかじめ作成し、表示させていましたが、
これは数独が9×9で固定だからできるためです。
今回はマスの数が可変になるため、1個のマスを並べて使用したいと思います。
中の線が太く見えますが、マスを小さくすればそんなに気にならないかと思います。
ただ、マスのサイズを小さくしすぎると、このマスの中に後々数字を入れることになるので、あまり小さくできません。
今回は32×32ピクセルで作成しましたが、これが妥当なところでしょう。
考慮すべき所は、数字が入るところと色を塗るところが分かるように中の色を変えた方が良いかもしれません。
そこら辺を考慮した上で、クラス構成を考えてみたいと思います。
まずは、マスのサイズを可変に変更できるように作成していきましょう。