• 「深さ優先探索」と「幅優先探索」

    2015-05-21 19:161
    きっちりやるなら ↓

        実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)

    を読むのがいいんだが、
    説明のレベルが低いブログにも、読者のレベルに合わせた 存在意義はあると思うんだぜ☆



    探索は、調べものを調べる順番のことだぜ☆
    ドアを開ける順番を振ってみたんだぜ☆


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━
              ┌─ドア4──               ┌─ドア2──
              ├─ドア5──               ├─ドア3──
        ┌─ドア1─┤               ┌─ドア1─┤
     ○  │     └─ドア6──      ○  │     └─ドア4──
     大 ─┤     ┌─ドア7── 宝    大 ─┤     ┌─ドア6── 宝
        │     ├─ドア8──         │     ├─ドア7──
        ├─ドア2─┤               ├─ドア5─┤
        │     └─ドア9──         │     └─ドア8──
        │     ┌─ドア10─         │     ┌─ドア10─
        │     ├─ドア11─         │     ├─ドア11─
        └─ドア3─┤               └─ドア9─┤
              ─ドア12─               ─ドア12─


        まず手前のドアを全部            まず1部屋を
        開けてから、                奥まで突入して、
        次のドアを開けていく            その部屋を全部調べてから
        んだぜ☆                  隣の部屋も全部調べて
                              いくんだぜ☆

     ↑ こっちの人は、             ↑ こっちの人は
       何を言っているか分からないと        ドアを開けて部屋に入ったら、
       思うが、                  入ってきたドアから一度出て、
       来た道を帰らずに              隣のドアまで走っていく☆
       開けたいドアの前に
       瞬間移動できる☆


                 はじまる☆!

           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
          BOM                   BOM
          ||| ┌─ドア4──           ||| ┌─ドア2──
         ○\V/ ├─ドア5──          V/ ├─ドア3──
        ┌大> <─┤               ┌> <─┤
        │     └─ドア6──         │     └─ドア4──
     … ─┤     ┌─ドア7── 宝    … ─┤     ┌─ドア6── 宝
        │     ├─ドア8──         │     ├─ドア7──
        ├─ドア2─┤               ├─ドア5─┤
        │     └─ドア9──         │     └─ドア8──
        │     ┌─ドア10─         │     ┌─ドア10─
        │     ├─ドア11─         │     ├─ドア11─
        └─ドア3─┤               └─ドア9─┤
              ─ドア12─               └─ドア12─


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
                                      BOM
                                      |||
                                     \V/
              ┌─ドア4──               ┌> <──
              ├─ドア5──               ├─ドア3──
        ┌…   ─┤               ┌   ─┤
        │ BOM └─ドア6──         │     └─ドア4──
     … ─┤ ||| ┌─ドア7── 宝    … ─┤     ┌─ドア6── 宝
        │\V/ ├─ドア8──         │     ├─ドア7──
        ├> <─┤               ├─ドア5─┤
        │     └─ドア9──         │     └─ドア8──
        │     ┌─ドア10─         │     ┌─ドア10─
        │     ├─ドア11─         │     ├─ドア11─
        └─ドア3─┤               └─ドア9─┤
              ─ドア12─               └─ドア12─


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
                                         
                                      BOM
                                      |||
              ┌─ドア4──               ┌\V/──
              ├─ドア5──               ├> <──
        ┌…   ─┤               ┌…   ─┤
        │     └─ドア6──         │     └─ドア4──
     … ─┤     ┌─ドア7── 宝    … ─┤     ┌─ドア6── 宝
        │     ├─ドア8──         │     ├─ドア7──
        ├   ─┤               ├─ドア5─┤
        │ BOM └─ドア9──         │     └─ドア8──
        │ ||| ┌─ドア10─         │     ┌─ドア10─
        │\V/ ├─ドア11─         │     ├─ドア11─
        └> <─┤               └─ドア9─┤
              ─ドア12─               └─ドア12─


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
                BOM                      
                |||                      
               ○\V/                      
              ┌大> <──               ┌ BOM──
              ├─ドア5──               ├ |||──
        ┌…   ─┤               ┌…   ─┤○\V/
        │     └─ドア6──         │     └大> <──
     … ─┤     ┌─ドア7── 宝    … ─┤     ┌─ドア6── 宝
        │     ├─ドア8──         │     ├─ドア7──
        ├…   ─┤               ├─ドア5─┤
        │     └─ドア9──         │     └─ドア8──
        │     ┌─ドア10─         │     ┌─ドア10─
        │     ├─ドア11─         │     ├─ドア11─
        └…   ─┤               └─ドア9─┤
              ─ドア12─               └─ドア12─
     「全部ドアだった……」


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
                BOM                      
                |||                      
              ┌○\V/──               ┌…   ──
              ├大> <──               ├…   ──
        ┌…   ─┤               ┌…   ─┤    
        │     └─ドア6──         │ BOM └…   ──
     … ─┤     ┌─ドア7── 宝    … ─┤ ||| ┌─ドア6── 宝
        │     ├─ドア8──         │○\V/ ├─ドア7──
        ├…   ─┤               ├大> <─┤
        │     └─ドア9──         │     └─ドア8──
        │     ┌─ドア10─         │     ┌─ドア10─
        │     ├─ドア11─         │     ├─ドア11─
        └…   ─┤               └─ドア9─┤
              ─ドア12─               └─ドア12─
                          「空部屋だった……」


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
              ┌BOM──               ┌…   ──
              ├|||──               ├…BOM──
        ┌…   ─┤○\V/           ┌…   ─┤ |||
        │     └大> <──         │     └○\V/──
     … ─┤     ┌─ドア7── 宝    … ─┤     ┌大> <── 宝
        │     ├─ドア8──         │     ├─ドア7──
        ├…   ─┤               ├   ─┤
        │     └─ドア9──         │     └─ドア8──
        │     ┌─ドア10─         │     ┌─ドア10─
        │     ├─ドア11─         │     ├─ドア11─
        └…   ─┤               └─ドア9─┤
              ─ドア12─               └─ドア12─
                          「キタコレー!」


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
              ┌   ──               ┌…   ──
              ├BOM──               ├…   ──
        ┌…   ─┤ |||           ┌…   ─┤ BOM
        │     └○\V/──         │     └|||──
     … ─┤     ┌大> <── 宝    … ─┤     ┌○\V/── …
        │     ├─ドア8──         │     ├大> <──
        ├…   ─┤               ├…   ─┤
        │     └─ドア9──         │     └─ドア8──
        │     ┌─ドア10─         │     ┌─ドア10─
        │     ├─ドア11─         │     ├─ドア11─
        └…   ─┤               └─ドア9─┤
              ─ドア12─               └─ドア12─
     「キタコレー!」


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
              ┌…   ──               ┌…   ──
              ├…   ──               ├…   ──
        ┌…   ─┤ BOM           ┌…   ─┤    
        │     └|||──         │     └…   ──
     … ─┤     ┌○\V/──     … ─┤     ┌BOM── 
        │     ├大> <──         │     ├ |||──
        ├…   ─┤               ├…   ─┤○\V/
        │     └─ドア9──         │     └大> <──
        │     ┌─ドア10─         │     ┌─ドア10─
        │     ├─ドア11─         │     ├─ドア11─
        └…   ─┤               └─ドア9─┤
              ─ドア12─               └─ドア12─


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
              ┌…   ──               ┌…   ──
              ├…   ──               ├…   ──
        ┌…   ─┤               ┌…   ─┤    
        │     └…   ──         │     └…   ──
     … ─┤     ┌BOM── …    … ─┤     ┌…   ── …
        │     ├…|||──         │     ├…   ──
        ├…   ─┤○\V/           ├…   ─┤    
        │     └大> <──         │ BOM └…   ──
        │     ┌─ドア10─         │ ||| ┌─ドア10─
        │     ├─ドア11─         │○\V/ ├─ドア11─
        └…   ─┤               └大> <─┤
              ─ドア12─               └─ドア12─


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
              ┌…   ──               ┌…   ──
              ├…   ──               ├…   ──
        ┌…   ─┤               ┌…   ─┤    
        │     └…   ──         │     └…   ──
     … ─┤     ┌…   ── …    … ─┤     ┌…   ── …
        │     ├…BOM──         │     ├…BOM──
        ├…   ─┤ |||           ├…   ─┤ |||
        │     └○\V/──         │     └○\V/──
        │     ┌大> <─         │     ┌大> <
        │     ├─ドア11─         │     ├─ドア11─
        └…   ─┤               └…   ─┤
              ─ドア12─               └─ドア12─


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
              ┌…   ──               ┌…   ──
              ├…   ──               ├…   ──
        ┌…   ─┤               ┌…   ─┤    
        │     └…   ──         │     └…   ──
     … ─┤     ┌…   ── …    … ─┤     ┌…   ── …
        │     ├…   ──         │     ├…   ──
        ├…   ─┤ BOM           ├…   ─┤ BOM
        │     └|||──         │     └|||──
        │     ┌○\V/──         │     ┌○\V/
        │     ├大> <──         │     ├大> <
        └…   ─┤               └…   ─┤
              ─ドア12─               └─ドア12─


           幅優先探索                 深さ優先探索   
    ━━━━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━
              ┌…   ──               ┌…   ──
              ├…   ──               ├…   ──
        ┌…   ─┤               ┌…   ─┤    
        │     └…   ──         │     └…   ──
     … ─┤     ┌…   ── …    … ─┤     ┌…   ── …
        │     ├…   ──         │     ├…   ──
        ├…   ─┤               ├…   ─┤    
        │     └…   ──         │     └…   ──
        │     ┌BOM──         │     ┌BOM──
        │     ├…|||──         │     ├…|||──
        └…   ─┤○\V/           └…   ─┤○\V/
              大> <──               └大> <


    「ふぅ」



    コンピューター将棋は 幅優先探索をやっているだろう☆
    ピタッと奥へ進むのをやめるので、目の前に王手のドアがあるのが分かるじゃないか、
    と人間が言っても さっさっと引き返すんだぜ☆
    水平線効果 が起こるのはこっちだな☆ww 人間の勝手な言い分な気がするぜ☆ww
    上位のコンピューターは、対策してると思うんだぜ☆

    「水平線から出た先は、思ったより悪い景色ではなかった☆ 運が良かった」
    とか台詞が聞けることもあるな☆www


    人間は、入らなくていい部屋が分かってるのか、深さ優先探索をしているんじゃ
    ないだろうか☆?
    最初に間違った部屋に入っているかも知れないんだが、そんなこと分からないんだぜ☆
    勘と、選択肢をバサッと捨てて 奥へ進む力が優れているのかもしれないな☆ww

    ファンタ が起こるのはこっちだな☆www
    1手詰めを逃すとか、上位のコンピューターはしないからな☆ww





    きふわらべが 深さ優先探索 をやっていたので、 幅優先探索に直すんだぜ(ボソ



    プログラムのしかた☆
    ==========


           幅優先探索                深さ優先探索   
    ━━━━━━━━━━━━━━━━━━  ━━━━━━━━━━━━━━━━━━━

                作詞・むずでょ              作詞・むずでょ

     歌詞Aメロ(※1)            歌詞Aメロ(※1)

       ♪見えているドアを全て開けたァ      ♪最初のドアに入ったァ

        その先に見えているドアを         入った部屋の最初のドアを
        全部 覚えていたァ            開けて入ったァ

                             ドアがないときは出てたァ

     サビ                   サビ

        1度開けたドアのことは          ドアがないときは出てたァ
        2度と入らないと覚えていたァ

     ※1…深さ (2回) 繰り返す       ※1…深さ (行けるとこまで) 繰り返す



    :│┃
  • 広告
  • 何よこれ、ずばり解説☆ position sfen lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1 moves 7g7f

    2015-05-20 19:45

    コンピュータ将棋エンジンを作り始めるような人は、
    だいたい 次のような目的があるんじゃないだろうか☆

        (1)電王戦のPVに出たい
        (2)世界コンピュータ将棋選手権で優勝して最強になりたい
        (3)名人と戦いたい
        (4)フラッドゲートに放流したい
        (5)その他

    とりあえず『将棋所』(しょうぎどころ)という画面ソフト(GUI)を利用するように
    将棋エンジンを作っておくと、(1)、(2)、(4)は狙えるので オススメなんだぜ☆




    コンピュータ将棋エンジンを作り始めると、最初の3ヶ月の間に、
    だいたい 2つのコースを選ぶことになるぜ☆

      コースA ──────────→ USIプロトコル
      コースB ──────────→ CSAプロトコル

    どっちに行けばいいんだぜ☆? というところなんだが、
    コースAに行くと、将棋所が使える☆

    USIを使うとしよう☆

    ぶっちゃけ USI で難しい壁は、2箇所なんだぜ☆

    ponder(ポンダー)と、  これ
                    ↓

    position sfen lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1 moves 7g7f

    ponderはやらないという選択肢があるんだが、↑あれ は必要なんだぜ☆




    あの長い文字列。よく見ると、次のような形をしているんだぜ☆

        position ~なんたら1~ moves ~なんたら2~ 改行


    ~なんたら1~ には、2つのパターンがあるんだぜ☆

    (1)position startpos moves

    (2)position sfen lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1 moves


    (1)が飛んできたら、 平手初期局面 にしたらいいんだぜ☆
    (2)が飛んできたら、 局面     を作成するんだぜ☆


    局面 ってのは、「駒の配置」、「次の手番」、「持ち駒」、「次の手が何手目か」
    の4つだぜ☆

      sfen 略/略/略/略/略/略/略/略/略 w - 1

    なら、次の手番は w(最初に指す方の反対側プレイヤーという記号)で、
    持ち駒は両者無し、次の手は1手目、なんだぜ☆
    謎の記号の書き方については後で説明する予定☆


    ~なんたら2~ は、初手からの棋譜だぜ☆

      7g7f 3c3d 6g6f 4c4f

    と進んでいくんだが、

      プレイヤー1プレイヤー2プレイヤー1プレイヤー2

    と、指し手が交互に並んでいるんだぜ☆
    謎の記号の読み方については後で説明する予定☆


    この長い文字列は、

      どこかの局面の1手目から符号が載っている

    というデータになっているわけだな☆



    ここで、頭がすっきりする話を 1つ しておこう☆


    USIの元ネタは チェスのUCI なんだぜ☆wwww
    「SFENって何なんだぜ☆ なんだこの変な書き方は」と思うたびに
    「ああ、元ネタはチェスのUCIで、将棋用にアレンジしたんだろうな」と
    思うようにすると 精神的に 健康になるんだぜ☆www

    暗号に見える文字も、チェスの駒と思うと、
    元ネタでは チェスの盤そのまんま なんだぜ☆

    pは後手のポーン、Rは先手のルック☆ww
    漢字に大文字/小文字がなくて残念だったな☆www

    a1 は a列1段目☆www
        参考: チェス入門 棋譜の読み方
    7七 じゃなくて 7g ☆wwww 漢数字じゃなくて残念だったな☆www


    将棋指しには 暗号に見える☆wwwwww



    では、チェスと比較しながら SFEN を解説しよう☆www

          チェス                  将棋
    ━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━
    最初に指す方が     白(w) 将棋盤の下が 黒(*) 平手(先手)/駒落ち下手(後手)
    最初に指す方の反対側が 黒(b) 将棋盤の上が 白(*) 平手(後手)/駒落ち上手(先手)

                        (*)ただし☆! ↓

                            コンピュータ将棋
                     ━━━━━━━━━━━━━━━━━━━━━━━━
                     最初に指す方が     黒(b)
                     最初に指す方の反対側が 白(w)

    になるんだぜ☆

      「基本的に チェスで、 将棋に合わせて 黒白だけ ひっくり返したんだ☆
       なるほど、ぽろ~☆(/_\)」

    と考えれば、頭が すっきり したな☆wwwwwwwww


      sfen 略/略/略/略/略/略/略/略/略 w - 1

    次の手番が b か、 w か、これは分かるようになったな☆ww





    次に。

      sfen 略/略/略/略/略/略/略/略/略 w - 1

    これは -1 ではなくて、 1 なんだぜ☆ そして 1 固定なんだぜ☆

    何を言っているか分からないかもしれないんだが、 1 固定なんだぜ☆

    将棋所の説明文に
    「将棋所の場合、この数字は必ず1にしています。」と記されているんだから、
    将棋所を使うんなら 1 固定でいいんだぜ☆




    さらに次は☆

      sfen 略/略/略/略/略/略/略/略/略 w - 1

    これは、 左端のが 将棋盤の1段目 で、右端のが 将棋盤の9段目 なんだぜ☆
    だから
       /
    の棒の数は 8本あるんだぜ☆
    じゃがりこを舐めた指で数えてみるといいんだぜ☆ 8本あるな☆
    間に棒が8本あれば、段は9つあるんだぜ☆

    では謎の記号の見方を一覧するぜ☆

          チェス                  将棋
    ━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━━━━━━
    P ポーン  (pawn)     P ポーン   歩   (pawn)
    N ナイト  (knight)   L ランス   やり、香(lance)
    B ビショップ(bishop)   N ナイト   桂馬  (knight)
    R ルック  (rook)     S シルバー  銀   (silver)
    Q クイーン (queen)    G ゴールド  金   (gold)
    K キング  (king)     K キング   王   (king)
                      R ルック   飛   (rook)
                      B ビショップ 角   (bishop)

    左端が謎の記号なんだぜ☆
    これは うまく 当てはまっているんだぜ☆
    そして 最初に指す方が 大文字、 最初に指す方の反対側が 小文字 なんだぜ☆


          チェス                  将棋
    ━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━━━━━━
    p ポーン  (pawn)     p ポーン   歩   (pawn)
    n ナイト  (knight)   l ランス   やり、香(lance)
    b ビショップ(bishop)   n ナイト   桂馬  (knight)
    r ルック  (rook)     s シルバー  銀   (silver)
    q クイーン (queen)    g ゴールド  金   (gold)
    k キング  (king)     k キング   王   (king)
                      r ルック   飛   (rook)
                      b ビショップ 角   (bishop)


    目が見慣れてきたかなんだぜ☆wwwwww

        「飛車が r ☆? フンガー☆!」

    だったのが、

        「ルック、あ☆ 分かる分かる」

    ぐらいには 謎が解けたかなんだぜ☆?www

    コンピュータ将棋を作っている最中のヒマに チェスの棋譜を 1つ2つ ちょっと
    眺めておくと、塩を振ったおにぎりのように 食べやすくなるぜ☆wwwwww


    次に、 成り駒 はどうするのかなんだぜ☆?

          チェス                  将棋
    ━━━━━━━━━━━━━━━   ━━━━━━━━━━━━━━━━━━━━━━━━
                      +P ポーン   先手 と金 (pawn)
         チェスに         +L ランス   先手 成香 (lance)
         成り駒など        +N ナイト   先手 成桂 (knight)
         ない☆!!        +S シルバー  先手 成銀 (silver)
                      +R ルック   先手 龍  (rook)
                      +B ビショップ 先手 馬  (bishop)
                      
                      +p ポーン   後手 と金 (pawn)
                      +l ランス   後手 成香 (lance)
                      +n ナイト   後手 成桂 (knight)
                      +s シルバー  後手 成銀 (silver)
                      +r ルック   後手 龍  (rook)
                      +b ビショップ 後手 馬  (bishop)

    プラスのピーは、プロモートのピー とダジャレで覚えておくといいんじゃないか☆www
    USIを考えた人、チェスに無くて将棋に有るような 困ったルールが出てきたときは
    まず + を使いまわして、
    それでも足りないときは * を使いまわして 頑張ったように
    わたしには見えたんだぜ☆wwww


    そして、空きマスは、連続している数を入れるんだぜ☆

      ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐
      │歩│ │ │ │ │ │ │ │ │
      └─┴─┴─┴─┴─┴─┴─┴─┴─┘

    なら P8 だぜ☆ 書き方は1段毎に完結する☆

      ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐
      │ │ │ │ │ │ │ │ │ │
      └─┴─┴─┴─┴─┴─┴─┴─┴─┘

    なら 9 だぜ☆

      ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐
      │香│桂│銀│ │ │金│銀│桂│ │
      └─┴─┴─┴─┴─┴─┴─┴─┴─┘

    なら LNS2GSN1 だぜ☆

      ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐
      │ │桂│ │金│ │金│ │桂│ │
      └─┴─┴─┴─┴─┴─┴─┴─┴─┘

    なら 1N1G1G1N1 だな☆ww

    空きマスには 特別なルールはないんだぜ☆



    さて、

      lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL

    を見て、読めるようになってきただろうかなんだぜ☆?
    盤上に駒が無い場合は

      9/9/9/9/9/9/9/9/9

    になるんだぜ☆

    小説を読むように、将棋盤の左上から右上へ、1段下がって左端から右端へ、と、
    カウンターを進めながら 駒を置いていけばいいな☆




    そして次は☆

      sfen 略/略/略/略/略/略/略/略/略 w - 1

    このハイフンなんだが、持ち駒があると 例えば、 次のように書くんだぜ☆

      sfen 9/9/9/9/9/9/9/9/9 w KRB2G2S2N2L9Pkrb2g2s2n2l9p 1

      「2枚以上のときは、その枚数」「駒の種類」

    で1セットなんだぜ☆ 先手が歩を18枚持っていれば、

      18P

    になるんだぜ☆

    日本語なら「ハンバーガー2個ください」と言うが、
    英語 なら「ツー ハンバーガーズ, プリーズ」と言うな☆www
    これから 「持ち駒は ツー銀ズ、ファイブ歩ゥズ」とか言おうぜ☆wwwwww

    先手が歩を1枚持っているときは、1は書かずに

      P

    と書くんだぜ☆
    英語で  「ワン ハンバーガーズ, プリーズ」とか言わないな☆wwwww
    日本語なら「いくつですか?」「1個なんだぜ☆!」と言うかも知れないが☆wwww

    わたしは、持ち駒の書き方は

      K → R → B → G → S → N → L → P → k → r → b → g → s → n → l → p

    の順に並んでいる、と決め付けて実装したんだが、将棋所を使っていて いまのところ
    問題はないぜ☆ もしかするとバグになるかもしれない☆ww

    それに 王が持ち駒になっていることがあるんだろうか☆ww変だぜ☆ww
    わたしは実装している☆ww

    なお、持ち駒に成り駒はない☆ww




    では、この長い文字列を読めるだろうか☆

    8l/1l+R2P3/p2pBG1pp/kps1p4/Nn1P2G2/P1P1P2PP/1PS6/1KSG3+r1/LN2+p3L w Sbgn3p 1

      参考: USI草案1 から一部改変


    わたしは、多分、考えて手動で書いたんだが、次のような将棋盤になると思うんだぜ☆

    下向き側┌──┬──┬──┬──┬──┬──┬──┬──┬──┐
        │  │  │  │  │  │  │  │  │香↓│
     角  ├──┼──┼──┼──┼──┼──┼──┼──┼──┤
     金  │  │香↓│龍 │  │  │歩 │  │  │  │
     桂  ├──┼──┼──┼──┼──┼──┼──┼──┼──┤
     歩3 │歩↓│  │  │歩↓│角 │金 │  │歩↓│歩↓│
        ├──┼──┼──┼──┼──┼──┼──┼──┼──┤
        │王↓│歩↓│銀↓│  │歩↓│  │  │  │  │
        ├──┼──┼──┼──┼──┼──┼──┼──┼──┤
        │桂 │桂↓│  │歩 │  │  │金 │  │  │
        ├──┼──┼──┼──┼──┼──┼──┼──┼──┤
        │歩 │  │歩 │  │歩 │  │  │歩 │歩 │
        ├──┼──┼──┼──┼──┼──┼──┼──┼──┤
        │  │歩 │銀 │  │  │  │  │  │  │
        ├──┼──┼──┼──┼──┼──┼──┼──┼──┤
        │  │王 │銀 │金 │  │  │  │馬↓│  │
        ├──┼──┼──┼──┼──┼──┼──┼──┼──┤ 銀
        │香 │桂 │  │  │と↓│  │  │  │香 │
        └──┴──┴──┴──┴──┴──┴──┴──┴──┘上向き側

    次は 下向き側 の手番☆

    こういった情報なんだぜ☆ どうだろうか☆?




    これで残るは

        position ~なんたら1~ moves ~なんたら2~ 改行

    なんだぜ☆ ここには棋譜の符号が入る☆

    では、 盤の見方 を比べてみるんだぜ☆ww

            チェス                 将棋
    ━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━
                         9 8 7 6 5 4 3 2 1
                        ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐
                        │ │ │ │ │ │ │ │ │ │一
     ┌─┬─┬─┬─┬─┬─┬─┬─┐  ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
    8│ │ │ │ │ │ │ │ │  │ │ │ │ │ │ │ │ │ │二
     ├─┼─┼─┼─┼─┼─┼─┼─┤  ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
    7│ │ │ │ │ │ │ │ │  │ │ │ │ │ │ │ │ │ │三
     ├─┼─┼─┼─┼─┼─┼─┼─┤  ├─┼─┼─╋─┼─┼──┼─┼─┤
    6│ │ │ │ │ │ │ │ │  │ │ │ │ │ │ │ │ │ │四
     ├─┼─┼─┼─┼─┼─┼─┼─┤  ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
    5│ │ │ │ │ │ │ │ │  │ │ │ │ │ │ │ │ │ │五
     ├─┼─┼─┼─┼─┼─┼─┼─┤  ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
    4│ │ │ │ │ │ │ │ │  │ │ │ │ │ │ │ │ │ │六
     ├─┼─┼─┼─┼─┼─┼─┼─┤  ├─┼─┼──┼─┼──┼─┼─┤
    3│ │ │ │ │ │ │ │ │  │ │ │ │ │ │ │ │ │ │七
     ├─┼─┼─┼─┼─┼─┼─┼─┤  ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
    2│ │ │ │ │ │ │ │ │  │ │ │ │ │ │ │ │ │ │八
     ├─┼─┼─┼─┼─┼─┼─┼─┤  ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
    1│ │ │ │ │ │ │ │ │  │ │ │ │ │ │ │ │ │ │九
     └─┴─┴─┴─┴─┴─┴─┴─┘  └─┴─┴─┴─┴─┴─┴─┴─┴─┘
      a b c d e f g h

                              ↓ しかし☆

        コンピュータ・チェス           コンピュータ・将棋
    ━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━
                         9 8 7 6 5 4 3 2 1
                        ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐
                        │ │ │ │ │ │ │ │ │ │a
                        ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
                        │ │ │ │ │ │ │ │ │ │b
           チェスと         ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
          同じほっほー☆       │ │ │ │ │ │ │ │ │ │c
          (^▽^)         ├─┼─┼──┼─┼──┼─┼─┤
                        │ │ │ │ │ │ │ │ │ │d
                        ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
                        │ │ │ │ │ │ │ │ │ │e
                        ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
                        │ │ │ │ │ │ │ │ │ │f
                        ├─┼─┼──┼─┼──┼─┼─┤
                        │ │ │ │ │ │ │ │ │ │g
                        ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
                        │ │ │ │ │ │ │ │ │ │h
                        ├─┼─┼─┼─┼─┼─┼─┼─┼─┤
                        │ │ │ │ │ │ │ │ │ │i
                        └─┴─┴─┴─┴─┴─┴─┴─┴─┘
                        
    「6f…、エフゥ☆?!」

    と、最初は面喰らうんだが、簡単に覚える方法を紹介するんだぜ☆




        アルファベットで段を覚える歌
        ======  作詞・むずでょ

        ♪CDをフライングゲット☆

         盤を挟んで両端に AI☆

         真ん中で立会人は イー顔☆
       
         あなた ビールで☆ わたし ハイボール☆


    将棋盤には4つの星があるな☆
    CD(cd)をフライングゲット(fg)する場所はそこなんだぜ☆

    盤の端っこは(ai)だし、 真ん中は(e)☆

    相手はビール(b)で、わたしはハイボール(h)なんだぜ☆



    符号で f が出てきたら、はい フライングゲットするんだぜ☆ww
    7g とか、 7f とか書かれていても すぐには頭の中に思い浮かべられないので、
    暗号みたいな文字列さえ読めれば良しとするんだぜ☆

      7g7f

    という4桁の符号が出てきたとき、これは「7g から 7f へ動く」と読むんだぜ☆
    歩なのか、銀なのか、何が動いたのかは書いていないんだぜ☆


    慣れただろうか☆wwwwww

           チェス                    将棋
    ━━━━━━━━━━━━━━━━━━    ━━━━━━━━━━━━━━━━━━━
      1. e4 e6                 1. 7六歩
                             2. 3四歩 
      2. d4 d5                 3. 6六歩 
                             4. 3二金
     

        コンピュータ・チェス             コンピュータ将棋
    ━━━━━━━━━━━━━━━━━━    ━━━━━━━━━━━━━━━━━━━
      position startpos moves e2e4        position startpos moves 7g7f
       e7e6 d2d4 d7d5               3c3d 6g6f 4a3b




    わたしには 人間の棋譜は どうしろ、進め進め、と 命令 になっているように
    見えるんだが、
    時間は過去から未来へ一方的に進み、戻れない時間を今生きている動物のような感じが
    するぜ☆www

    コンピューターの棋譜は どの場所の何かの駒が どの場所に動いたのか
    起こったできごとの マスの番号の記録 になっているんだぜ☆ww
    わたしには まるで未来人が 過去の記録に当たっているかのような感じがするぜ☆ww


    なんだか わたしには 人間の棋譜が 動詞(+名詞)のように言語の形に見えるし、
    コンピューターの棋譜は 名詞の羅列のデータに見えるんだぜ☆wwwwww


    コンピュータ・チェスは アルファベット・数字 の順で、
    コンピュータ将棋  は 数字・アルファベット の順なんだが、
    どちらも 筋・段 の順でマスが記されているという点は同じなんだぜ☆



    マス だけ棋譜に残しても 足りないんだぜ☆

    まだ、「成り」なのか、「打」なのか、 アクション の記録も必要だな☆


    駒が成るときは、うしろに「+」記号を付けるんだぜ☆

           将棋                   コンピュータ将棋
    ━━━━━━━━━━━━━━━━━━    ━━━━━━━━━━━━━━━━━━━
          2三歩成                    2d2c+


    駒を打ったときは、
    打った駒の種類を大文字で書いて「*」記号を付け、打ち込んだマスを書くんだぜ☆

           将棋                   コンピュータ将棋
    ━━━━━━━━━━━━━━━━━━    ━━━━━━━━━━━━━━━━━━━
          5五銀打                    S*5e
          5五銀 (※)

       ※「打」と分かる場合は
        「打」を省くんだぜ☆



    これで、あの長い文字列の仕組みは 全部説明したと思うんだが
    どうだろうかなんだぜ☆?



    その他の話題☆

    この 長い文字列、取った駒を記録していない んだぜ☆
    「待った」(棋譜の巻き戻し)をしたいときに、
    取られた駒が元に戻ってなくて 困るんだぜ☆

    棋譜の巻き戻し機能 を付けたい場合は、
    駒を取るたびに 何らかの方法で パソコンの中に覚えておく必要があるな☆ww




    とりあえず ひとまず書き上げなんだぜ☆
    分からないところがあれば 質問が出るだろうから それを拾っていく予定なんだぜ☆

    あと、今(2015年5月21日現在)無職なので仕事くれ☆wwwww

  • (かきかけ)同人ゲームショップ さんげっと の売上を 3倍 にする☆

    2015-05-19 06:54
    ↓ここの同人ゲーム屋さんの毎月の売上を 300万円以上 にする方法を【考える】ぜ☆
     (2015年3月頃、月の売上100万円程度と推測☆)

      https://twitter.com/akiba_usagi3get



    売上を増やすコースは、3つに絞られる☆

      (1) 来店者数を増やす          例:店がガラガラ→店がざわざわ
      (2) 1度に買っていかれる品数を増やす  例:カゴの中身が増える
      (3) 商品の単価を上げる         例:100円→110円

    ここで、(3)は選びにくいだろう☆
    さんげっとが選べるのは 2つのコースなんだぜ☆

      (★1)来店者数を増やす          例:店がガラガラ→店がざわざわ
      (★2)1度に買っていかれる品数を増やす  例:カゴの中身が増える

    全部の思考は、この ★1、★2 の2つの答えにたどり着く式となるようにしたい☆



    目標の数字、制限となる数字は、設定されている☆ 現状の数字も店員がツイートしている☆


      (1) 目標月売上  300万以上
      (2) 2015年
          3月頃の売上 100万ほど(推定) ※向上はしてきているらしい

      (3) 開店時間   11時~19時ぐらい
      (4) 開店日数   月30    ぐらい
      (5) 推測客単価  2000円  ぐらい 例:1人のカゴの中身約2千円


    ここから、客は 月に 500人、 (100万円÷2000円)
    1日平均 16.6 人 ぐらい  (500人÷月30)
    だと推測できるんだぜ☆

    土・日 に人いっぱい来ていることを考えると、平日はガラガラだな☆www
    アキバの裏通りは、水曜日に特にガラガラになるとも店員ツイートで見ている☆ww


    ここから、目標とする数字が見えてくる☆

      (★1)赤い彗星の来店者数   49.8人  ※来店者数 3倍
      (★2)ファーファのカゴの中身 6000円  ※カゴの中身3倍

    これでは 売上が9倍になってしまう☆
    実際のところ、1.74倍ぐらいあればいい☆ (ルート 3)

      (★1)1.74倍の来店者数  28.8人  ※来店者数 3倍
      (★2)1.74倍のカゴの中身 3480円  ※カゴの中身3倍

    目標が出たな☆

         (★3)
         毎日 30人 が、3500円分の買い物をしていく。
         それが毎月、毎年、 えんえん と続く店☆

            (注※別に、40人が2600円分の買い物をしてくれてもいい☆)

    これが最低限の さんげっと の生命線だぜ☆
    全部の思考は、この ★3 の答えにたどり着く式となるようにしたい☆



    「店」にできる「来店者」を増やすために取れる行動は、
      (★4) 商品が人の目に入るようにする
      (★5) 商品が目に入るとよだれが出るようにする
      (★6) 調べれば店が出てきて手が出せるようにする
      (★7) 迷った時に尋ねれば近くに安心させてくれる誰かがいるようにする
    の4つ☆
    全部の努力は、この ★4~★7 の優先順の答えにたどり着く式となるようにしたい☆

    例えば、倉庫を増やしても 直接的には 来店者数は増えないんだぜ☆


    さんげっとでは 次のように対応している☆
       (4)
          ・さんげっとは、Amazonで販売し、動画視聴者に向けて
           ニコ動等に商品広告を貼り付けている☆


          ・さんげっとは、ツイッターで フォロワー に向けて
           商品を見せびらかしている☆
             例) スクリーンショット、写真 等

          ・サークル自身が、ホームページで
           ファンに向けて 自分とこの商品を告知している☆

          ・ニコ動の動画に、Amazonの関連商品を貼るのは伸び代がありそうだぜ☆
              200件ぐらい商品を貼り付けたら、登録ボタン1回押すのに
              1分かかるようになってしまったんだぜ☆(>_<);;
          他にも 人の目に入る方法はないだろうか☆

       (5)どんなゲームに似ているのか、説明文を入れている☆
            例) ロック●ン風、ドカ●ン風 等

          他にも ハートをキャッチする方法はないだろうか☆

       (6)
          ・ホームページを解説して店舗への交通アクセスを書いている☆

          ・ネット通販がある☆

          他にも 手を出せていない原因と、その解決策がないだろうか☆

       (7)特にユーザー間だけでコミュニティを持っている様子はない☆
          2度ほど記事になった程度☆

          他にも ホットな話題にさんげっとが出てくる方法はないだろうか☆




               来店者数 伸び代 積極的表
               =============

                   目に入る店               
       ┌─────────────┐   
       │ 興味次第で来れる人   │ 店を使ってみる人    │   
    よだれ│             │             │よだれ
    が出な├─────────────┼─────────────┤が出る
    い  │ まだ開発されていない人 │ 知らないから来れない人 │   
       │             │             │   
       └─────────────┴─────────────┘   
                  目に入らない店              
    ─┤
                                       

    //かきかけ