control.js
//ゲームの進行制御パート

Gameクラス
//チェス盤の大きさの定数を定義する

boardsについて

盤上の配列onBoards

横の座標の定数X
縦の座標の定数Y
駒の色の変数army
駒の種類の変数character
盤の色の変数field

//横の座標は配列の0番目, 縦の座標は配列の1番目, 駒の色は配列の2番目, 駒の種類は配列の3番目, 盤の色は4番目と指定する
//横の座標は0~7にする
//縦の座標は0~7にする
//白は1, 黒は-1, 駒なしは0にする
//駒なしは0, ポーンは1, ルークは2, ナイトは3, ビショップは4, クイーンは5, キングは6にする
//盤の色は横の和が偶数なら白, 奇数なら黒にする

placePiecesメソッド
//盤面に駒を配置する

isMyTurnメソッド
//もし自分のターンなら自分の駒を動かす(駒の色が1~6)

isComTurnメソッド
//もし敵のターンなら敵の駒を動かす(AI, 駒の色が-6~-1)

isCheckメソッド
//王手されているかどうかを返す(初期はfalse)
//もし自キングがチェックされていたらフラグをtrueにする
//もし敵キングがチェックされていたらフラグをtrueにする

isGameOverメソッド
//勝負がついたかどうかを返す(初期はfalse)
//もし自キングがチェックされていてどこに動いてもチェックならフラグをtrueにしてloseを表示する(敗北)
//もし自キングがチェックされていなくてどこに動いてもチェックならフラグをtrueにしてdrawを表示する(引き分け)
//もし敵キングがチェックされていてどこに動いてもチェックならフラグをtrueにしてclearを表示する(勝利)
//もし敵キングがチェックされていなくてどこに動いてもチェックならフラグをtrueにしてdrawを表示する(引き分け)

canAttackKingメソッド
//誰かがキングを攻撃しているかどうかを返す

inputメソッド
//デバイス入力を受け付ける
//もし駒の色の値が1なら自分は動かせる, それ以外は動かせない

aiメソッド
//敵AIの入力を受け付ける
//もし駒の色の値が-1なら敵は動かせる, それ以外は動かせない

printBoardメソッド
//盤面の絵をプリントする

printPiecesメソッド
//盤面の絵をプリントする

piece.jsモジュール
//駒の動きの定義パート

変数moveOfX
//横の移動距離

変数moveOfY
//縦の移動距離

変数sumOfXAndY
//縦と横の移動距離の和は絶対値

canMovesメソッド
//ポーンは行きたいマスに敵の駒がない場合は前に1マス動ける。飛び越し不能。もし斜め前に敵の駒がある場合はそのマスに進める。もし自ポーンが縦の2段にある場合は前に2マス動ける。もし敵ポーンが縦の7段にある場合は前に2マス動ける。
//ルークは横の移動距離が0, 縦の移動距離が-7~7の時or横の移動距離が-7~7, 縦の移動距離が0の時に動ける。飛び越し不能。
//ナイトは縦の移動距離と横の移動距離合計の和が3の時and横の移動距離が3でない時and縦の移動距離が3でない時に動ける。飛び越し可能。
//ビショップは横の移動距離と縦の移動距離が等しい時に動ける。飛び越し不能。
//クイーンは横の移動距離が0, 縦の移動距離が-7~7の時or横の移動距離が-7~7, 縦の移動距離が0の時or横の移動距離と縦の移動距離が等しい時に動ける。飛び越し不能。
キングは移動距離が1の所だけ動ける。もしその場所がチェックされていたらその場所には動けない

avoidGoToOutsideメソッド
//もし横の座標が0~7でない場合または縦の座標が0~7でない場合は動けない


参考サイト

https://midorimici.com/posts/chess-app-devel-1

https://saito-saito-saito.github.io/chess/