wcsc26 棋譜ビューア
by mizarjp
HTML
<script src="https://cdn.rawgit.com/zenorocha/clipboard.js/v1.5.8/dist/clipboard.min.js"></script>
<script src="https://d3js.org/d3.v3.min.js"></script>
<link rel="stylesheet" href="https://cdn.rawgit.com/na2hiro/Kifu-for-JS/master/css/kifuforjs.css">
<script src="https://cdn.rawgit.com/na2hiro/Kifu-for-JS/master/out/kifuforjs.js"></script>
<p></p>
<p><select id="csalist"></select></p>
<p>
<button id="list_reload">List Reload</button>
<button id="csa_reload">CSA Reload</button>
<span><input type="checkbox" id="autotail" checked="checked">AutoTail</span>
<span><input type="checkbox" id="cmtrep">CommentReplace</span>
<button id="copybtn">Copy to Clipboard</button>
</p>
<div id="kifuplay"></div>
<footer><ul>
<li><a href="http://www.computer-shogi.org/wcsc26/">第26回世界コンピュータ将棋選手権</a></li>
<li><a href="http://live4.computer-shogi.org/wcsc26/">第26回世界コンピュータ将棋選手権 ライブ中継</a></li>
<li><a href="http://computer-shogi-live.cocolog-nifty.com/">コンピュータ将棋選手権ネット中継ブログ</a></li>
</ul></footer>
JavaScript
var Kifu = require('Kifu');
Kifu.settings = {ImageDirectoryPath: 'https://cdn.rawgit.com/na2hiro/Kifu-for-JS/master/images'};
(function(){
//// wcsc26棋譜ビューア(仮)
//// - Floodgate: http://wdoor.c.u-tokyo.ac.jp/shogi/floodgate.html
//// - Kifu-for-JS: https://github.com/na2hiro/Kifu-for-JS
//// - D3.js: https://d3js.org/
//// - clipboard.js: https://clipboardjs.com/
//// - jQuery: https://jquery.com/
//// - React: https://facebook.github.io/react/
//// - Apache: https://httpd.apache.org/
//// - GitHub: https://github.com/
//// - JSFiddle: https://jsfiddle.net/
//var ReactDOM = require('react-dom');
//var ReactTestUtils = require('react-addons-test-utils');
var trackurl;
//// wdoor.c.u-tokyo.ac.jpはHTTPS,CORS非対応のため、Reverse Proxyを噛ます
var wcsc26base = 'https://mzr.jp/wcsc26/';
var wlist = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18"].map(function(e){return {name: "live/live"+e+".csa", url: wcsc26base + "live/live"+e+".csa"};});
var kplay = 'kifuplay', kpj = '#' + kplay;
var pi = [
'-KY-KE-GI-KI-OU-KI-GI-KE-KY',
' * -HI * * * * * -KA * ',
'-FU-FU-FU-FU-FU-FU-FU-FU-FU',
' * * * * * * * * * ',
' * * * * * * * * * ',
' * * * * * * * * * ',
'+FU+FU+FU+FU+FU+FU+FU+FU+FU',
' * +KA * * * * * +HI * ',
'+KY+KE+GI+KI+OU+KI+GI+KE+KY',
' '].join(''); //// 盤上の駒 + 直前の手番,着手先
var webcache = {};
//// Bug: 304 HTTP Not Modified の際にCORSで必要な'Access-Control-*'ヘッダが取り除かれる(ブラウザ側にてエラー発生)
//// - Apache Bug 51223 - 304 HTTP Not Modified strips out CORS headers
//// - https://bz.apache.org/bugzilla/show_bug.cgi?id=51223
//// HTTP/1.1仕様において、304 HTTP Not Modified の際に必要最小限以外のヘッダは出力すべきでない(SHOULD NOT)
//// - RFC 7232 Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests - 4.1 Not Modified
//// - http://tools.ietf.org/html/rfc7232#section-4.1
//// CORS仕様において、304 HTTP Not Modified で'Access-Control-*'ヘッダが返されない場合の動作に関する言及は無い?
//// -...