[トップ][編集][ノート][編集履歴][一覧][最近の更新][->English]

R-331G

まえがき

現在の進行状況

  • 盤が完成(?)し、駒が動かせる状態。
  • 後手の駒がランダムに動く(多分合法手)

バグ

  • 指し手表示で持ち駒を打った場合の表記が●●歩(1,9)となる
    • なんでも19だったため19の香が消えていた

今後の予定等

  • コンピュータ側の思考
    • 合法手を出力
    • 局面評価の関数作成
    • 詰めルーチン
      まずは王手検索から…
    • 定跡データベース・エディタ
  • 見た目など
    • 駒や盤をきれいに作り直す
    • 時間(対局時計)の表示
  • プログラム(コード)の整理
    • 使っている変数を思い出し、見直す。
    • HSP2.6以降でも動くようにする。
    • 見やすく書き直す。
    • 早い処理速度のアルゴリズムを目指す。

盤の表現について

変数ban(x)

  • 1一から9九までのマスをban(0)〜ban(79)で表している。
    位置については以下のとおり。
    0 1 2 3 4 5 6 7 8
    9 10 11 12 13 14 15 16 17
    18 19 20 21 22 23 24 25 26
    27 28 29 30 31 32 33 34 35
    36 37 38 39 40 41 42 43 44
    45 46 47 48 49 50 51 52 53
    54 55 56 57 58 59 60 61 62
    63 64 65 66 67 68 69 70 71
    72 73 74 75 76 77 77 78 79
  • マスに駒が無いときはban(x)=0
  • 駒台の駒については以下の通り
    先手の駒台:ban(81)〜ban(87)
    ban(81):持ち駒の飛車の枚数
    ban(82):持ち駒の角の枚数
    ban(83):持ち駒の金の枚数
    ban(84):持ち駒の銀の枚数
    ban(85):持ち駒の桂馬の枚数
    ban(86):持ち駒の香車の枚数
    ban(87):持ち駒の歩の枚数
    ※後手の駒台:ban(88)〜ban(94)には
    先手の駒台番号に7を加えたものが対応

駒の種類

  • 駒に番号をつけて局面を変数で表す
    番号は以下のとおり
      
    先手 1 2 3 4 5 6 7 8
    (成) - 9 10 - 11 12 13 14
    後手 15 16 17 18 19 20 21 22
    (成) - 23 24 - 25 26 27 28
  • 駒を並べるとこのような感じになります。
    ;駒の初期配置
    
            dim ban,100
    
            ban.0=22,23,24,25,28,25,24,23,22        ;1段目
            ban.9=0,27,0,0,0,0,0,26,0               ;後手の飛・角
            ban.18=21,21,21,21,21,21,21,21,21       ;後手の歩
    
            ban.27=0,0,0,0,0,0,0,0,0                ;4段目
            ban.36=0,0,0,0,0,0,0,0,0                ;5段目
            ban.45=0,0,0,0,0,0,0,0,0                ;6段目
    
            ban.54=8,8,8,8,8,8,8,8,8                ;先手の歩
            ban.63=0,2,0,0,0,0,0,3,0                ;先手の角・飛
            ban.72=7,6,5,4,1,4,5,6,7                ;9段目
    
    省略するとこうなります
    ;駒の初期配置
            dim ban,100
            ban.0=22,23,24,25,28,25,24,23,22,0,27   ;後手(1段目と飛車)
            ban.16=26,0,21,21,21,21,21,21,21,21,21  ;後手(歩と角)
            ban.54=8,8,8,8,8,8,8,8,8,0,3            ;先手(歩と角)
            ban.70=2,0,7,6,5,4,1,4,5,6,7            ;先手(1段目と飛車)
    
  • 使用する駒の画像
    [image]
    駒のサイズは32×32のjpeg形式(サイズ縮小とHSPlet対応の為)

棋譜の表記について

棋譜表示サブルーチン

現在の状態・問題点・課題等memo

  • 先手番の指し手のみしか表示していない。
  • HSP2.55(HSPlet対応のため)
  • 不成に未対応
  • 「打」「右」「行」等の表現を今後検討
        ;-------------- 指し手表示 --------------
*sasite_hyouji

        if teban=gote:return            ;先手のみ表示

        kihuyoko="987654321"
        yoko=masux
        a="??"
        wpeek b,kihuyoko,masux*2
        wpoke a,0,b

        kihutate="一二三四五六七八九"
        tate=masuy
        c="??"
        wpeek d,kihutate,masuy*2
        wpoke c,0,d
                
        if koma=1:e="王"
        if koma=2:e="飛"
        if koma=3:e="角"
        if koma=4:e="金"
        if koma=5:e="銀"
        if koma=6:e="桂"
        if koma=7:e="香"
        if koma=8:e="歩"
        if koma=9:e="龍"    :if nari=1:e="飛成":nari=0
        if koma=10:e="馬"   :if nari=1:e="角成":nari=0
        if koma=11:e="成銀" :if nari=1:e="銀成":nari=0
        if koma=12:e="成桂" :if nari=1:e="桂成":nari=0
        if koma=13:e="成香" :if nari=1:e="香成":nari=0
        if koma=14:e="と"   :if nari=1:e="歩成":nari=0
        
        kif+=""a+c+e+"("+aa+""+bb+")"+"\n"

        return

その他

  • 将棋関係リンク