詰将棋メモ(2017年1月19日)

ネット詰棋界
注目情報
今日のメモ更新
詰将棋メモ
昨日のアクセス
今日の詰将棋  Try everyday!  棋譜並べ 詰将棋  詰将棋小隊 
 Onsite Fairy Mate
今週の詰将棋
連載
出題中
詰将棋イベント
(1月)
 21日(土) 詰とうほく(仙台) 創棋会新年会(大阪)
 28日(土) 詰工房(東京)
 29日(日) 国際ソルヴィングコンテスト(東京)

| | コメント (0) | トラックバック (0)

詰将棋メモ(2017年1月18日)

ネット詰棋界
注目情報
今日のメモ更新
詰将棋メモ
昨日のアクセス
今日の詰将棋  Try everyday!  棋譜並べ 詰将棋  勝ち組になるぞ~
 関目の将棋屋さん  Onsite Fairy Mate
連載
出題中
詰将棋イベント
(1月)
 21日(土) 詰とうほく(仙台) 創棋会新年会(大阪)
 28日(土) 詰工房(東京)
 29日(日) 国際ソルヴィングコンテスト(東京)

| | コメント (0) | トラックバック (0)

詰将棋メモ(2017年1月17日)

ネット詰棋界
注目情報
今日のメモ更新
詰将棋メモ
昨日のアクセス
今日の詰将棋  Try everyday!  my cube  棋譜並べ 詰将棋
 鉄格子から視た空  Onsite Fairy Mate
連載
出題中
詰将棋イベント
(1月)
 21日(土) 詰とうほく(仙台) 創棋会新年会(大阪)
 28日(土) 詰工房(東京)
 29日(日) 国際ソルヴィングコンテスト(東京)

| | コメント (0) | トラックバック (0)

詰将棋創作プログラミング 22 詰将棋創作AIを作るには

[2017年1月17日最終更新]

詰将棋創作プログラミング 22 詰将棋創作AIを作るには

自分で詰将棋を創作(自動創作)する詰将棋創作AIを作るには何が必要だろうか。

1.詰将棋創作AIとは

詰将棋創作プログラミング 20 自動創作とはで書いたように、自動創作した、すなわちプログラムが自分で詰将棋で創作したといえるには、

  1. 企画、構想(どんな詰将棋を作るか考える)
  2. 図化(それが成立しそうな配置を考える)
  3. 検討(狙いが成立しているか確認)
  4. 選定、推敲(最終的な作品を決定)

の全フェーズを実行できる必要がある。

現在は人間にしかできないと考えられるので、これが実現できたら詰将棋創作AIと呼んでもよいだろう。個性を持った詰将棋創作AIが育ってきたら、人間と識別するのも難しい。

これまで、いろいろなアプローチでコンピュータによる詰将棋創作の研究が行われてきたが、「自動生成」とか「自動創作」とか呼んでいても、ほとんどは人間の指示に従い図化、検討だけをプログラムで行うもので、自動創作というよりは人間による詰将棋創作の支援ツールであった。

最近は、東大の入試に挑戦とか新聞記事や小説の自動生成とか登場して話題になっているが、これも人間がおぜん立てしているレベルでは、AIというより人間の支援ツールだろう。

詰将棋創作プログラミングはもともと人間による詰将棋創作の支援ツールを目指しているので、詰将棋創作AIの話はちょっとはずれてしまうが、夢の実現という意味で、そのためには何が必要なのか、思いつくままにあげてみよう。

2.詰将棋創作AIのために必要なこと

1)企画、構想(どんな詰将棋を作るか考える)

人間が創作するときのことを考えれば、手掛かりになるだろう。

まず、当たり前だが、詰将棋を知らない人間には詰将棋を作ることはできない。つまり、

  • 詰将棋とはどういうものか

を知っていることが前提になる。ここは比較的プログラム化容易なところだろう。次に、

  • その人の詰将棋の経験

が重要。これは、その人がこれまで解いたり鑑賞したりした詰将棋、そして目にした解説者や解答者、賞の選考委員などほかの人の評価などである。ある程度自分で創作するようになってからは、どういう詰将棋を創作していて、それがどう評価されたかも重要な情報だ。さらに

  • 詰将棋の狙いについての知識

もないと、その評価の理解が困難だろう。手筋、構想、趣向、条件、曲詰など、人が何を狙って詰将棋を作り、何をどう評価するか、更にこれまでの作品でどこまで実現されてきたかといった歴史の知識もある程度いるだろう。

人は一人一人感性も異なり、したがって、好みの詰将棋も違ってくる。だから知識、経験も偏っているのが普通で、創作する詰将棋も人によって違ってくる。

詰将棋創作AIもしかりで、どのように育てるかで、それぞれ個性的なAIになっていくだろう。

経験を与える部分は、既存の詰将棋データベースが利用できると思われるかもしれないが、現在のデータベースには解説も評価も狙いも入力されてないので、学習用の詰将棋データベースを構築するところから始める必要がありそうだ。自然言語を理解するAIをベースにできるなら、例えば詰パラ、将棋世界、近代将棋などのPDFを入力にしてデータベースを自動生成することも考えられる。また、スマホ詰パラはもともとアプリで、データは評価を含めサーバにあるので、開発者と協力すれば自動で取り込めるのではないか。

解説や評価を含め全詰将棋を収録した学習用データベースができれば、その中から特定の傾向の詰将棋(同じ作者とか超短編だけとか飛角図式だけとか)を抽出して経験を詰ませれば、形、手順を含めそれらと違和感がない詰将棋を創作できるようになればおもしろい。ただ、人間は作風の中でも常に新しい要素を入れることを考えて創作しているので、創作AIも、似たような作品を作るだけでなく、新しい試みをできるようにしなければいけないだろう。

2)図化(それが成立しそうな配置を考える)

これまで一番研究されてきた図化のフェーズだが、正算、逆算、全検、ランダムといった手法だけでなく、少し高度な作品だと、手順法(中核の手順を先に作って、それを成立させる配置を作る)も必須。昔提案したことがあるが、難しいためか、この研究もほとんどされていない。構想作系は特に作意手順だけでなく変化紛れも重要で、これと作意手順の差異が狙いになっていることが多い。

3)検討(狙いが成立しているか確認)

完全性の検討の技術は、柿木将棋など現在でもかなりの水準にある。ただ、余詰のときにそれを修正する技術は新たに開発する必要があるだろう。

企画・構想段階でどんな詰将棋を作ろうとしたのか明確になっていれば、それが成立しているか判断するのは難しくないと思われる。

4)選定、推敲(最終的な作品を決定)

推敲もこれまでほとんど研究されたことがない項目だ。不要駒除去ぐらいなら簡単だろうが、いろいろ可能な配置を生成し最善の配置を見出すのは案外大変かも。

選定、推敲の段階で重要なのは

  • 生成した詰将棋の評価

である。これは前述の学習用データベースを元に評価することになる。

人間らしいAIを作るのなら、自分が経験した範囲内の詰将棋の評価をもとに生成した詰将棋の評価をするのがいいのだろうが、数が少ないと分析が難しい。賢いAIを作りたいなら全詰将棋の評価をもとにした方がよさそうだ。

個々の詰将棋を分析して、評価される要素をパラメタ化し、それがどのように評価されたのかをふまえて、全詰将棋から各パラメタの重みづけと評価の相関を学習する。それができれば、新たに創作した詰将棋がどう評価されるか、逆にどのような評価を期待するなら、どのように詰将棋を作ればよいか判断することもできるだろう。

ただし、詰将棋の評価は絶対的な評価が存在するわけではなく、人によって変わるだけでなくメディアによっても時代によっても変わるし、1号局と2号局でも全然違ってくる。類似作は評価減だ。その辺りを的確に判断して評価することは、かなり難しいかもしれない。

これまで、非常に狭い範囲の詰将棋を対象に人間の感性評価の研究が行われたことがあるが、それは評価する人間の集合が比較的同質だから研究しやすい面があったと思う。だいたい、発表するメディア、コーナーによって、そこに集う人の集合が形作られるので、最初からそれを意識して創作、評価するのがいいのだろうか。

3.詰将棋創作AIは夢かグランドチャレンジか

こうして少し考えただけでも、詰将棋創作AIの研究はまだほとんど手つかずで、道は遠そうだ。研究者、資金、リソースがそろえば案外進む可能性もありそうだが、詰将棋のワールドワイドな知名度はほぼゼロなので、成功しても元が取れないしね。

前にコンピュータ詰将棋の課題で、「課題D: プログラムだけで煙詰を作る」をグランドチャレンジだと書いたが、詰将棋創作AIはそれよりずっと広い取り組みが必要でさらに厳しいチャレンジだ。スマホ詰パラに限定して進め、3手詰ぐらいで感触をつかむのがいいのかも。

創作技術的には、人間が指示する創作支援ツールレベルでできないことは当然自動的にもできないので、まずは、詰将棋創作プログラミングの方向で頑張るのが、一つの基礎研究になるのかもしれない。

| | コメント (0) | トラックバック (0)

詰将棋メモ(2017年1月16日)

ネット詰棋界
注目情報
今日のメモ更新
詰将棋メモ
昨日のアクセス
今日の詰将棋  Try everyday!  my cube  棋譜並べ 詰将棋
 Onsite Fairy Mate
連載
出題中
詰将棋イベント
(1月)
 21日(土) 詰とうほく(仙台) 創棋会新年会(大阪)
 28日(土) 詰工房(東京)
 29日(日) 国際ソルヴィングコンテスト(東京)

| | コメント (0) | トラックバック (0)

詰将棋メモ(2017年1月15日)

ネット詰棋界
注目情報
今日のおもちゃ箱
今日のメモ更新
詰将棋メモ
昨日のアクセス
今日の詰将棋  Try everyday!  haru日記  棋譜並べ 詰将棋
 初段を目指します  伊達将棋連盟会員  関目の将棋屋さん
 Onsite Fairy Mate
連載
詰将棋の本
出題中
詰将棋イベント
(1月)
 21日(土) 詰とうほく(仙台) 創棋会新年会(大阪)
 28日(土) 詰工房(東京)
 29日(日) 国際ソルヴィングコンテスト(東京)

エキサイティング頭脳スポーツ。詰将棋。
1月14日、マエ空調照明で、詰将棋。
1月15日、エキサイティング頭脳スポーツ。

| | コメント (0) | トラックバック (0)

どうぶつしょうぎ2016

[2017年1月14日最終更新]

どうぶつしょうぎより、2016年の記事を分離した。

ルールや購入方法、イベントなど最近の話題は ===> どうぶつしょうぎ

2015年~2010年の記事は ===> どうぶつしょうぎ2015  2014  2013  2012  2011  2010
2009年7月~12月の記事は ===> どうぶつしょうぎ2009
2009年6月以前の記事は ===> どうぶつしょうぎの誕生と展開


北尾まどか女流二段による「どうぶつしょうぎ」の授業
12月13日、日本将棋連盟で、北尾まどか女流二段による「どうぶつしょうぎ」の授業。小学生の反応も、◎

ドイツのゲームフェアに参加
12月9日、山陽新聞で、ドイツのゲームフェアに参加

「どうぶつしょうぎ」の遊び方と魅力
11月26日、日本将棋連盟で、3×4マスなのに奥深い・・・子どもも遊べる「どうぶつしょうぎ」の遊び方と魅力について

どうぶつしょうぎ入門アプリ「はじめてのどうぶつしょうぎレッスン」
11月16日、レタスクラブで、大人もアプリで無料トライ!初めての「どうぶつしょうぎ」
11月10日、dot.で、「どうぶつしょうぎ」のルールが学べる初心者向けの学習アプリ コンピュータ対戦、詰将棋も用意
11月10日、PR TIMESで、どうぶつしょうぎ入門アプリ「はじめてのどうぶつしょうぎレッスン」 ~11月2日配信開始しました~

11月26日、目黒でペーパークラフトどうぶつしょうぎ大会
11月9日、ねこまどぶろぐで、11/26(土)みんなでうでだめし!ペーパークラフトどうぶつしょうぎ大会@Amazon

11月13日、紀伊國屋書店新宿本店でどうぶつしょうぎ教室
11月8日、ねこまどぶろぐで、11/13(日) 紀伊国屋書店新宿本店「新装版どうぶつしょうぎ」発売イベント
10月30日、紀伊國屋書店で、【新宿本店】 小学館 「新装版 どうぶつしょうぎ」発売記念 どうぶつしょうぎ教室開催(2016年11月13日)

「新装版どうぶつしょうぎ」発売
10月28日、ねこまどぶろぐで、11月9日「新装版どうぶつしょうぎ」発売!

桑名囲碁将棋サロン庵(いおり)でどうぶつしょうぎ大会
10月15日、桑名囲碁将棋サロン庵(いおり)で、第6回どうぶつしょうぎ大会優勝者と次回大会のご案内。
9月25日、桑名囲碁将棋サロン庵(いおり)で、第5回どうぶつしょうぎ大会が開催されました!

どうぶつしょうぎの紹介
10月12日、編集者はボードゲームの夢を見るかで、どうぶつしょうぎ

11月5日、コペル江戸川橋教室でどうぶつしょうぎ教室
10月12日、ねこまどぶろぐで、11/5 どうぶつしょうぎ教室 コペル江戸川橋教室

11月6日、どうぶつしょうぎインストラクター入門講座
10月3日、ねこまどぶろぐで、11/6(日)どうぶつしょうぎインストラクター入門講座

10月2日、第4回深川どうぶつしょうぎ大会
10月1日、どうぶつしょうぎのこみちで、第4回深川どうぶつしょうぎ大会へ

9月22日、ママフェスin草加でどうぶつしょうぎ教室
9月23日、ねこまどぶろぐで、9/22「ママフェスin草加」どうぶつしょうぎ教室 レポート

9月25日、紀伊國屋書店神戸店でどうぶつしょうぎ教室
9月5日、ねこまどぶろぐで、9/25(日)紀伊国屋書店神戸店「どうぶつしょうぎ教室」
9月4日、スワblogで、どうぶつしょうぎ体験会のインストラクターをします!(9/25)
9月3日、紀伊國屋書店で、【神戸店】 9/25(日)『どうぶつしょうぎ』無料体験教室開催

9月17日、三洋堂書店星川店でどうぶつしょうぎ体験会
9月?日、Facebook Event Searchで、どうぶつしょうぎコネクト(For 三洋堂書店星川店)

9月15日、ひだまりの丘「CAFE:HELGI」でどうぶつしょうぎ体験会
9月?日、Facebook Event Searchで、どうぶつしょうぎコネクト(For CAFE:HELGI)

ポーランドの将棋フェスティバルでどうぶつしょうぎ
9月2日、47NEWSまどかと巡る世界将棋紀行で、ポーランドの将棋フェスティバル~前編~
9月16日、ポーランドの将棋フェスティバル~後編~

桑名高校の学祭でどうぶつしょうぎ体験会!
9月10日、桑名囲碁将棋サロン庵(いおり)で、桑名高校の学祭でどうぶつしょうぎ体験会!

どうぶつしょうぎキャラバン2016
9月3日、桑名囲碁将棋サロン庵(いおり)で、どうぶつしょうぎキャラバン2016が終了しました!

こども館のどうぶつしょうぎに挑戦♪
8月28日、どうぶつしょうぎのこみちで、こども館のどうぶつしょうぎに挑戦♪

8月21日、つま恋S.M.C.で どうぶつしょうぎ体験ブース
8月20日、どうぶつしょうぎのこみちで、明日はつま恋へgo♪
8月21日、今日のつま恋も楽しかった♪

8月6日~14日、紀伊國屋書店でどうぶつしょうぎ教室
8月15日、ねこまどぶろぐで、8/13、14 紀伊国屋書店「どうぶつしょうぎ教室」レポート
8月12日、ねこまどぶろぐで、8/6、7 紀伊国屋書店「どうぶつしょうぎ教室」レポート
7月27日、ねこまどぶろぐで、2016年8月 紀伊國屋書店「どうぶつしょうぎ教室」開催決定!

8月20日、静岡で「どうぶつしょうぎおしえかた講習会」と「どうぶつしょうぎで遊ぼう!」
8月14日、どうぶつしょうぎのこみちで、「どうぶつしょうぎおしえかた講習会」と「どうぶつしょうぎで遊ぼう!」を8月20日に開催します

8月13日、第1回ポポキッズどうぶつしょうぎ大会 
8月13日、スワblogで、第1回ポポキッズどうぶつしょうぎ大会開催! (ポポナツ11日目!)
7月19日、スワblogで、第1回ポポキッズどうぶつしょうぎ大会 参加者募集!(8/13)

「将棋RPG つめつめロード」で「どうぶつしょうぎ」とのコラボイベント
8月12日、4Gamer.netで、「将棋RPG つめつめロード」で「どうぶつしょうぎ」とのコラボイベントがスタート。可愛らしいどうぶつ達の“みたま”を手に入れよう
8月12日、Gamerで、iOS/Android「将棋RPG つめつめロード」と「どうぶつしょうぎ」がコラボ!特別なスキンなどがもらえるコラボイベントが開催

龍の子幼稚園での体験講座風景
8月10日、どうぶつしょうぎのこみちで、龍の子幼稚園での体験講座風景

8月7日、遠鉄百貨店でどうぶつしょうぎ大会
8月8日、どうぶつしょうぎのこみちで、遠鉄百貨店どうぶつしょうぎ大会レポート
8月6日、どうぶつしょうぎのこみちで、明日は遠鉄百貨店での第1回目のどうぶつしょうぎ大会です♪

8月6日、豊田東交流センターでこどもどうぶつしょうぎ大会
8月8日、どうぶつしょうぎのこみちで、豊田東こどもどうぶつしょうぎ大会レポート

S小学校でどうぶつしょうぎ教室
7月16日、スワblogで、S小学校でどうぶつしょうぎ教室

深川に「どうぶつしょうぎ」カフェ 地域のコミュニティースペース活用 
7月5日、江東経済新聞で、深川に「どうぶつしょうぎ」カフェ 地域のコミュニティースペース活用

5月29日、大阪でどうぶつしょうぎインストラクター入門講座、おとなどうぶつしょうぎ大会
6月24日、ねこまどぶろぐで、5/29(日)おとなどうぶつしょうぎ大会in大阪 レポート
6月19日、スワblogで、どうぶつしょうぎインストラクター入門講座&おとなの大会 開催レポート! (5/29開催)
4月25日、ねこまどぶろぐで、5/29(日)おとなどうぶつしょうぎ大会in大阪 参加者募集!
4月12日、ねこまどぶろぐで、5/29(日)どうぶつしょうぎインストラクター入門講座in大阪

7月17日、ねこまど将棋教室でどうぶつしょうぎインストラクター入門講座
6月20日、ねこまどぶろぐで、どうぶつしょうぎインストラクター入門講座

Board Townに「どうぶつしょうぎ」が登場!
5月24日、ねこまどぶろぐで、Board Townに「どうぶつしょうぎ」が登場!

保育園でどうぶつしょうぎ体験講座
5月13日、どうぶつしょうぎのこみちで、豊橋市あしはら保育園でどうぶつしょうぎ体験講座

6月12日、世田谷で、「しょうぎ」であそぼうにどうぶつしょうぎコーナー
4月27日、日本将棋連盟で、「しょうぎ」であそぼうinハウジングプラザ瀬田

5月1日、「第五回シモキタ将棋名人戦」で、どうぶつしょうぎ名人戦
4月21日、ねこまどぶろぐで、5/1(日)「第五回シモキタ将棋名人戦」開催!

「どうぶつしょうぎcafeいっぷく」7月1日開店
4月18日、ゲームマーケット・いっぽで、どうぶつしょうぎcafe「いっぷく」7/1開店。GM春でご案内します
4月8日、ピエコデザインで、「どうぶつしょうぎcafeいっぷく」準備中

保育園でどうぶつしょうぎ
4月13日、巖ちゃんの日々是将棋で、どうぶつしょうぎ指導・若林保育園

子育てイベントでのどうぶつしょうぎ体験コーナー
3月28日、どうぶつしょうぎのこみちで、子育てイベントでのどうぶつしょうぎ体験のご案内
4月10日、杏林堂健康セミナー 子育てイベントでのどうぶつしょうぎ体験コーナー

3月21日、とちぎ将棋まつりで、どうぶつしょうぎイベント
3月28日、日本将棋連盟で、【第7回とちぎ将棋まつり】開催報告
3月23日、ねこまどぶろぐで、3/21「どうぶつしょうぎ はじめの一手」@とちぎ将棋まつり イベントレポート

3月19日、第二回浜松こどもどうぶつしょうぎ大会
1月18日、どうぶつしょうぎのこみちで、第二回浜松こどもどうぶつしょうぎ大会開催します♪
2月9日、大会申し込み受付中です
2月11日、第2回浜松こどもどうぶつしょうぎ大会
3月7日、朝日新聞に掲載されました
3月19日、第2回浜松こどもどうぶつしょうぎ大会 無事終了しました

「どうぶつしょうぎ」のノラネコぐんだんバージョン
3月8日、ねこまどぶろぐで、「どうぶつしょうぎ」のノラネコぐんだんバージョンが雑誌の付録になりました!
3月7日、DreamNewsで、「親子時間」をもっと楽しみたいママへ。「kodomoe(コドモエ)」4月号、3月7日発売!ミッフィーポーチ、巻末とじこみ付録「ノラネコぐんだんしょうぎ」ほか豪華3大付録付き!

2月28日、川崎市多摩区で第6回たまっ子どうぶつしょうぎ大会
2月28日、川崎市多摩区の☆たまっ子学童ホール☆で、第6回どうぶつしょうぎ大会
2月12日、タウンニュースで、どうぶつしょうぎ大会

2月21日、ゲームマーケット2016神戸でどうぶつしょうぎイベント
2月13日、ゲームマーケットで、【2016神戸】「どうぶつしょうぎ」「ハトラミ9路盤」「ごろごろどうぶつしょうぎ」ミニトーナメント開催

2月6日、名古屋でペーパークラフトどうぶつしょうぎ大会 
2月12日、ねこまどぶろぐで、2/6 遊べる!作れる!ペーパークラフトどうぶつしょうぎ大会@ブラザー イベントレポート
1月19日、日本将棋連盟で、北尾まどか女流二段出演 どうぶつしょうぎイベント(名古屋)のお知らせ
1月8日、ねこまどぶろぐで、2/6 遊べる!作れる!ペーパークラフトどうぶつしょうぎ大会@ブラザー
1月5日、どうぶつしょうぎのこみちで、どうぶつしょうぎイベント♪

妖怪将棋が小学二年生の付録に
2月2日、ねこまどぶろぐで、2/1「妖怪しょうぎ」が雑誌「小学二年生」の付録になりました!

どうぶつ詰将棋
1月25日、ahoministratorで、どうぶつ詰将棋作ってみた-1-

こどもちゃれんじじゃんぷ1月号「しまじろうのこどもしょうぎ」
1月21日、ねこまどぶろぐで、こどもちゃれんじじゃんぷ1月号「しまじろうのこどもしょうぎ」

1月20日、妖怪ウォッチのどうぶつしょうぎ「妖怪しょうぎ」発売!
1月19日、ねこまどぶろぐで、1/20 妖怪ウォッチのどうぶつしょうぎ「妖怪しょうぎ」発売!

新春どうぶつしょうぎに挑戦
1月10日、どうぶつしょうぎのこみちで、新春どうぶつしょうぎに挑戦

夫とガチで指してみた
1月9日、さいとうサポートで、連休前夜に夫と「どうぶつしょうぎ」をガチで指してみた

1月17日、にいがた秋葉っ子ふゆまつりでどうぶつしょうぎ
2015年12月11日、いっぽで、つくろう!あそぼう!どうぶつしょうぎ(1/17にいがた秋葉っ子ふゆまつり)

| | コメント (0) | トラックバック (0)

詰将棋メモ(2017年1月14日)

ネット詰棋界
注目情報
今日のメモ更新
詰将棋メモ
昨日のアクセス
今日の詰将棋  Try everyday!  棋譜並べ 詰将棋  Onsite Fairy Mate
今週の詰将棋
連載
出題中
詰将棋イベント
(1月)
 14日(土) たま研(町田)  21日(土) 詰とうほく(仙台)
 21日(土) 創棋会新年会(大阪) 28日(土) 詰工房(東京)
 29日(日) 国際ソルヴィングコンテスト(東京)

| | コメント (0) | トラックバック (0)

詰将棋メモ(2017年1月13日)

ネット詰棋界
注目情報
今日のメモ更新
詰将棋メモ
昨日のアクセス
今日の詰将棋  Try everyday!  佐伯九段将棋サロン  関目の将棋屋さん
 Onsite Fairy Mate
今週の詰将棋
連載
出題中
詰将棋イベント
(1月)
 14日(土) たま研(町田)  21日(土) 詰とうほく(仙台)
 21日(土) 創棋会新年会(大阪) 28日(土) 詰工房(東京)
 29日(日) 国際ソルヴィングコンテスト(東京)

| | コメント (0) | トラックバック (0)

詰将棋創作プログラミング 21 サンプルソースコード

[2017年1月13日最終更新]

詰将棋創作プログラミング 21 サンプルソースコード

詰将棋創作プログラミング 1 最初は年賀詰で開発した、持駒サーチのプログラムのソースコード(Ruby)を、自分でも創作プログラミングをしてみたい方のために、サンプルとして公開する。

1.サンプルソースコードの公開について

詰将棋創作プログラミングで作成しているプログラムは、私自身だけで利用する前提で書いているため、ユーザインターフェースは最小限にしか用意していない。例えばフォルダーやファイル名は固定、パラメタは柿木将棋で事前設定およびプログラムを直接書き替えて設定する。そういう事情と、使い捨てのプログラムで次々いろいろな機能を試していることもあって、これまで要望はあったが、プログラムの公開はしていなかった。

作成しているプログラムはいずれも数十~数百行の小さなもので、テキストファイルの処理と柿木将棋の呼び出しぐらいしかしていないので、少しプログラミングできる方なら、この連載を読めば自分でも書けると思う。しかし、最初はどんな風に書いていいかとまどうかもしれないので、自分用のプログラムでも少しは参考になるかと思い、サンプルとして一つソースコードを公開することにした。

プログラミング言語はRubyを使用しているが、私も初めて使用した言語で、早く動かすこと優先で本やWebの情報を見ながら書いたので、Rubyらしくないコーディングになっていてお手本としては適切ではない。あくまで参考程度にとどめて、みなさんはもっとよいプログラムを書いてほしい。また、質問されても答えられない可能性が高いので、自力で読める方だけ参照されるようお願いする。

盤面や駒の表し方は、池さんの「コンピュータ将棋のアルゴリズム」を参考にしている。
http://usapyon.game.coocan.jp/ComShogi/index.html
「将棋のルール」の章を読めばソースコードも説明されていて参考になると思うので、将棋のプログラムを初めて作る方は参照されることをお勧めする。

2.持駒サーチのソースコード

Windows用。Ruby 2.3の64ビット版使用。
頭に、使い方、パラメタがある。


#! ruby -Ks

=begin
持駒サーチ 1.01 2014年4月8日

盤面図を入力に、詰将棋として成立する持駒の組み合わせを探す。
まずはTETSUの環境に特化して記述。汎用化は考えない。
必要なファイルはc:/tstに置く(詰将棋創作支援ツール)。
コマンドプロンプトより起動、文字コードはSJISにしておく。
起動前にtstに移動しておく(cd c:/tst)。
入力盤面図はms_in.kifにあらかじめ作っておく。
余詰設定は柿木将棋IXで事前にしておく(1手100秒、進行度300、検出時打切り)。
思考・対局設定の詰将棋の設定で、棋譜に解答時間を設定するをオンにしておく。
実行結果ファイルは上書きするので、必要なら他にコピーすること。
 ms_result.txt     全実行結果
 ms_kanzen.txt     完全作リスト
 ms_tsumi.txt      最小持駒リスト
持駒の最大枚数、駒種の最大枚数をMOCHIMAX、KOMASYUMAXで指定できる。
解図時間の上限をKAIZULIMITで秒単位で指定できる。
KSHOGIRESULTのユーザ名は実行環境ごとに書き替えること。
=end

# パラメタ

MOCHIMAX = 15                      # 持駒の最大枚数 1-38
KOMASYUMAX = 7                     # 持駒の最大種類数 1-7
KAIZULIMIT = 30                    # 解図時間制限 秒単位

KSHOGIEXEM = "c:/PROGRA~2/Kakinoki/KShogi9/KShogi9.exe ms_kshogi.kif /M" +  KAIZULIMIT.to_s    # 解図
KSHOGIEXEZ = "c:/PROGRA~2/Kakinoki/KShogi9/KShogi9.exe ms_kshogi.kif /Z"        # 余詰を探す
KSHOGIRESULT = "c:/Users/ユーザ名/Documents/柿木将棋/KShogiResult.txt"          # 柿木将棋実行結果
##### ユーザ名は実行するPC毎に、そのPCでのユーザ名に書き替えること

INKIF = "c:/tst/ms_in.kif"                 # 持駒サーチの入力棋譜
KSHOGIKIF = "c:/tst/ms_kshogi.kif"         # 柿木将棋に渡す棋譜
RESULT = "c:/tst/ms_result.txt"            # 持駒サーチの結果
KANZEN = "c:/tst/ms_kanzen.txt"            # 見つかった完全作
TSUMI = "c:/tst/ms_tsumi.txt"              # 見つかった詰んだ組み合わせ(最小持駒)

・・・・・・


全ソースコード(約300行)はこちら。

詰将棋創作プログラミング 3 裸玉全検の可能性のときに高速化のため事前チェックなど手を加えて少し大きくなっているが、元々は200行ぐらいだった。

3.持駒サーチの実行について

このソースコードは、詰将棋創作プログラミングをしてみたい方のためにサンプルとして公開するものであり、そのままで実行することは想定していない。

私の環境では動いているプログラムなので、Rubyと柿木将棋IX(最新のアップデート)をインストールして環境を整えれば実行は可能かもしれないが、保証できないので、動かしたい方は自己責任でお願いする。

4.持駒サーチ実行例

1) 事前準備

1a. 未インストールなら、Ruby、柿木将棋IXをインストール

c:/tstフォルダを作り、Rubyのパスを張っておく。

1b. 柿木将棋IXで、余詰設定、詰将棋設定

(軽く設定しておいて、完全作候補だけあとから時間をかけて調べるのが効率的)

☑ 時間制限をする 10秒
☑ 進行度制限をする 100
☑ 各局面で複数の余詰を検出する
☑ 余詰検出で中断する

・ 長手数用
・ 詰上り局面から調べる

☑ 棋譜に解答時間を記録する

1c. 上記のms.rbをc:/tstにダウンロード、パラメタ、ユーザ名を書き替え

MOCHIMAX = 8                       # 持駒の最大枚数 1-38
KOMASYUMAX = 4                     # 持駒の最大種類数 1-7
KAIZULIMIT = 5                     # 解図時間制限 秒単位

KSHOGIRESULT = "c:/Users/xxx/Documents/柿木将棋/KShogiResult.txt"          # 柿木将棋実行結果

xxxは実行するPCでのユーザ名を設定

2) 盤面図を作って持駒サーチを実行

2a. 柿木将棋IXで、c:/tst/ms_in.kif を作成

  9 8 7 6 5 4 3 2 1
+---------------------------+
| ・ ・ ・ ・ ・ ・ ・v桂v香|一
| ・ ・ ・ ・ ・ ・ ・v玉 ・|二
| ・ ・ ・ ・ ・ ・ ・ ・ ・|三
| ・ ・ ・ ・ ・ ・ 銀 ・v歩|四
| ・ ・ ・ ・ ・ ・ ・ ・ ・|五
| ・ ・ ・ ・ ・ ・ ・ ・ ・|六
| ・ ・ ・ ・ ・ ・ ・ ・ ・|七
| ・ ・ ・ ・ ・ ・ ・ ・ ・|八
| ・ ・ ・ ・ ・ ・ ・ ・ ・|九
+---------------------------+
持駒:なし

2b. 持駒サーチ実行

コマンドプロンプトを起動(文字コードはSJISに)
cd
c:/tst
ruby ms.rb

2c. 実行結果は下記ファイルに格納される

c:/tst/ms_result.txt 全実行結果

c:/tst/ms_kanzen.txt 完全作候補リスト: 手順は保存されないので後で柿木将棋で調べる。ちゃんと時間をかけて検討することも必要。

・・・
持駒枚数最大:8 持駒駒種最大:4 解図時間最大5秒

飛 銀 歩四 : 27手で詰みました(▲2三飛、0:01)。
   余詰:0、非限定:1、手順前後:0、迂回:0 検出しました。
角 金 桂 香 : 15手で詰みました(▲4四角、0:02)。
   余詰:0、非限定:6、手順前後:0、迂回:0 検出しました。
金二 : 3手で詰みました(▲2三金、0:01)。
   余詰、非限定等は見つかりませんでした。
金 銀 : 5手で詰みました(▲2三銀打、0:00)。
   余詰、非限定等は見つかりませんでした。
・・・

c:\tst\ms_tsumi.txt 最小持駒リスト: 裸玉の検討のときなど有効

なお、上記ファイルをブラウザで表示して文字化けする場合は、テキストエンコーディングをShift_JISに設定すること。

| | コメント (0) | トラックバック (0)

«詰将棋メモ(2017年1月12日)