
将棋オンラインの棋譜をkif形式に変換するブックマークレットです。Kif for Windowsや激指等のソフトで開いて、棋譜の再生、解析、他形式への変換等ができるようになります。
ブックマークレットの作成方法、使用方法を後述します。
関連リンク
Yahoo!モバゲー将棋 棋譜変換ブックマークレット
【将棋】 棋譜変換ブックマークレットまとめ #shogi #将棋 – NAVER まとめ
リリース履歴
| 2013/03/21 | v1.0 | 初版リリース Firefox 19にて動作確認 |
| 2013/03/23 | v2.0 | IE 9、Firefox 19、Chorome 25にて動作確認 手番判定追加 |
| 2013/03/24 | v2.1 | 駒を成る手が不成となっていたのを修正。 |
| 2013/05/04 | v2.2 | ブックマークレットをドラッグアンドドロップで登録できるようにした。 |
ブックマークレット
以下リンクをブラウザのブックマークツールバーにドラッグ&ドロップしてお使い下さい。
(方法を後述します)
ブックマークレットの登録方法
ブラウザのブックマークツールバーにドラッグ&ドロップしてお使い下さい。
ブックマークレットの使用方法

将棋オンラインにアクセスします。
変換したい棋譜を表示します。
そして作成したブックマークレットを押すと・・・

右クリック → 全て選択 し、 右クリック → コピー を選択してクリップボードにコピーします。
(ショートカットが使える方は Ctrl + a → Ctrl + c の方が簡単ですね。)

編集 → 棋譜・局面の貼付け を選択します。
(ショートカットが使える方は Ctrl + v の方が簡単ですね。)

棋譜が表示されました。
ブックマークレットの使用方法は以上となります。
ぜひ研究にお役立て下さい。。。
コメント付きソースコード(v2.2)
参考のため、ソースコードをコメント付きで掲載します。
javascript:
//開始日時
var%20day="開始日時:"+"xxxx"+"年"+"xx"+"月"+"xx"+"日<br>";
//持ち時間
var%20timelimit="持ち時間:"+document.getElementById("divInfo_Game_TimeSetting").innerHTML+"<br>";
//場所
var%20place="場所:将棋オンライン<br>";
//手合割
var%20handicap=document.getElementById("divInfo_Game_Handicap").innerHTML;
if(handicap.charAt(0)=="平"){
handicap="平手";
}else if(handicap.charAt(0)=="香"){
handicap="香落ち";
}else if(handicap.charAt(0)=="角"){
handicap="角落ち";
}else if(handicap.charAt(0)=="飛"){
handicap="飛車落ち";
}else if(handicap.charAt(0)=="2"){
handicap="二枚落ち";
}else if(handicap.charAt(0)=="4"){
handicap="四枚落ち";
}else if(handicap.charAt(0)=="6"){
handicap="六枚落ち";
}else{
handicap="不明";
}
handicap="手合割:"+handicap+"<br>";
var%20result=day+timelimit+place+handicap;
//手番判定
var%20imgTurnBoards=document.getElementsByClassName("imgTurn_Board");
var%20re=/sente/g;
var%20sente=0,gote=1;
if(imgTurnBoards[0].src.match(re)){
sente=0;
gote=1;
}else{
sente=1;
gote=0;
}
//ニックネーム
var%20nicks=document.getElementsByClassName("divNamePlate_Board_Nick");
var%20infos=document.getElementsByClassName("divNamePlate_Board_Info");
result+="先手:"+nicks[sente].innerHTML+"<br>";
result+="後手:"+nicks[gote].innerHTML+"<br>";
result+="手数----指手---------消費時間--<br>";
//棋譜
var%20moves=document.getElementsByClassName("divKifu_One");
var%20move="";
var%20i=0;
for(i%20=0;%20i%20<%20moves.length;%20i++){
move=moves[i].innerHTML;
move=move.replace(/\./g," ");//ピリオドを半角スペースに
move=move.replace(/△/g,"");//△を除去
move=move.replace(/▲/g,"");//▲を除去
move=move.replace(/\s1/g," 1");//半角を全角に
move=move.replace(/\s2/g," 2");
move=move.replace(/\s3/g," 3");
move=move.replace(/\s4/g," 4");
move=move.replace(/\s5/g," 5");
move=move.replace(/\s6/g," 6");
move=move.replace(/\s7/g," 7");
move=move.replace(/\s8/g," 8");
move=move.replace(/\s9/g," 9");
//駒を成る手の場合
//将棋オンラインの棋譜は"(xxx)成"になっており、kif形式にするには"成(xxx)"とする必要がある。
var matchResult = move.match(/\(..\)成/);
if(matchResult){
var locate = matchResult[0].substring(1, 3);
move=move.substring(0, matchResult.index) + "成(" + locate + ")";
}
//末尾に時間を付加
move=move.replace(/$/g," ( 0:00/00:00:00)<br>");
result+=move;
}
document.body.innerHTML=result;


いつもお世話になってますm(_ _)m
訪問者数とか増やしてるのはJavascriptかPHPなんでしょうか?
例えばニコニコ静止画とかです。知っていたら教えて欲しいです!
お願いしますm(_ _)m
>あんぱんさん
こんにちは。
おおむね以下のような流れかと思います。
[利用者のPC]
・ブラウザでニコニコ静画にアクセスするとFlashが表示される
・Flashがニコニコ静画のサーバに静画データや訪問者数データを要求する
このような機能はFlashやJavaScriptで作れます
ジャンルとしてはクライアントアプリケーションと呼ばれています。
↓
[ニコニコのサーバ]
・ニコニコ静画のサーバで動いているアプリがFlashからの要求を受け付ける
このような機能はPHPとかJavaServletとかRuby on RailsとかASP.NET等で作られていると思います。
ジャンルとしてはWebアプリケーション、サーバアプリケーションと呼ばれています。
・ニコニコ静画のサーバで動いているアプリが要求された静画データや、訪問者数をデータベースから取得
サーバアプリケーションはデータベースと組み合わせて使うことが多いです。
・ニコニコ静画のサーバで動いているアプリがFlashに応答を返す
要求を受け取ったり応答を返したりするには、HTTP通信やSocket通信が使われます。
↓
[利用者のPC]
・Flashが受け取った応答データ(静画データや訪問者数データ)を表示する
( なお、本ブログ記事は将棋のブックマークレトの記事なので、ちょっと話題が違いますね。。
コメント受付ページを用意していますので、ちょうどいいブログ記事が見当たらない場合は、こちらにコメント頂けると幸いです。
http://c-loft.com/blog/?p=1345 )