chevron_left

メインカテゴリーを選択しなおす

cancel
みろく
フォロー
住所
未設定
出身
未設定
ブログ村参加

2019/04/29

arrow_drop_down
  • エクセルでナンプレを自動化してみた!

    前回はピクロスの最初の工程を自動化してみたのですが、しているナンプレのゲームがすべて終わってしまったので、 似ている遊びでナンプレを自動化してみたらどうだろうと思ったので、エクセルで作ってみました。 この問題で試してみました。 まずナンプレと言えば、横・縦、3×3の枠で同じ数字が重ならないようにするゲームですが、 それぞれ横と縦と3×3でどの数字が使用されているかを調べていきます。 これが横の使用されている数字を表にしたものです。 最初は関数で引っ張っていたのですが、数式が邪魔だったので、マクロで自動入力するようにしました。 これが縦に使用されている数字を表にしたものです。 これは3×3の枠で使用されている数字を表にしたものですが、1 2 34 5 67 8 9と枠を順番付けしてそれを1列に並び変えています。 次に上の3つを使って、9×9の計81個のマス一つ一つにどの数字が入る可能性があるかを計算していきます。 そのために、上の表で同じマスの場所がすべて空白の箇所を調べて下の表に反映させました。 1つのマス毎の入る可能性のある数字を調べることが出来たので、 次はこの中から1つしか数字が入らない箇所を見つけます。 まず1マス毎を見ていきます。 例えば、「12」の箇所が 1 になっています。上の表を見ると「12」の列は 4 しか数字が入らないことが分かりました。 このようにして、1つしか入る可能性がない箇所を見つけ、 に入力していきます。 他にも条件として、1マス毎だけでなく、行ごと、列ごと、3×3の枠ごとにも可能性を見つけていきます。 これが行ごとの表です。 これが列ごとで、 これが、枠ごとになります。 全体がこんな感じです。 右下の方にある、青っぽい枠をクリックすると、サーチを開始してくれます。 このように自動化できたのですが、一つ問題点が出てきてしまいました。

  • またしょうもないものを作ってみた!

    最近ピクロスをすることにハマっているのですが、どうしても嫌いな工程があります。 それは、最初の上下、左右から重なる部分を見つける時です。 上から1,2,3,4,5・・・、下から1,2,3,4,5・・・と数えて重なる部分を見つけて黒塗りぬするのが慣れていないので、ぱっと見でこの行が重なる部分があるのか分からないので、重なりそうな時は数えてみて、結局重なる箇所がないと面倒なことしたと思ってしまいます。 そこで最初の工程だけは楽しようと思い、エクセルで自動で重なる箇所を表示してくれるものを作りました。 遊んでいるピクロスは基本的には15×15のマスが多いので、今回はそれをベースに作りました。 上と左の数字は手入力をしないといけませんが、そこをまず入力します。 そこで左上の青いボタンを押すと、このマスの右側にある この4つの枠にそれそれ「左上:縦の上から」「右上:縦の下から」「左下:横の左から」「右下:横の右から」1,2,3,4,5・・・と数えた場合を入れてくれます。 まず4つの上側の縦の数字の入力ですが、 このように左は上から数えた場合、右は下から数えた場合を表示してくれます。 この中の数字は、あとで重なっている箇所を判断するために、1,2,3,4,5と順番にしています。 マクロはこのような感じで入力しています。 独学で勉強して入力したので、実際使いこなしている人からすれば無駄な箇所が多いと思います。 この左右の枠で同じ数字で重なっている箇所を引っ張ってきます。(ここはマクロでなく、関数で引っ張ってきました) そうするとこの箇所が重なっていると分かります。 次に4つの下側の横の数字の入力ですが、 左は左から数えた場合、右は右から数えた場合を表示してくれます。 マクロはこんな感じ! 途中で出てくる「For ii = A to B」の「ii」を使うために、マクロの最初のところに「Dim ii As Integer」と書いてあるのですが、自分の中では、「ii」と「jj」くらいまでで止めておきたいのですが、「For」を使う箇所が多かったので、「kk」と「ll」まで使ってしまいました。 こういう場合は、もっと他にいい方法があるのでしょうか・・・。

arrow_drop_down

ブログリーダー」を活用して、みろくさんをフォローしませんか?

ハンドル名
みろくさん
ブログタイトル
みろくのビジネス
フォロー
みろくのビジネス

にほんブログ村 カテゴリー一覧

商用