【解答】パズルのプログラミング【作成】
- : 名無しさん@お腹いっぱい。 [] 04/08/14 13:50:7ki1y5sx
-
パズルの問題をプログラムで解いたり
プログラムで面を作成したりする方法を話し合うスレ。 - : 608 [sage] 2014/04/19(土) 13:36:59.58:/NBCQyQ2
-
ぶっちゃけ知ってるならC言語流に読むよりC++風に読むほうが簡単でミスもない気が……
と言うか9x9前提でコード書いてるなこの人w - : □7×7=4□□ [sage] 2014/04/19(土) 19:09:17.98:EyU0dVVm
- 再帰を説明することが目的だからな
ナンバープレースを解くことが目的なら
・サイズが9×9以外
・ブロックの形が正方形でない
・1〜9の数字が1つずつ入るマスの組が他にもある(対角線など)
がよくあるから、それに対応させないことにしても拡張しやすいように作る - : 608 [sage] 2014/04/19(土) 20:43:31.24:/NBCQyQ2
-
>ブロックの形が正方形でない
これを実現するために、ナンプレ自動生成エンジンでは
「マスの集合」を定義して認識する実装だと知った時は感心したものだ……
(つまり普通の数独では縦横ブロック合計27通りの集合、対角線も加えると29通り、
変形ブロックやカラー付きの場合はそれぞれに応じて定義可能) - : 片山博文MZ ◆T6xkBnTXz7B0 [] 2014/04/20(日) 00:30:56.65:RevNx0tL
- 「クロスワードギバー」の片山です。バグ混入申し訳ありませんでした。
新しいバージョンをお使い下さい。
ttp://http://katahiromz.web.fc2.com/xword/ - : 片山博文MZ ◆T6xkBnTXz7B0 [] 2014/04/20(日) 00:49:45.37:RevNx0tL
- 関数のインライン化、constexpr対応、右辺値対応、マルチコア対応…、これ以上の高速化は可能なのか
知恵を貸してくれ - : □7×7=4□□ [sage] 2014/04/20(日) 08:35:38.51:ZOT2sJOz
- 話の横からごめんなさい
イラストロジックの話が興味深くて少し実験していましたが
行き詰まってきたので公開することにしました
ttps://gist.github.com/anonymous/11100710 - : nekoppy3 [] 2014/04/20(日) 09:14:54.73:IKgqueXq
- さん、イラストロジックでサイズが100x100くらいで
もし難問・奇問があれば欲しいです。よろしければください
90度回転させてもバックトラック(あれでも、っていうのかなあ??)
して解けるようになりました
あとはバクが潜んでいるか徹底的に見つけたいところまできました - : nekoppy3 [] 2014/04/20(日) 13:26:00.53:IKgqueXq
- ソース貰いました。今から見てみます。でもC++はよく知らないので
逆に勉強させてもらいます。
動かせたら、また感想なり述べさせていただきます - : nekoppy3 [] 2014/04/20(日) 14:19:22.77:IKgqueXq
- さん。御見それいたしました。瞬殺でした。師匠と呼んでもよろしいですか?
僕なんか下っ端ですね - : □7×7=4□□ [sage] 2014/04/20(日) 14:57:02.94:7bG/3gud
- レベルが高すぎて訳が分からんが、何でも聞いてくれ。
聞き流すから!!! - : □7×7=4□□ [sage] 2014/04/20(日) 19:21:26.07:hbYbM0Mc
- 流すんかい!
- : nekoppy3 [] 2014/04/21(月) 09:50:30.69:KjuEzmp/
- まだソース貰って勉強してないんですが、高速化するのに
面白い方法があります
各ヒントデータに可動領域があって可動領域の開始位置と終了位置を
常に計算させます
長さが10でヒントデータが1,1,1のとき
1234567890
a_b_cd_e_f
1(a-f),1(b-e),1(c-d)が可動領域です
今ヒントデータが3,4で
__20という意味
1122222222223
8901234567890
xxxxx_@_xx___
今ヒントデータが3,4で、可動領域の開始位置が3が(15)
4が(23)となっていると(23)から(25)は3つしか入らないから
開始位置を計算し直して3(23)4(28)と改めます
あと、ヒントデータが3,3,7,3,3,2,2のときは3が4つ7が1つ
2が2つと数えていて、7が唯一で
______abcdefg___
___xxx@@@@@@@xxx___
盤面の真ん中で7こ確定されれば、可動領域の開始位置と終了位置は
狭められます
初期段階では可動領域の開始位置と終了位置は、たいてい
他のヒントデータの開始位置と終了位置はかぶっていますが
どこともかぶらなくなると開始位置と終了位置は一意になります
演繹をするルーチンに開始位置と終了位置を渡すだけでずっと速くなると思います - : nekoppy3 [] 2014/04/21(月) 10:10:22.66:KjuEzmp/
- 1234567890
a_b_cd_e_f
1(a-d),1(b-e),1(c-f)が可動領域です
の間違いですね
m246j.cで唯一の7を探すルーチンはuniqueing()
開始位置sst[]と終了位置eet[]を計算するルーチンは、qcheckt()です
汚いソースですいません。人に見られる前提で書けばよかったな〜 - : nekoppy3 [] 2014/04/21(月) 11:49:20.59:A6cZqWAn
- uniqueing()じゃなくて、uniqt(),uniqy()だった。
念の為、確認してみた - : □7×7=4□□ [sage] 2014/04/21(月) 18:41:21.50:2FaE1dv4
- 方程式に出来たりするんですかね?
マス=??????????
有限で一意なら出来るんでしょうね。意味ないだろうけど - : □7×7=4□□ [sage] 2014/04/21(月) 23:11:12.55:HhyGC33B
- 何の言語が向いてるんだろう
LISPとか良さそうな気がするんだが - : 725 [sage] 2014/04/22(火) 19:45:45.73:LQvwnui8
-
いずれは公開するつもりだったのですが
テスト用に問題を回転させるアイデアに驚いて早めました
テスト問題ですがランダムなドット絵を使い始めました
安定的に1秒程度で判別できるのは50×50黒6割で
黒が減ったり問題が大きくなると極端に遅くなります
100×100を10秒以内はまだまだ先のようです
ところでとても速いものをみつけました
ttp://sourceforge.net/projects/jsolver/
ソースが読みづらく説明もなくてアルゴリズムがわからないのが残念です - : 【中国電 77.3 %】 [sage] 2014/04/22(火) 22:23:07.30:HN2HK1hp
-
さん
120818C.mno が確か一番時間の掛かる問題であったかと思います
しかし5年前の C2D で1秒切ってますよ
ARM(Nexus 7(2012)) だと3秒ほどで爆速過ぎます - : nekoppy3 [] 2014/04/23(水) 12:47:41.73:qTz728eI
- ランダムなドット絵、そのアイデアいただきます!
僕もランダムな絵の問題作ってみます
100x100は僕の力では100秒かかります。この辺が限界ですわ、C言語で
C言語よりC++の方が向いてると思います。こういうの - : nekoppy3 [] 2014/04/24(木) 09:14:40.23:IGWrBaRM
-
ランダムなドット絵、裁縫のパッチワークをイメージした
元絵(131313A.mno〜131313N.mno,サイズ180x70)のイメージから
ランダムに20x20の布切れを切り取り、100x100のサイズに貼り合わせる
というもの。布切れはランダムに90度、180度回転している
昨晩、作っていた。問題がほぼ無限に作れます - : nekoppy3 [] 2014/04/24(木) 09:26:34.37:IGWrBaRM
- 100x100のサイズのパッチワーク風の問題のある場所
ttp://logic777.web.fc2.com/i/paw_mno140424a.zip
00001.mnoは1000秒かかりました
00002.mnoはまだ解けていません
n1=n2=0(黒と白の仮置き、どちらでもOKのとき増え方がどちらも
200ドット以下の時、リスト構造を枝刈りしてもうまくいかないです
500ドット以下の時、枝刈りにしてみます - : □7×7=4□□ [sage] 2014/04/24(木) 12:33:42.80:2Fm6dbfU
- 100*100サイズ固定で問題データの復元用の数値って作れないのかな?
データの受け渡しに便利ですよね。 - : 608 [sage] 2014/04/24(木) 14:12:17.67:KtiK3nHw
- 最近忙しくてコードに手をつけていません……
理屈から言えば、長さがnある部分のヒント数字は
最大n/2個(nが奇数なら(n+1)/2個)必要なので、
100x100固定なら50×100×2=10000個の数字枠が必要になります
charでも10KBは必要ですね - : nekoppy3 [] 2014/04/25(金) 10:49:52.66:ziNlGwWg
- さんの教えてくれた jsolverで の内容物
00001.mnoから00010.mnoをtxtにコンバートして動かしてみた
$ ./js1 00005 // mno->txt converting, original program
$ ./jsolver -n 2 00005.txt
どれも2秒もかからない - : nekoppy3 [] 2014/04/25(金) 11:01:02.97:ziNlGwWg
- js1.c のある場所:
ttp://logic777.web.fc2.com/i/js1.zip - : nekoppy3 [] 2014/04/25(金) 13:00:46.71:ziNlGwWg
- 00001.mno トレース
No. (X, Y)
1 1 1 両方OK黒から 黒863ドット白0ドットの増加分
2 1 100 両方OK黒から 黒1669白1514
3 98 63 両方OK黒から 黒1634白1629
3は黒でこのまま続けるが、実際はここは白が正解
4 83 100 白のみ 黒65白2
5 82 100 黒のみ 黒120白164
6 79 100 黒のみ 黒164白2
7 78 100 白のみ 黒69白0
8 77 100 白のみ 黒47白1
9 76 100 白のみ 黒41白1
10 75 100 白のみ 黒1220白0
11 74 100 白のみ 黒33白0
Noはこの後11から19まで進むんだけど、No10で疑問に思わなければ
(プログラム的に)1万ドットのうち黒1220ドットも動いているのに
なんで白に決めるんかと。このへんを改良できれば速くなるような気がする - : nekoppy3 [] 2014/04/27(日) 10:46:46.95:kJK5Dpla
- さんの意見、心に留めておきましょう。今いろいろ忙しいです。
ちょっとゆっくりやってみます - : □7×7=4□□ [sage] 2014/04/27(日) 21:55:20.71:mubuiqy6
- Cパズルプログラミング-再帰編 > ペントミノ > 盤面の1次元配列化 をJAVAに移植中。
ポインタの++使われるときついわぁw
変換じゃなくて元から1次元配列のデータを持たせた方が楽かな。
動かんけどw - : □7×7=4□□ [sage] 2014/04/27(日) 23:38:20.47:ARwYB3LB
- Javaなら、Cのポインタ演算をエミュレートするクラスを作っておいて
その中で一次元配列なりなんなり使って実装すればいいんじゃね - : 608 [sage] 2014/04/28(月) 00:04:30.45:bgeglmxX
-
本当なら当該言語(今回はJava)に合わせたコードに
書き直せればいいんだけどなぁ……>ポインタの移植云々
俺?Javaはまだ勉強中で…… - : □7×7=4□□ [] 2014/04/28(月) 09:54:58.52:1coyLXtd
- さんの意見で作ってみた
ttp://logic777.web.fc2.com/i/paw_mnx140427.zip
ファイルの中は、mnoファイルと拡張子が.1と.2のファイル
mnxファイル、そしてmnofix.cとmnoprint.cが入っていると思います
.1と.2はイメージファイルで、.1と.2が存在して.3のファイルが存在しない時
.2を読み込みます。このファイルの実装は解析時間が578秒だったとき
578/100+1=6で拡張子が「.6」100秒置きに100秒目で「.1」、200秒目で
「.2」、300秒目で「.3」の拡張子の中断ファイルを作っていた経緯からです。
イメージファイルの書式は、盤面のデータが未確定のとき「_」、
黒は「Q」、白は「x」です。ファイルの中身はその3つと改行とEOFの5つしかありません
mnofix.cはmnoファイルとイメージファイルを読み込んで、
さん用の復元用の数値のファイル.mnxを出力します
mnoファイルで
*Y10
*y001 5
で、イメージファイルが
___QQQQQxx
(未確定が3つ、黒が5つ、白が2つのとき)
mnxファイルでは
*y001 _3,5,x2
というように、数値の前に「_」や「x」が、つきます
例外的に
mnoファイルで
*Y10
*y001 0
のとき、イメージファイルは
xxxxxxxxxx (白が10こ)になりますが、
mnxファイルでは
*y001 0
となる(?こういう仕様にしたはず、ちょっと自信がない)
いずれにしても、mnxファイルからmnoに、いつでも戻せるように
したかったです
mnoprint.cはmnxを読み込んで、実際に絵が出るかCUIで表示
*yのデータは盤面data[]に
*tのデータは盤面data2[]に
data[]とdata2[]に異常がなければ、未確定は「_」黒は「Q」白は「x」
異常があれば「E」を表示します - : □7×7=4□□ [sage] 2014/04/29(火) 00:23:10.46:SKT6Qn4J
- >Cのポインタ演算をエミュレートするクラスを作って
なんぞそれw
再帰の引数にポインタ+1しやがって・・・・・・。どうしろとw - : □7×7=4□□ [sage] 2014/04/29(火) 13:12:47.54:w7oxn/VC
-
今更だが自己解決
って2009年かよ!書いたのw
検索すれば出てくるんでリンクはしない… - : □7×7=4□□ [sage] 2014/04/30(水) 19:17:50.37:M1dqXkiH
-
考え方だけ参考にしてプログラムはJavaで書いてあるものを読んでみたら
例えば ttp://oku.edu.mie-u.ac.jp/~okumura/java-algo/ の Tetromino.java - : 【中国電 74.6 %】 [sage] 2014/05/01(木) 06:23:59.03:cuUObW46
- おくぬら先生じゃないか
わろたw - : □7×7=4□□ [sage] 2014/05/03(土) 12:38:57.17:FdF1eVCj
- リスト構造と検索再帰が理解できれば・・・・。
- : □7×7=4□□ [sage] 2014/05/18(日) 21:07:39.73:sMCfOBJf
- ___
/| |
||. 彡⌒ミ|
||. (・ω・`| 誰かいる?
||oと. U|
|| |(__)J|
||/彡 ̄ ガチャ
彡 ⌒ ミ ♪
(( (・ω・` )
♪ / ⊂ ) )) ♪
((( ヽつ 〈
(_)^ヽ__)
♪ 彡⌒ ミ
(´・ω・彡⌒ ミ
彡⌒ ミつ(´・ω・`) )) ♪
(( (´・ω・`) ( つ )
( つ ヽ とノ ♪
〉 とノ )^(_)
(__ノ⌒(_)
___
/| |
|| .彡⌒ ミ
||. ( )|
||oと. |
|| |(__)J|
||/彡 ̄ ガチャ - : □7×7=4□□ [] 2014/05/30(金) 09:16:18.37:4WfnTzis
- ある知り合いから、virtual host に接続していると書きこめない
(実際書きこめなかった)Jimのやつめ・・・
ミラー:ttp://hello.2ch.net/test/read.cgi/puzzle/1092459010/l50
ここなら書きこめるかテスト - : □7×7=4□□ [] 2014/05/30(金) 10:12:17.70:4WfnTzis
- githubに貼り付けてみました
内容は、m246k.cで、biglogic_k140430a.zip と変わりませんが一応
ttps://gist.github.com/nekoppy3 - : □7×7=4□□ [] 2014/08/22(金) 22:28:36.54:ZN257wEY
- おながいします
ttp://i.imgur.com/Wv1Fx2u.jpg
1〜16までの数字を一個ずつ入れて
各線上の4つの合計が
いずれも34になるように - : □7×7=4□□ [sage] 2014/08/23(土) 01:17:42.20:GVLSUtl/
- 13
1 2 3 4
12 5
14 15
11 6
10 9 8 7
16
[1,3,14,16,2,7,9,4,8,13,5,15,6,10,12,11] - : □7×7=4□□ [] 2014/08/23(土) 14:57:27.93:+rB8LlQn
- au予報言氷雨デモなぜ末端ディレクター戦争指名タイ米粉ステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらいエバコラア山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり野菜炒めラーメン
au予報言氷雨デモなぜ末端ディレクター戦争指名タイ米粉ステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらいエバコラア山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり野菜炒めラーメン
au予報言氷雨デモなぜ末端ディレクター戦争指名タイ米粉ステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらいエバコラア山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり野菜炒めラーメン
ニンニクヤーフォー低原価スマ金土地酒気帯びNHK公的私的支出トウデン教授嘘芸人横浜名古屋遅延電池切れ福岡損保新規駐車近代ゲームシェア回収フジ政権転職提案たれ巫女ラーメン
abk公式審判漏洩安保険王なにあげてんだよ?「わー!ふーう?」↓↓★★↓↓★↓★▼★宿題通調印鑑カウントダウンたまらんだけ労災募金額休日接待ゴルフ議員国会アイスブルームハンバーグ歌舞伎派大学生 - : 片山博文MZ ◆T6xkBnTXz7B0 [] 2014/10/08(水) 13:19:25.58:LjbFvpMJ
- Windows用フリーソフト「クロスワード ギバー」
ヒント直接編集機能が付いたよ!!!
ttp://http://katahiromz.web.fc2.com/xword/ - : 片山博文MZ ◆T6xkBnTXz7B0 [] 2014/10/09(木) 15:17:20.90:nfoI1BGW
- バグ修正しました。
- : 片山博文MZ ◆T6xkBnTXz7B0 [] 2014/10/18(土) 17:21:02.56:9V3xWvL8
- Windows用フリーソフト「クロスワード ギバー」
ver.2.2にバージョンアップしたよ!!!
ttp://http://katahiromz.web.fc2.com/xword/ - : 片山博文MZ次期CEO ◆T6xkBnTXz7B0 [] 2014/11/30(日) 16:43:56.91:RLHclfWA
- Windows用ソフト「クロスワード ギバー」
ver.2.4にバージョンアップしたよ!!!
漢字・英語クロスワードも作れるよ!!!
ttp://http://katahiromz.web.fc2.com/xword/ - : □7×7=4□□ [sage] 2014/12/01(月) 03:54:19.08:q0k/WMwV
- ___
/| |
|| .彡⌒ ミ
||. ( )|
||oと. |
|| |(__)J|
||/彡 ̄ ガチャ - : □7×7=4□□ [sage] 2015/04/25(土) 23:51:32.95:AFsw2VHO
- ブラウザでペンシルパズルに毛の生えた程度のゲームを作ろうとする。
JAVAアプレット・フラッシュ・html5・・・・
色々選択肢があるのだろうが、無難なのはどれなんだろう。 - : アホ私大 [] 2016/11/11(金) 10:17:43.00:kBBzMlLV
- スケルトンを自動生成するプログラムのヒントをください。
迷路作成アルゴリズムで迷路の直線長さを制限するとよいように思うがうまくゆかない。 - : □7×7=4□□ [] 2016/11/29(火) 17:41:22.51:ctNNl3EY
- 29日午前3時半ごろ、
逆走した軽乗用車が大型トラックと衝突。
計3人が死傷した。
認知症の過程は放射能汚染によって加速します。
注意欠陥障害(ADD)多動性障害(ADHD)、
若年性アルツハイマー病の原因となっており、
人々は肺炎やインフルエンザ、慢性疲労、癌、
HIV/エイズなどに抵抗できなくなっています。
免疫システムの崩壊の結果がアレルギーです。
死者の数は、他のいかなる原因よりも多いです。
河川の汚染は犯罪と見られなければなりません。
問題は、日本政府が何も認めないことです。
多くの人々が放射能の影響で死んでいるのに、
彼らは幻想の中に生きています。
日本の近海の食料は安全ではありません。
健康上のリスクは福島に近づくほど高まります。
福島の子供達は癌をもたらす被爆をしています。
福島県民は廃炉後1、2年で戻れるでしょう。
マイト レーヤは原発の閉鎖を助言されます。
マイト レーヤによれば、飛行機など
原子のパターンが妨害されると墜落します。
彼はいかなる人間よりも危険をよくご存じです。
マイト レーヤの唇からますます厳しい
警告と重みが発せられることを覚悟しなさい。
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキングが作成したキャッシュです。元のページはこちら。削除についてはこちら。