http://homepage1.nifty.com/Ike/ComShogi/01.html
上記のページを参考にコンピュータ将棋を作成中です。
このページでは成り駒を表すために(1ビットで) PROMOTED = 1 << 3
、自分自身の駒を表すために(1ビットで)SELF = 1 << 4
、敵の駒を表すために(1ビットで)ENEMY = 1 << 5
を使っていますがそれぞれどういう意味かがわかりません。。
以下、一部ソースコードです。
enum { // 何もないところ EMPTY=0, EMP=0, // 3文字も準備しておくとソースが見やすいので(笑) // 成り駒につける目印(1ビット) PROMOTED=1<<3, // 駒をあらわす数値 FU=1, KY=2, KE=3, GI=4, KI=5, KA=6, HI=7, OU=8, TO=FU+PROMOTED, NY=KY+PROMOTED, NK=KE+PROMOTED, NG=GI+PROMOTED, UM=KA+PROMOTED, RY=HI+PROMOTED, // 自分自身の駒につける目印(1ビット) SELF=1<<4, // 敵の駒につける目印(1ビット) ENEMY=1<<5, // 敵も味方も進めないところ(盤の外)の目印 WALL=SELF+ENEMY, // 実際の駒 SFU=SELF+FU, //味方の歩 STO=SELF+TO, //味方のと金 SKY=SELF+KY, //味方の香車 SNY=SELF+NY, //味方の成り香 SKE=SELF+KE, //味方の桂馬 SNK=SELF+NK, //味方の成り桂 SGI=SELF+GI, //味方の銀 SNG=SELF+NG, //味方の成り銀 SKI=SELF+KI, //味方の金 SKA=SELF+KA, //味方の角 SUM=SELF+UM, //味方の馬 SHI=SELF+HI, //味方の飛車 SRY=SELF+RY, //味方の龍 SOU=SELF+OU, //味方の玉 EFU=ENEMY+FU, //敵の歩 ETO=ENEMY+TO, //敵のと金 EKY=ENEMY+KY, //敵の香車 ENY=ENEMY+NY, //敵の成り香 EKE=ENEMY+KE, //敵の桂馬 ENK=ENEMY+NK, //敵の成り桂 EGI=ENEMY+GI, //敵の銀 ENG=ENEMY+NG, //敵の成り銀 EKI=ENEMY+KI, //敵の金 EKA=ENEMY+KA, //敵の角 EUM=ENEMY+UM, //敵の馬 EHI=ENEMY+HI, //敵の飛車 ERY=ENEMY+RY, //敵の龍 EOU=ENEMY+OU, //敵の玉 };
1 << 3
で何をしているかご教示いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。