- 締切済み
スリザーリンクの問題をランダムに生成するプログラム
題名のようなプログラムをC言語で書きたいと思います。 日本語としておかしいところがあったらすいません。 方針としては下図のような時計回りの矢印ブロックをつくり → ↑ ↓ ← 矢印の元を-1、1矢印の先を1としてつながったところが足して0になってループと判定し、これをどんどんつなげていって最終的に大きなループを作ろうと考えています。 スリザーリンクの問題として入り組んだループが生成されるように、二度目選択したときにはループを削除して凹凸やへこんだループを実現して、そのあと点対称、線対称にヒントとなる数字を書き入れていきたいと思います。 まず選択したマスを格納する配列と、矢印の向き(-1,1の情報)を格納する配列、ヒントの数字を格納する配列を用意してランダムに矢印のブロックを生成するプログラムを書いたのですが、凹凸やへこんだループのためのループ削除で複数のループができるようになってしまいました。 これを回避する条件など問題は山積みですが。 他にもっと良い方法やこうしたほうがいいよといったロジックなどあればご教示お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ky072
- ベストアンサー率60% (85/140)
回答No.1
お礼
ご指摘ありがとうございます。 辺のマスはなくして、「辺は0と1の境界」のほうが自分にとってもわかりやすいですね 一度書き直してみたいと思います。ありがとうございます。