スポンサーリンク

【html】将棋の作り方解説!変数定義②盤本体/駒台の大きさ/色/手番編【javascript 将棋】


htmlJavaScript だけで将棋を作りたい
という方向け、初学者向けの解説記事となります。

当記事は解説パート②です。

・全体像を先に理解したい
・コードだけコピぺしたい
という方はこちらを⇩ご覧ください。

【html】将棋の作り方解説!コピペだけで簡単に動く!【javascript】

解説箇所

当記事では

・変数についての説明
・下記コードの34~47行目
解説となります。
下記に完成図を載せておりますので、お手元のエディタにコピペして活用いただきれば幸いです。

【5*5将棋 サンプル】
※0.5Xでご使用ください

変数定義

当コードには、必要な変数がいくつかあります。
その中で今回は、以下を表示させる準備をしています。

・将棋盤本体 
・色
・盤含めた全体の大きさ

手番

順に見ていきましょう。

・将棋盤本体

今回、将棋盤を表示するのにJavascriptのcanvasを使用します。
キャンバスの名前通り、自分で指定した大きさ/色で描画(ブラウザにお絵描き)ができる
機能です。

関数について解説する際にも触れますが、わかりやすいサイトを見つけましたので
よろしければご参考ください。

canvas要素とは?HTMLとJavaScriptを使って図形を描いてみよう!

[Komadai][ctx]

var Komadai;
var ctx;

見た目の通り、何かを特別に定義しているわけではありません。これは
canvas機能を使う為、分かりやすい名前の変数を定義しただけ

となります。つまり、名前は何でもいいわけです。
[Syogiban]とか[Ban]とか名前は自由に決めることができます。そのため

『canvas機能を使う為に適当に名前つけただけだな…』

と理解いただくだけで大丈夫です。

・色

続いて色、これは3種類に分かれますので順に紹介します。

また、初学者の方向けに補足を1つします。

var fontcolor = ["black", "maroon"];

上記のように関数の中に色の名前を入れています。
使いたい色を場面に応じて抜き出すことで駒やマス目の色を変えることができます。

var fontcolor = ["black", "maroon"];
////////////////////////////////////////////////////
fontcolor[0] = ["black"];
fontcolor[1] = ["maroon"];
////////////////////////////////////////////////////
ctx.fillStyle = fontcolor[0];//文字を"黒"色にしなさい

この「何番目の色で描画(お絵描き)してね」という処理が今後たくさんでてきますので
今一度ご認識いただければ今後の理解がわかりやすくなると思います。

[fontcolor][boxcolor][fillcolor]

var fontcolor = ["black", "maroon"];
var boxcolor = ["LimeGreen", "gray", "blue", "red"];
var fillcolor = ["LimeGreen", "khaki", "white", "LightPink"];

font(フォント)は文字、fill(フィル)は塗りつぶしという意味。以下のようになります。

fontcolor → 文字の色
boxcolor → マス目のの色
fillcolor   → マス目を塗りつぶす
『文字/枠/塗りつぶし。3つの変数の中に色が入ってるだけだな』
と理解いただければ、まず大丈夫です。

・盤含めた全体の大きさ

上述した「将棋盤」以外に以下のようなものが必要です。

・駒台
・画面の余白
・駒の大きさ
将棋盤にも共通しているのは「具体的な長さ・大きさを指定する必要がある」点です。
『駒とか将棋盤は大きさが変わらないから先に指定しておくんだな』
という頭で見ていただければ理解が早いかと思います。

[psize][board]

var psize = 40;
var board = [];

psizep=piece(ピース:英語で「」という意味)の略です。
今回作成する駒は文字だけで駒を表現しています。

その為、文字の大きさ=駒のサイズとなります。
boardは後で空の配列を入れるための箱です。

後で配列を代入していくので今時点では何も定義せずOKです。

[bw][by][ofsx][ofsy]

var bw = 11;
var bh = 11;
var ofsx = 3;
var ofsy = 3;

bwのbは「Ban(盤)」です。他、それぞれ言葉を簡単にしますと

w = width
h = height
ofs = 余白
x/h =軸か
まとめると下記の画像になります。
『全体の大きさを決める。駒台用の余白を全体から引けば将棋盤の大きさになる』
具体的にこのように描画するかはcanvasの説明に際に致します。
今時点では、上記の画像のようなイメージをしていただければ問題ありません。

・手番

最期に手番、「今は先手/後手だよ」を示す変数です。
こちらは大変シンプルですのでこのままご紹介いたします。

var turn = 0;
var startx = -1;
var starty = -1;
var playtbl = ["先手", "後手"];

playtbl は画面に「今は先手/後手のターンですよ」を表示させる為の文字列です。
また、他の変数はそれぞれの関数の中で

『[turn = 0]なら手番を先手⇔後手を変更して』
という処理をします。
その判定をする為に、0という数字を定義しているということですね。

まとめ

ここまで、大変お疲れさまでした。

今回は変数定義の後半でしたが、いかがだったでしょうか。

煩雑な説明で伝わりづらい箇所も多々あったかと思います。
今後、できるだけ分かりやすく解説できるよう精進します。

前回 将棋の作り方解説!変数定義①[駒の動き/初期配置]編
次回

皆様のよいコーデイングライフと将棋ライフを祈っております。