狠狠撸

狠狠撸Share a Scribd company logo
骋鲍滨/闯补惫补组
はじめに
?動機
 ーどんなに小さなものでもいいから
   とりあえずなにか一つ形にしよう!
 -数学パズル好きだから数学パズルを解く
   ツールを作ろう
?使用言語、環境、ライブラリ
 Java、Eclipse+Visual Editor
 主にjavax.swingを使用
目標
?多機能ナンプレ解析ツール
?解析方法の選択ができる
?より早く、よりきれいに
?より使いやすいもの
ナンプレとは

?Number Placeの略
?いわゆる「数独パズル」
ルール
?空いているマスに1~9のいずれかを入
 れる
?縦横、太線で囲まれた3x3正方形に同じ
 数字が存在してはいけない
考え方
ナンプレは空白を埋めるパズル
→空白に入る可能性のある数字を集合とし
 て持ち、それが一つに定まれば確定
この集合をcell[i][j]として管理!!


1,2,3,
×   ×
4,5,6,
7,8,9
×   ×
アルゴリズム
1.データ(初期値)の読み込み
2.空白の数だけ、マスに入る可能性の数字
  の集合を用意
3.空白マスの縦横正方形をチェックし、数
  字を集合から削除
4.集合のサイズが1になったら(空白マスに
  入る数字が特定できたら)確定
5.空白マスがなくなるまで3~4を繰り返す
実际に作ってみた。
结果
     初期配置の多い简単な问题
反省点
?解析方法がまだまだ甘い
 →他にも解析方法があるはず!!
?リセットボタンほしい
?解析方法追加するなら解析方法選べたほ
 うが便利
解析方法の追加
例


            空白マスに入る
            可能性ある数字の集合
            A={1,6}
            B={4,6,7}
            C={1,4,6,7}
            D={2,4,5,6}
A   B   C   E={1,4,5,6}
    D   E   F={1,4,5,6}
        F
解析方法の追加
1.ある空白マスの集合のある要素がその空白マ
  スの縦列の他の空白マスの集合がもっていな
  いか確認する。
2.持っていなければその要素がその空白に入る
  数字である。
3.横列、正方形でも確認する。
実际に追加してみた。
结果
     前回の简単な问题
结果
     初期配置の少ない难しい问题
反省点
?簡単な問題は解けたけどまだまだ人が解
 くのと同レベル

→プログラムならではの方法で解かなけれ
 ば???




より高度な解析方法を!!
高度な解析 advanced()
?マスに入る数字が一意に定まらない時に
 使用
?可能性の集合の1つ1つを入れてみた場
 合を調べるメソッドadvanced()を作成
?数字の重複や間違いがでた時はreturnで
 抜け、可能性の集合からその要素を削除

?再帰で回せば解けない問題はない!!
というわけで
   また追加してみた。
结果
     前回の难しい问题
反省点
?配色がなんかダメ。答えが見にくい。
?出力部分、見た目を改良したい。
?解析のスピードに問題はなさそう。
というわけで改良してみた。
完成形
      ?補色等より配色、
       フォントは

      正方形:白、薄紫

      初期値:黒、太字

      答え:水色、太字
つまづいたところ
?String型の比較を
 if(str == “abc”)で行っていた

※正しくはeqauls()というメソッドで比較
つまづいたところ2
ArrayListのremoveメソッドで集合から要
  素を削除する時、nという要素を消そう
  として
~.remove(n);
  としていた。正しくは
~.remove(Integer (n));
  とするべきだった。

※~.remove(n);はn番目の要素を消す処理
つまづいたところ3
高度な解析のために新しくcell2を作り、
 cell2[i][j].value = cell[i][j].value;
 advanced(cell2); //高度な解析の処理へ

としたらデータの変更结果がcell2だけでなく
 cellにも反映されてしまった。

※複製はcloneメソッドを使わければいけない
→クラスがアドレスを参照してるから
工夫したところ
?正方形のチェック方法
   縦や横の場合
for(int i = 0; i < 9;i++){
   for(int j = 0; j < 9;j++){
       //x check
       for(int x = 0;x < 9;x++){
           if(cell[i][j].hoge == cell[x][j].hoge){
           ……..
           }
       }
       //y check
       for(……..
工夫したところ
正方形の場合
for(int i = 0; i < 9;i++){
   for(int j = 0; j < 9;j++){
        //square check
        for(int a = (i/3)*3;a < (i/3)*3+3;a++){
            for(int b = (j/3)*3;b < (j/3)*3+3;b++){
                 if(cell[i][j].hoge == cell[a][b].hoge){
                     ….


こうすることで各マスの属する正方形の
    全てのマスをチェックできる!!
工夫したところ2
?幅優先探索or深さ優先探索

ナンプレは1つのマスが決まると連鎖的に
 他が決まっていく
→1つ決まる=縦横正方形の全ての空白マ
 スの集合に影響するから

よって幅優先探索が適していると判断
まとめ
?目標は達成できたと思う
?問題の入力は面倒だが
 こればかりはしょうがないと判断
?製作期間約一カ月ほど

More Related Content

What's hot (9)

PDF
Chap12 4 appendix_suhara
sleepy_yoshi
?
PDF
命令フ?ロク?ラミンク?から関数フ?ロク?ラミンク?へ
Naoki Kitora
?
PDF
VBAで数値計算 09 掃き出し法
Katsuhiro Morishita
?
PDF
アルゴリズム+データ构造勉强会(2)
noldor
?
PPTX
机械学习
ssusere8ae711
?
PPTX
尝颈苍辩ことはじめ
Shoichi Yasui
?
PDF
統計的因果推論 勉強用 isseing333
Issei Kurahashi
?
Chap12 4 appendix_suhara
sleepy_yoshi
?
命令フ?ロク?ラミンク?から関数フ?ロク?ラミンク?へ
Naoki Kitora
?
VBAで数値計算 09 掃き出し法
Katsuhiro Morishita
?
アルゴリズム+データ构造勉强会(2)
noldor
?
机械学习
ssusere8ae711
?
尝颈苍辩ことはじめ
Shoichi Yasui
?
統計的因果推論 勉強用 isseing333
Issei Kurahashi
?

Similar to ナンプレ解析ツール (20)

PDF
第2回 メドレー読書会
Toshifumi
?
PDF
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
Preferred Networks
?
PPT
タダで始めるテストファースト入門 ~ C# Express + NUnit
Yasuhiko Yamamoto
?
PDF
Processing
Akifumi Nambu
?
PDF
130323 slide all
ikea0064
?
PDF
Material
_TUNE_
?
PPTX
Programming Haskell Chapter 11 切符番号選び
dekosuke
?
PPTX
Analyze by StatsModels or Numpy
Toshiki NOGUCHI
?
PPTX
摆顿尝轮読会闭骋蚕狈と関连研究,世界モデルとの関係について
Deep Learning JP
?
PDF
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
?
PDF
补迟迟别苍迟颈辞苍冲颈蝉冲补濒濒冲测辞耻冲苍别别诲冲苍颈辫蝉17冲论文绍介
Masayoshi Kondo
?
PPTX
関数型言语&补尘辫;形式的手法セミナー(3)
啓 小笠原
?
PPT
6 Info Theory
melvincabatuan
?
PPTX
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
Deep Learning JP
?
PPTX
Pythonとdeep learningで手書き文字認識
Ken Morishita
?
PDF
(搁耻产测使いのための)厂肠补濒补で学ぶ関数型プログラミング
Ouka Yuka
?
KEY
Clojure programming-chapter-2
Masao Kato
?
PDF
プログラミングコンテストでの动的计画法
Takuya Akiba
?
PDF
驰补尘补诲补颈.搁デモンストレーションセッション
考司 小杉
?
PPTX
颁#のすばらしさを语る会用
Hideaki Kazaoka
?
第2回 メドレー読書会
Toshifumi
?
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
Preferred Networks
?
タダで始めるテストファースト入門 ~ C# Express + NUnit
Yasuhiko Yamamoto
?
Processing
Akifumi Nambu
?
130323 slide all
ikea0064
?
Material
_TUNE_
?
Programming Haskell Chapter 11 切符番号選び
dekosuke
?
Analyze by StatsModels or Numpy
Toshiki NOGUCHI
?
摆顿尝轮読会闭骋蚕狈と関连研究,世界モデルとの関係について
Deep Learning JP
?
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
?
补迟迟别苍迟颈辞苍冲颈蝉冲补濒濒冲测辞耻冲苍别别诲冲苍颈辫蝉17冲论文绍介
Masayoshi Kondo
?
関数型言语&补尘辫;形式的手法セミナー(3)
啓 小笠原
?
6 Info Theory
melvincabatuan
?
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
Deep Learning JP
?
Pythonとdeep learningで手書き文字認識
Ken Morishita
?
(搁耻产测使いのための)厂肠补濒补で学ぶ関数型プログラミング
Ouka Yuka
?
Clojure programming-chapter-2
Masao Kato
?
プログラミングコンテストでの动的计画法
Takuya Akiba
?
驰补尘补诲补颈.搁デモンストレーションセッション
考司 小杉
?
颁#のすばらしさを语る会用
Hideaki Kazaoka
?
Ad

Recently uploaded (9)

PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PPTX
色について.pptx .
iPride Co., Ltd.
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
PPTX
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PPTX
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
色について.pptx .
iPride Co., Ltd.
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
Ad

ナンプレ解析ツール