【作る】倉庫番パズルの自動プログラム 【解く】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/07/03 08:04ID:/HqS7Sh0自動で生成したり解いたりするには
どのようなプログラムを書けばいいでしょうか?
プログラムの達人から初心者まで
興味のある方は是非参加してください。
0013名前は開発中のものです。
04/07/07 06:30ID:tnHXX92cそんなんツマンネ
ざっと見た感じ17歩くらいか
難易度設定できたら
少しはマシになるかもな
n=ユーザー設定項目クリアに必要な最低歩数;
while(n歩以下で解けたら){やり直し;}
で50歩くらいを設定しとけば
少しは手応えのある面になると思うが
0014名前は開発中のものです。
04/07/07 22:31ID:+MuW8iQV###################
# $ .#
# $ .#
# $ .#
# $ .#
# $ .#
# $ .#
# $ @ .#
# #
###################
0015名前は開発中のものです。
04/07/07 23:43ID:u5TlYlHT手数 * (1 / 正当数) = 難易度
とかの方が良くないか?>>14みたいに手数は多いが同時に正当数がいっぱいある奴は当然難易度は下がると。
0016名前は開発中のものです。
04/07/08 10:03ID:NzVDRXHrさらに荷物の数も要素に加えて難易度を算出すれば
精度が高まる気がする。
0017名前は開発中のものです。
04/07/08 17:17ID:CnPgVFe8http://www.ic-net.or.jp/home/takaken/so/soko/index.html
参考にどうぞ
001812,14
04/07/08 17:49ID:zY8B1Wlv########## ########## ########## ##########
# #### ### ### ########## ##########
## ## # ### ## # ###### # ##########
## # ### # # ## # ##########
## ## ### ##### # # ### ##
### ## ### # ### # # # ### #
### # ### ## # # # ### #
### # ### # # # ###### #
## # ### ### ## # ##########
########## ########## ########## ##########
001912,14
04/07/08 17:50ID:zY8B1Wlv########## ########## ########## ##########
####### ## ## ### #### # # # # # #
### # # ### ### #### # # # # #
## # ### # #### # # #
### # # # ### # ## #
### ## # # #### # # #
### ## # # ### # # ### #
### ### # # ## ## # ### #
#### #### # # # ## #### #### #
########## ########## ########## ##########
002012,14
04/07/08 17:58ID:zY8B1Wlv0021名前は開発中のものです。
04/07/09 00:11ID:4wETax93「倉庫番」の問題の自動作成
http://www.ipsj.or.jp/members/Journal/Jpn/3903/article007.html
ぐぐったらこんなん見つかった
でも会員じゃないと内容読めないみたい
0022概要
04/07/09 03:13ID:sexttaP2普通にプログラミングの能力のある人なら
考え付きそうな事をやってるだけで。
作ってる問題は 盤は8x8, 荷物は3つ。
リンク先にあるように
・問題作成→解を求める→面白さを評価
というステップを繰り返して、詰まらない問題は自動判定して捨てて、
面白い問題がいくつ出来るか、とかやってる。
実験結果の例
作成失敗 2
解なし 153
解ありだかつまらないと自動判定されて捨てられた 287
解ありでプログラムで捨てられなかった 58
合計 500
500回ループさせて残った問題が58。そのうち筆者が実際に解いて
面白いと感じられた問題が13だったと。
0023セックスタップ2
04/07/09 03:24ID:sexttaP2・初期状態は以下のようにする。
########
########
## ##
## ## ##
## ##
########
########
########
########
これに下の3つのパーツをランダムに投下して部屋を作る。
口口 (3*2の空白パーツ)
口口
口口
口口 (2*2の空白パーツ)
口口
口口口 (3*3の空白パーツの中央に壁)
口#口
口口口
部屋のパーツを選ぶ事でつまらない部屋が出来ないようにするらしい。
0024セックスタップ2
04/07/09 03:42ID:sexttaP2(まあ、ある程度考えれば考え付くようなパターン)
それをさけてゴールをランダムに配置。
また同様にある程度考えて荷物と人を配置。
面の作成はそれくらい。
次のステップで幅優先探索で最短の解を求める。
次の評価のステップだが、面白さの評価基準は
(1)手数、(2)荷物の持ち替え回数、(3)遠回り数、(4)部屋の広さ(マスの数)
を基準に判定している。
遠回りというのは、みかけの荷物とゴールの最短距離と
実際に荷物が移動した距離の差、らしい。
(距離は“マンハッタン距離”とか書いてある。)
持ち替えとは今持っている荷物を離し別の荷物を押す事を示す。
荷物の持ち替えが 多く必要な程、面白いと判断されるから、との事。
判定の具体的な数値は
・遠回りせずに解ける
・荷物の持ち替えが3回以下
・解が6手以内
の一つ以上あてはまったら、この問題を捨てる、との事。
考察に置いて、プログラムに実装されているかどうかに関わらず
以下のように述べている。
・荷物の持ち替え数のパラメータは難しさの評価に有効と言える。
・荷物の方向転換。面白い問題では同じ荷物を押し続ける時でも
こまめに方向転換する必要がある傾向が認められる。
・手数。多い方がよいが、単に荷物とゴールの距離が遠いだけの事もある。
・遠回り。発見しやすい遠回りもあるので面白さに直結しない場合もある。
0025セックスタップ2
04/07/09 04:06ID:sexttaP2・ゴールが邪魔。ゴールが隅の邪魔にならない所にあるのは簡単になりやすい。
面白い問題の多くはゴールを荷物が何度も通過する。
・荷物の軌跡が複雑。荷物の軌跡が他の荷物の軌跡と交差したり
絡み合ってると面白い事が多い。しかし軌跡が重ならなくても
面白いものはある。
実際に作成された問題の例
(#:壁, ・:ゴール, $:荷物, ■ゴール+荷物, 人:人)
######## ########
### ### ########
## ## ## ・ ##
# ・ ・$## ##人# ■##
# $人 # ## $ ##
####■# # ## #■ ##
#### # ## ##
######## ########
######## ########
######## ########
## ## ## ・ ■##
##・##$ # ## # #
# ・・$ # ##人$■ #
# #$ # ### ##
# 人 ### ### ##
######## ########
(以上)
0026セックスタップ2
04/07/09 04:27ID:sexttaP2問題を作ればいいかなと思っていたんだけど
著者らはそういう事はしていないですね。
0027名前は開発中のものです。
04/07/09 10:34ID:mw4kM0V81:壁とゴールと人の最終形をランダムで作成。
2:ランダムに一つずつ荷物を引く
3:その形の最短手順を調べる
4:一番手数の多い面を初期配置とする
ってことか。
0028名前は開発中のものです。
04/07/09 10:43ID:mw4kM0V8だとしたら・・・
2:荷物を移動させた全パターンを調べる
3:一番最短の手数の多い面を初期配置とする
のほうが速いかもな。
なんか結局上のと似たようなものになってしまった。
0029名前は開発中のものです。
04/07/10 00:11ID:AGnyOuyl読むに至らない論文は内容に依らず勝ちはない。
0030セックスタップ2
04/07/10 00:19ID:ErOnlOXh0031セックスタップ2
04/07/10 00:20ID:ErOnlOXh0032名前は開発中のものです。
04/07/10 00:23ID:AGnyOuyl0033セックスタップ2
04/07/10 00:26ID:ErOnlOXh0034名無しさん@そうだ選挙に行こう
04/07/11 09:25ID:YxVEQ1eT0035名前は開発中のものです。
04/07/13 07:26ID:gifgN+Yd地球にやさしいアルゴリズム第8回
倉庫番を解くアルゴリズム
http://software.nikkeibp.co.jp/software/download/down04c.html
http://software.nikkeibp.co.jp/software/download/0406/algo0406.zip
さくら美緒、takaken、DeepGreen、疋田輝雄、
どのSolverが最も賢い?
0036名前は開発中のものです。
04/07/27 12:57ID:H2IKfXqP0037名前は開発中のものです。
04/07/28 13:16ID:awaEZIr2初期の荷物の状態を1として、そこから移行できる全状態を2以降の番号をつけて生成し、記憶。
1番からどの番号へ移行できるかも記憶しておく。
続いて、2番の状態から移行できる全状態を生成し、記憶。もちろん重複チェックもさせるので
前の番号へ移行できるような状態も作られる。
次々に生成していって、0番への移行ができるような盤面が現れたら解決方法あり。
1番からの深度チェックをしていって、荷物を何手動かしたかの最短を出す。
ただし確実な最短を出すためには全手数のチェックが必要。
解く方のやり方を想定してみたが、こんな感じなのか?
0038名前は開発中のものです。
04/07/28 23:27ID:OaJflA5G>ただし確実な最短を出すためには全手数のチェックが必要。
幅優先探索でやれば最初に見つかったのが最短手順。
「幅優先探索」で検索してみて。
>もちろん重複チェックもさせるので前の番号へ移行できるような状態も作られる。
? 前と同じ状態に戻る場合は発生させなくてよいと思う。
0039名前は開発中のものです。
04/07/29 01:54ID:EpgRoJimこれは探索の方向を変えたところでどうしようもない。
人間が解いて面白いような規模の問題を解くのは無理っぽい。
で、どうするかというとA*とか分枝限定法とかの下界値を利用して枝刈りするような手法が使われる。
もっともそっちの世界でも倉庫番は難しい問題として知られてるから、良い方法が作れればそれだけで論文書けるかも。
まあ、そこまでいかなくても単純なA*くらいは入れた方が良いと思う。
経路探索にも使える(というかそっちの方が多い)から知ってて損はないし。
004037
04/07/29 05:40ID:4YxMTCfg調べてみたら、双方向探索とか行き詰まりのつぶしとか色々あるようだし。
0041名前は開発中のものです。
04/08/01 03:05ID:Q2G2XU2Zttp://www.ne.jp/asahi/ai/yoshio/sokoban/auto52/index.html
0042名前は開発中のものです。
04/08/01 11:46ID:YiQa0gMzそのプログラムそのものはどこかにないの?
0043名前は開発中のものです。
04/08/01 14:16ID:VNo3uGvtttp://web.archive.org/web/20020609073807/http://www.ne.jp/asahi/ai/yoshio/sokoban/main.htm
自動生成のプログラムそのものはないみたい
0044名前は開発中のものです。
04/08/07 00:22ID:xSvexrpgttp://www.graco.c.u-tokyo.ac.jp/kawai-kaneko-lab.html
0045名前は開発中のものです。
04/08/07 00:35ID:XI18DeZP0046名前は開発中のものです。
04/08/07 10:54ID:t8/IjFAcバイナリじゃないんだ。。。
readme.txtによるとBorland C++ Compilerでビルドせよとのこと。
Borland C++ Compilerは以下から無償で入手できるよ
http://www.borland.co.jp/cppbuilder/freecompiler/bcc55steps.html
メール登録(無料)が必要らしいね。
さすがにユーザー登録的な手続きまでするのは面倒くさいから
気が向いたら自分でチャレンジしてみて。
コンパイル自体は楽勝で誰だって出来るから
0047名前は開発中のものです。
04/08/09 07:53ID:LuKJ2ExA他のパズルの自動プログラムもOK?
0048名前は開発中のものです。
04/08/09 14:22ID:Bm7y7lhRいいんじゃないか?
0049名前は開発中のものです。
04/08/09 18:45ID:BKqxHMzO0050進可 ◆Sinka1my5k
04/08/10 00:00ID:50wtaTHUで、ナンバーリンクとは何かだが、ぐぐれば判るとおりマス目に書かれた同じ数字を
線で結んで全部繋ぐ紙面パズル。だが、これが別解を見つけるのが異様に困難な
パズルだったりする。複数解があるのは紙面パズルとして致命傷。
ショートカットでつなげられる答えがあるなどもってのほかだったりする。
自動で解くプログラムはいくつかあるようだけど、線が通らないマス目がある別解は
見つけられない。なので自分が挑戦してみようかと、こういう経緯。
0051進可 ◆Sinka1my5k
04/08/10 00:08ID:50wtaTHUここに線が引かれるはずだから、あーしてこーして・・・なんて線を延ばすやりかたがほぼ全部。
でも、このやりかたって、ショートカット解はみつけられなかったりするんだよな。
なんたって角地に線が通ることをまず確定させてるし。
で、自分が考え出したパターンはこれとは違い、線ではなくて壁を見るやりかた。
線を引かない部分を壁として、その壁の有無を総あたりでチェックする方法。
具体的なやりかたは次回に。
0052進可 ◆Sinka1my5k
04/08/10 11:21ID:x1eX9+9eスレ乗っ取りになりそうなので、どこか別の糞スレに移って
そこで解説したほうが良さそう。
0053名前は開発中のものです。
04/08/10 13:28ID:xunPxqDSいや、このスレもうほとんど止まってたし・・・このまま進めて欲しいな
0054進可 ◆Sinka1my5k
04/08/10 20:33ID:P6c4IZR0そうか、ならば・・・
0055進可 ◆Sinka1my5k
04/08/10 20:34ID:P6c4IZR0ル! { `ヽ, ∧
N { l ` ,、 i _|\/ ∨ ∨
ゝヽ _,,ィjjハ、 | \
`ニr‐tミ-rr‐tュ<≧rヘ > ここはしばらくMNR(もっとナンバーリンクの会)が
{___,リ ヽ二´ノ }ソ ∠ 乗っ取らせてもらうことにする!!
'、 `,-_-ュ u /| ∠
ヽ`┴ ' //l\ |/\∧ /
--─‐ァ'| `ニ--‐'´ / |`ー ..__ `´
く__レ1;';';';>、 / __ | ,=、 ___
「 ∧ 7;';';'| ヽ/ _,|‐、|」 |L..! {L..l ))
| |::.V;';';';'| /.:.|トl`´.! l _,,,l | _,,| , -,
! |:.:.:l;;';';';'|/.:.:.:||=|=; | | | | .l / 〃 ))
l |:.:.:.:l;';';'/.:.:.:.:| ! ヽ \!‐=:l/ `:lj 7
| |:.:.:.:.l;'/.:.:.:.:.:.! ヽ:::\:: ::::| ::l /
0056進可 ◆Sinka1my5k
04/08/10 20:35ID:P6c4IZR0> な なんだってー!! <
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
_,,.-‐-..,,_ _,,..--v--..,_
/ `''.v'ν Σ´ `、_,.-'""`´""ヽ
i' / ̄""''--i 7 | ,.イi,i,i,、 、,、 Σ ヽ
. !ヘ /‐- 、u. |' |ノ-、 ' ` `,_` | /i'i^iヘ、 ,、、 |
|'' !゙ i.oニ'ー'〈ュニ! iiヽ~oj.`'<_o.7 !'.__ ' ' ``_,,....、 .|
. ,`| u ..ゝ! ‖ .j (} 'o〉 `''o'ヽ |',`i
_,,..-<:::::\ (二> / ! _`-っ / | 7  ̄ u |i'/
. |、 \:::::\ '' / \ '' /〃.ヽ `''⊃ , 'v>、
!、\ \. , ̄ γ/| ̄ 〃 \二-‐' //`
0057進可 ◆Sinka1my5k
04/08/10 20:36ID:P6c4IZR0/ `''.v'ν
i' / ̄""''--i 7
!ヘ /‐- 、u. |' ちょ、ちょっと待ってくれよキバヤシ、
|'' !゙ i.oニ'ー'〈ュニ! ナンバー(NUMBER)リンク(LINK)だったら
,`| u ..ゝ! 頭文字はMNLに・・・
<:::::\ (二> /
\::::\ '' /
\ \. , ̄
_
0058進可 ◆Sinka1my5k
04/08/10 20:38ID:P6c4IZR0|丶 \  ̄ ̄~Y〜 、
| \ __ / \
|ゝ、ヽ ─ / ヽ |
│ ヾ ゝ_ \ |
│ ヽ_ _ / /| |\ \|
\ヽ _ // / | \ |
ヽ\二_二// ∠二二二| ヘ| ナワヤ!勘違いをするな!
| | | ヽゝソゝ|TT|<ゝソ フ |/b} 日本放送協会(NHK)的な
ヾ| ヽ___ ノ/|| .ミ__ ノ | ノ 略語だから何の問題もない!
| 凵@ /フ
| u .F二二ヽ /|/
\. |/⌒⌒| イヽ
/. \ ==′/ |.| |
 ̄|| ヽ__/ / / ̄
\ヽ_____ノ ノ
0059進可 ◆Sinka1my5k
04/08/10 20:38ID:P6c4IZR0/ `''.v'ν
i' / ̄""''--i 7
!ヘ /‐- 、u. |'
|'' !゙ i.oニ'ー'〈ュニ! ・・・・・・・・・
,`| u ..ゝ!
<:::::\ (二> /
\::::\ '' /
\ \. , ̄
_
0060進可 ◆Sinka1my5k
04/08/10 21:24ID:P6c4IZR00061進可 ◆Sinka1my5k
04/08/10 22:11ID:P6c4IZR0ttp://www.nikoli.co.jp/puzzles/4/
で、このパズルだけど解き方の基本としてえいやっと線を引くってのがメインだったりする。
理詰めで少しづつ解いていくんじゃなくて、直感が大半な珍しいパズルでして・・・
で、作る方も同じく直感で作るわけだけど、困ったことに別解チェックがとても大変。
なんたって理詰めで解いていくパズルでないだけに、意外なところから線が引けたり
マス目が全部埋まらないショートカット解があったりと、難儀だったりするんだな。
0062進可 ◆Sinka1my5k
04/08/10 22:30ID:P6c4IZR0ソフトの存在はベクターに一つだけって状況で、しかもそれはショートカットの別解を
チェックできなかったりする。他のページの日記には、これの解答ソフトは
要望はあるけどモノが無い、と書かれている存在だそうで。
だったら俺が作ってやろうと思い立ったわけで・・・っていうか、実は理論なら
とうの昔にできていて、しかもその内容がとあるトコに掲載されたこともあったりして。
かなり昔のことなんだけどね。資料はまだ残っていたから作成はできるはず。
ただ、今回はこれを別解を確認できるように拡張していくという課題も追加。
0063進可 ◆Sinka1my5k
04/08/10 22:39ID:P6c4IZR0線を通過しない壁のほうに重みを置いてみる解き方です。
例えば上のニコリのページの問題。一番上の左端のマス目を通る線は
必ず右と下を通過するはずです。普通ならこの角の理論を適用して線を延ばしていくのですが
自分の考えはここからが違う。線を引く部分でなく、線を引かない上と左の壁に注目しました。
判りやすく下の答えを見てみましょう。線を引かない境界の点線に壁を引っ張ると
二つの法則を導きだされます。
「線を引くマスは必ず2方向が壁になる」
「数字の書いてあるマスは必ず3方向が壁になる」
この壁の数を利用して解いていこうというのが、自分の理論です。
0064進可 ◆Sinka1my5k
04/08/10 22:50ID:P6c4IZR0線を引くマスで上と左の壁数が
0なら、右と下は必ず壁になる。
1なら、右か下、どちらかが壁。
2なら、右と下は必ず壁が無い。
数字のマスで上の左の壁数が
0はありえないので、それ以前の壁がおかしい
1なら、右と下両方が壁になる。
2なら、右か下、どちらかが壁。
どちらかが壁の場合、仮に右を壁にして下を無しにしておいて次のマスへ進み
ありえない状況になったら戻って下だけ壁に変更して調べなおし、というやりかたです。
それでも駄目ならさらに前に戻って壁を変更します。
これを左上のスタート地点から右へと進めていって、右端についたら改行して
2段目の左端から、と進めていきます。ようするにしらみつぶしなんですね。
0065進可 ◆Sinka1my5k
04/08/10 23:06ID:P6c4IZR0線を伸ばしてどっちへ行くのか調べるとなると、それこそ上下左右好きな方向に
進められるので、相手の数字につくまで途方も無いパターンがあります。
が、この方法で調べていくなら少ないパターンで進めていける上に
壁に矛盾が無くなったら、最後に同じ数字同士が連結しているかを
チェックするだけですみます。
とりあえずこの上と左を見るやり方を、ガンマ方式と名づけます。命名理由は変換したらわかるはず。
実際には、これに加えてありえない壁の形になったらNGにするようプログラムした結果
11×11の面を即断で解けるようになりました。はい、実はもうプログラムはできてます。
今日一日でなんとか完成しました。ただ、盤面入力はテキストファイルだし、結果出力は
イメージに文字出力のみだしで、見た目がかなり汚いので発表はまだです。
っていうか、じっくり解説しながら作ろうと思ってたのに、一日でできるとは自分でもおもわなんだ。
というわけで今日はこれにて。
0066進可 ◆Sinka1my5k
04/08/11 13:00ID:0BPyFEfSそういえば、まだショートカットの探索方法書いてなかったな。
基本的には同じだけど、ショートカットができるってことは何も通らないマス目があるってこと。
これを便宜的に「壁マス」と呼ぶことにして話を進めます。
で、そこの部分の壁をどうするかだけど、線マスと壁マスの間は必ず壁があるが
壁と壁同士はあっても無くてもいいことになってややこしい。なので、壁マスは四方を必ず
壁に囲まれていると定義しておく。その考えで上の探索に追加。
線を引くマスで上と左の壁数が
0なら、右と下は必ず壁になる。
1なら、右か下、どちらかが壁。
*2なら、右と下は必ず壁が無いか、壁マスとして両方とも壁。
*の部分の探索を追加するだけ。ただ、これをやると探索数が一気に増えます。
7*7のショートカット解のみの面でテスト
ショートカット探索無し:解答0。79回探索。
ショートカット探索有り:解答430。3114906探索。
7*7ショートカット解なしの面でテスト
短絡無し:解答1。196回探索。
短絡有り:解答0。2992135回探索。
11*11の面でテストしましたが、短絡ありだと30分かけても戻ってきませんでした。
これでは実用にならないのでもうちょっと考えて見ます。
0067結果のテキスト出力
04/08/11 18:53ID:k24CCh2Y│┏┿━┿━┥1│
├╂┼─┼─┼─┤
│┃│2┝━┥2│
├┸┼─┼─┼─┤
│1│3┝━┥3│
└─┴─┴─┴─┘
こんなのどう?
0068進可 ◆Sinka1my5k
04/08/11 23:01ID:HfZVR1XVそんなふうにやりたいですなー。
ところで、最後に同じ数字を結んでいるかをチェックするのを
壁作成途中でもチェックするようにした結果
7*7ショートカット解なしの面でテスト
短絡無し:解答1。196→181回探索。
短絡有り:解答1。2992135→435102回探索。
と短くなりました。
(上の短絡有り:解答0。は解答1の間違いです。)
このおかげで15*15の面を短絡無しで
100秒かかっていたのが1秒かからなくなりました。
でも短絡ありだと10*10の面で帰ってこなくなるので、まだまだなにか
画期的なアイデアが必要です。
0069進可 ◆Sinka1my5k
04/08/12 13:12ID:FoaiKiVA途中チェック=現在のマスが数字で上か左が開いていたらリンク先を調べる
改行チェック=マスが一段埋まるたびにマス確定した上段数字マスの到達先を全部チェック。
7*7での回数
ショートカットチェック あり なし
最終チェックのみ 181 435102
+途中もチェック 179 303781
+改行もチェック 167 228814
数は減らせたけど、指数的に減ってないのでダメです。
10*10でショートカットありだと、探索が遅くなるばかりで解ける気配がぜんぜんありません。
ちなみに回数とは、最初のマスの壁の有無を確定して1回、次のマスの壁を確定して2回
という風に数えてます。それを考えると3ケタですんでるのは驚異的なんだけどね。
でもショートカット探索ありだと、ぜんぜん太刀打ちできないんだよな。
0070進可 ◆Sinka1my5k
04/08/12 13:18ID:FoaiKiVAhttp://hobby5.2ch.net/puzzle/
とりあえず7*7までならチェックできたし
これ以上の改良は、なんかとてつもなく長くなりそうだから
一旦ここで打ち切って、移動した方がよさげ。
倉庫番探索もそのうち考えます。
0071名前は開発中のものです。
04/08/12 17:51ID:6v5uYIwl0072進可 ◆Sinka1my5k
04/08/12 22:00ID:tDHsu3jMところで倉庫番で考えてるんだけど、荷物の位置を不確定にできないかなというアイデア。
例えば4×4の空間に荷物一個と人がいるとして
中央四つのどこかに荷物がある可能性がある場合はその場所をBとして
■■■■■■
■ ■
■ B .B ■
■ B .B ■
■ ■
■■■■■■
こんな感じにどれかに存在する可能性がある
0073進可 ◆Sinka1my5k
04/08/12 22:01ID:tDHsu3jM■■■■■■
■ B .B ■
■ ■
■ ■
■ ■
■■■■■■
こんな風に不確定の位置が変わる。
まだ大雑把な考えだから、これからどう発展させるかはわかってませんが
こんなアイデアもあるよということで晒しておきます。
0074進可 ◆Sinka1my5k
04/09/17 20:11:24ID:zbFgFr5Nナンバーリンクソルバーが形になったよ。
15*15でも1時間以内で解けます。
ttp://www.interq.or.jp/moonstone/person/numlink/index.html
0075進可 ◆Sinka1my5k
04/11/15 16:42:23ID:KRK43JVGttp://gamdev.org/up/img/1872.lzh
とりあえずは2ch上でやりとりできるようなシステムを作った
ボタンでマップチップのテキストを置く
テキストのセーブ&ロード
ステップの戻しと前進
プレイ中の面をテキストへコピー
プレイしたステップをテキストへコピー
書き出したステップをプレイ開始時に読み込み
■■■■■■■×
■×××××■■
■×田回回回×■
■×回××回足■
■×回××回×■
■×回回回◎×■
■×××××■■
■■■■■■■×
ddldllURdllluuuuurrrDDDuuullld
dRRDrUllluurD
こういう感じで面と解答ステップのやりとりが2ch上で可能に。
肝心な作り方と解き方は全然だけどな。
0076名前は開発中のものです。
04/11/15 18:00:20ID:ci0UTB+u0077名前は開発中のものです。
04/12/04 01:52:51ID:jMAxBzXc0078進可 ◆Sinka1my5k
2005/04/09(土) 20:30:09ID:FzAyxfw2解けるようなプログラムを作らないとダメなのではないだろうか?
もっと考えて、15パズルを解けるようなプログラムを作らないと
ダメなのではないだろうか?
0079名前は開発中のものです。
2005/04/09(土) 23:52:01ID:f0QdQ2zj0080名前は開発中のものです。
2005/04/09(土) 23:53:30ID:f0QdQ2zjttp://www.ic-net.or.jp/home/takaken/so/15pz/index.html
0081名前は開発中のものです。
2006/05/15(月) 15:01:25ID:iqNZ3zgN0082進可 ◆Sinka1my5k
2006/06/23(金) 01:17:15ID:rNoNlc0Cttp://news19.2ch.net/test/read.cgi/newsplus/1150945519/l50
北朝鮮がゲーム作ったと思ったら、ルールも面も日本のパクリだったよw
0083名前は開発中のものです。
2006/08/11(金) 14:34:16ID:XHr3GWC70084名前は開発中のものです。
2006/08/11(金) 15:36:04ID:+c/odd+z0085名前は開発中のものです。
2006/08/12(土) 06:15:40ID:2SZsaOQK詳しく
0086名前は開発中のものです。
2007/01/07(日) 01:43:57ID:3utMDeTC最近、倉庫番のはまりだまして活用させて頂いております。
大変ありがとうございます。
0087名前は開発中のものです。
2007/07/21(土) 13:46:08ID:ZgxFvFBuかれこれ数年解けません orz
0088名前は開発中のものです。
2007/07/26(木) 04:13:55ID:MyeVtBFN荷物ごとに可動範囲を設定
目標には置ける可能性のある荷物のインデックスでも持たせる
ある程度絞り込めそうだけど、どうだろ
書いてると作りたくなるw
0089名前は開発中のものです。
2008/08/12(火) 14:02:26ID:X38yz9YKこの人のがどうなったのか気になる
なんかすごい自信満々なんだがソルバがおいてない…
0090名前は開発中のものです。
2008/11/15(土) 17:39:16ID:50CPL4Xv0091名前は開発中のものです。
2010/08/27(金) 23:10:51ID:ys+uGMbs人の厳密な位置を無視して、
荷物の配置だけを状態とみた木で探索したら
木が小さくなったりしないかな。
荷物の配置が決まると「荷物を押さずに動ける範囲」という
部分空間がいくつかできる。
人の位置は、今どの部分空間にいるか?という情報だけに縮退させる。
最短解は出ないけど、荷物の移動回数の最短解と言う形でとりあえずの解は
効率的に出せそう。
このアプローチで組むのってすでにいっぱいやられてたりする?
0092名前は開発中のものです。
2010/08/28(土) 12:58:32ID:nNbfcnRUしかし、情報は「どの部分空間にいるか?」で持つよりも
「荷物をどっち方向に動かせるか?」で持った方が良くないか?
009391
2010/08/28(土) 19:05:52ID:9E55durhなるほど。
今のところ、部分空間の内で一番数字の若い位置を
その部分空間を特定する情報にして組み始めてた。
確かに >>92 まで出してからデータベース化した方が
最探索時に早いね。
データ量と一致判定の速さもそんなに変わらないし。
そっちに変えてみよう。
009491
2010/09/01(水) 00:05:03ID:dLsy+EFF7段目くらいで8000×3500程度の探索済み重複チェックが終わらない。
盤面みると全然進んでない。
まあハッシュすら使ってないし仕方ないか
0095名前は開発中のものです。
2010/09/26(日) 01:56:41ID:EUCOONMp意外でもないわ。
0096名前は開発中のものです。
2010/09/26(日) 02:11:47ID:maTkzKHY0097名前は開発中のものです。
2010/10/17(日) 01:11:39ID:js/8V7SCその後、ゴール部屋の中での最後の荷物整理部分をなくして、
ゴール部屋の玄関までくれば荷物が消えるようにしてxsokoban の screen.1 はクリアした。
ヒューリスティック過ぎて好きじゃないが。
ゴール部屋の自動検出も一応考えたが、実装がちょっと大変そう…
XSokoban は結構この手の無駄に広いゴール部屋があるのよね。
ソルバ対策?
0098名前は開発中のものです。
2012/01/06(金) 23:52:10.91ID:mG+XCcAE地球にやさしいアルゴリズム
第8回 倉庫番を解くアルゴリズム
http://itpro.nikkeibp.co.jp/article/COLUMN/20070411/268003/

作れた?
0100名前は開発中のものです。
2013/09/18(水) 17:05:38.21ID:c4Tb9xjV0101名前は開発中のものです。
2013/12/30(月) 02:53:18.83ID:O2CS7qV10102名前は開発中のものです。
2014/04/25(金) 21:48:55.16ID:a8hkhpLZttp://www13.plala.or.jp/amagame/hexmap/hexsouko.png
こちらで公開しています。
ttp://www13.plala.or.jp/amagame/hexmap/index.html
0103名前は開発中のものです。
2014/05/02(金) 09:06:46.51ID:lwQn6wmB微妙にスレ違いだったので転送しときました。
【ロードランナー】思考型パズルゲームを語れ【倉庫番】
http://ikura.2ch.net/test/read.cgi/puzzle/1092847576/
ていうかゲーム製作板はパズル総合スレなくてこのスレくらいしかないのね…
0104名前は開発中のものです。
2014/05/02(金) 09:09:09.05ID:lwQn6wmB0105名前は開発中のものです。
2014/05/04(日) 01:11:40.10ID:y/ah+wM+スライドパズル好きから見て、なんかムズムズする。
■ このスレッドは過去ログ倉庫に格納されています