Goban 0.4

マウスをクリックすると碁石を自由に置けます。待ったはできません。[パス Pass] ボタンでパスすることができます。石を囲うと取ることができます。コウの処理まだはできません。

実行結果

Goban 0.4 には HTML5 Canvas が必要です。 Goban 0.4 には HTML5 Canvas が必要です。 Goban 0.4 には HTML5 Canvas が必要です。
0 0

ソース

後半のソースはリンクを張ってあります。ソースは UTF-8 でエンコードしてあります。

goban04.html

スタイルシートの部分です。Canvas をレイヤーのように重ねるための工夫をしています。
<style>

</style>
実行結果を表示する部分です。
<h2>実行結果</h2>
<div style="height: 510px; width: 640; position: relative">
<canvas width="640" height="480" id="table">Goban 0.4 には HTML5 Canvas が必要です。</canvas>
<canvas width="640" height="480" id="shadow">Goban 0.4 には HTML5 Canvas が必要です。</canvas>
<canvas width="640" height="480" id="stones">Goban 0.4 には HTML5 Canvas が必要です。</canvas>
<div id="control">
<img style="vertical-align: bottom; padding-left: 10px" src="img/white22.png">
<input id="white" type="button" value="パス Pass" onclick="pass()">
<span id="pw">0</span>
<img style="vertical-align: bottom; padding-left: 10px" src="img/black22.png">
<input id="black" type="button" value="パス Pass" onclick="pass()">
<span id="pb">0</span>
<input style="margin-left: 40px" type="button" value="はじめから Restart" onclick="restart()">
</div><!-- end of control -->
</div><!-- end of 実行結果 -->

goban04.js

碁盤のイメージを残したまま、碁石を消すために、レイヤーのように Canvas を重ねる処理を加えました。 また、碁盤上の石を整列し、オブジェクト Pos を使って着手禁止、取りの処理を追加しました。
リンク先をご覧下さい。

board02.js

碁盤を描くレイヤー、碁石を描くレイヤー、碁石の影を描くレイヤーの3つのコンテキストを使い分けています。
リンク先をご覧下さい。

pos02.js

オブジェクト SixVectors の計算が重いので、取り外しできるようにしました。
リンク先をご覧下さい。

move02.js

パスの扱いを変更しました。
リンク先をご覧下さい。

bvector04.js

性能向上のための変更をしました。
リンク先をご覧下さい。

bmatrix03.js

性能向上のための変更をしました。
リンク先をご覧下さい。