

今、phpで将棋のプログラムを書いています。  
盤面のマスに2をいれると、歩兵を置きます。  
盤面のマスに1をいれると、仲人を置きます。（仲人は駒の名前）  
盤面のマスに0をいれると、何も駒を置きません。

駒の種類が１５０種類あるので、手作業ではなくて置換を使いたいと思っています。  
index.phpというファイルに関数があります。その関数`ban_position($x,$y)`を呼び出すと、`return
$koma_name;`で駒の名前を返します。

[code]

    //関数です。
     function ban_position($x,$y){
        global $koma_position;
        if ($koma_position [$x][$y]==0) {
            $koma_name = "　";
        }else if ($koma_position [$x][$y]==1) {
            $koma_name = "仲人";
        }
    *
    *
    *
    .
    .
    //アスタリスクを１５０になるまでたくさん並べます。
    .
    .
    *
    *
    *//ここが150番目のelse if文にしたいと思っています。
        return $koma_name;
     }
    
[/code]

何をしたいのかというと、ひとつひとつのアスタリスクを下記のelse if文に置換しようとしてます。

[code]

    else if ($koma_position [$x][$y]==▲▲) {
        $koma_name = "★★";
    }
    
[/code]

このelse if文の★★部分をpos_data.txtに書いてある150種類の駒の名前に置換しようとしています。  
そのときに、▲▲部分をそれぞれの駒の名前に対応する番号に置換しようとしています。  
理想図↓

[code]

     function ban_position($x,$y){
        global $koma_position;
        if ($koma_position [$x][$y]==0) {
            $koma_name = "　";
        }else if ($koma_position [$x][$y]==1) {
            $koma_name = "仲人";
        }else if ($koma_position [$x][$y]==2) {
            $koma_name = "歩兵";
        }else if ($koma_position [$x][$y]==3) {
            $koma_name = "飛車";
        }else if ($koma_position [$x][$y]==4) {
            $koma_name = "左車";
        }else if ($koma_position [$x][$y]==5) {
            $koma_name = "右車";
        }
    *
    *
    *
    .
    .//150番目まで続く。
    .
    *
    *
    *
        return $koma_name;
     }
    
[/code]

gitにindex.phpとpos_data.txtがあります。

<https://gist.github.com/Zerosen/033ad85a37f44aeb5a94a902891b737c>

教えてくれる方いたら、よろしくお願いします。  
pos_data.txtの今回重要な置換したい部分だけ一応ここに貼っておきます。

[code]

    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玉将
    100駒なし
    101奔人
    102金
    103金
    104金
    105金
    106金
    107金
    108金
    109金
    110成らず
    111成らず
    112金
    113金
    114成らず
    115金
    116金
    117金
    118金
    119金
    120金
    121金
    122金
    123金
    124蝙蝠
    125奔猪
    126奔熊
    127奔狼
    128師子
    129奔王
    130成らず
    131金
    132奔猫
    133仙鶴
    134山母
    135奔蛇
    136奔龍
    137奔豹
    138奔虎
    139王子
    140金
    141奔土
    142奔石
    143奔瓦
    144奔鉄
    145奔銅
    146奔銀
    147奔金
    148教王
    149法性
    150自在王
    
[/code]


CC BY-SA 4.0
2018-09-16T05:47:03.007
48447
2018-09-16T06:51:18.457
2018-09-16T06:51:18.457
19110
20666
question
php 正規表現
置換したいです。行数がすごく多くなってきました。