編集:クイーン以外の何かに昇格すると、すべてが爆発します。これをサポートすることも非常に困難です(パート2の私のプログラムはプロモーション不足をサポートしますが、ピクセルを読み取るだけでパート1の情報を保存するのは悪夢です)。
Edit2:私はあなたがPGNに対する実際のボードチェスを意味していることに気付いたので、これはすべて役に立たず、おそらく私の答えを削除します。
パート1:ピクセルリーダーを使用して正方形を保存する
完全に可能です。必要な手順は次のとおりです。
- ボードの設定を変更して、最後の動きを強調するようにします(境界線だけでなく)
- 与えられた(x、y)のピクセルを読み取るプログラムを書く
- 各正方形で約5+ピクセルを読み取るようにします(したがって、カーソル/ピースが読み取られるすべてのピクセルをカバーすることは不可能です)
- HEXをRBGに変換してから、「最後の動き」の色に近いと思われる範囲の許容値を与える
- フォーマットとアレイ上の移動を保存する
["h1-h8", "e4-e5", ...]
だけで、初期と終了正方形(オーダー重要でありません)
注:ここから、最初の/終了位置がどの正方形であるかを実際に知ることはできませんが、2つの可能性があり、そのうちの1つだけが正当です。
私はC#でのRPGのゲームのための単純なピクセルベースのマクロ/ボットを書かれている、私はこれではない保証できるという、難しいことを考えます:
- カムは静的です(したがって、x、yの値が台無しになりません)
- 以前に背景色を知っているか、プレイする前に設定することができます
基本的に、ゲームをオンラインでプレイし、画面から直接録画する場合に最適です。
申し訳ありませんが、パート1で利用できるプログラムはありません
パート2:そのリストをPGNにエクスポートする
このリストを実際のPGNに変えるには、動きを記録するJavaScriptで記述したプログラムと、moveCaller()
2つの正方形の位置を渡しfinal_pos
、法的な動きで検索しinitial_pos
、一致する場合は呼び出しますmakeMove()
。だから我々はそれを2回呼び出すことができますe5 to e4
し、e4 to e5
私はそれが違法1を無視することを保証します。
- プロジェクトをダウンロードします(直接リンク.zip)
- 解凍する
.zip
index.html
これでファイルのJavaScriptを変更します。
'
$(function(){
var i, len, arr, temp, m_board;
m_board=IsepicChess.initBoard({name : "main"});
arr=["e4-e2", "e7-e5", "f3-g1"]; //is ok for the initial and final squares to be swapped
for(i=0, len=arr.length; i<len; i++){
temp=arr[i].split("-");
//one of the two following lines will silently fail
m_board.moveCaller(temp[0], temp[1]);
m_board.moveCaller(temp[1], temp[0]);
}
m_board.refreshBoard();
});
.4。移動リストをコピーして、その上にPGNヘッダーなどを追加します[WhiteElo "2400"]
。