C#で迷路を自動生成するコードを書いていて、迷路の内壁にあたる部分をつくっているのですが
詰まってしまいました。今はenumを使って上下左右に線が伸びて壁になるようにしているところで、そこを
どうやって作成していくべきなのかが分からなくなってしまいました。
解法またはヒントでもいいので教えてください。
以下のコードは内壁の部分の現在の状況です。
外枠の部分は作成できているのでそこは省略します。
考えている仕様ですが、縦のラインと横のライン、出入り口の数(最小2、最大4)をそれぞれテキストボックスに数値を入力することでその数値に応じた大きさの迷路が作成されるようにしようとしています。
どういうことかというと、横のマスの部分に20、縦のマスの部分に25を入力すると横20マス、縦25マス分の迷路が自動生成される。というような感じで外枠の部分を作っていてそれに応じて中の壁も作られていくというふうにしたいのです。
private void utikabe(object sender, EventArgs e) { Random rn = new Random(); //描画先とするImageオブジェクトを作成する Bitmap bmp = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height); //ImageオブジェクトのGraphicsオブジェクトを作成する Graphics g = Graphics.FromImage(bmp); for (int i = 1; i <= 50; i++) { int iRandom = rn.Next(1, 4); switch (dir[i]) { case 方向.上: g.DrawLine(Pens.Black, 0, 0, 0, 20); break; case 方向.右: g.DrawLine(Pens.Black, 0, 0, 20, 0); break; case 方向.左: g.DrawLine(Pens.Black, 0, 0, 0, -20); break; case 方向.下: g.DrawLine(Pens.Black, 0, 0, -20, 0); break; } } //リソースを解放する g.Dispose(); //PictureBox1に表示する pictureBox1.Image = bmp; } コード
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。