電子書籍の厳選無料作品が豊富!

var canvas;
var ctx;
var nametbl = [
"玉","飛","角","金","銀","桂","香","歩",
"" ,"竜","馬","" ,"全","圭","杏","と"
];
var x1 = [ 0, 1, 1, 1, 0,-1,-1,-1, 1,-1];
var y1 = [-1,-1, 0, 1, 1, 1, 0,-1,-2,-2];
var movtbl = [
[ 1,1,1,1,1,1,1,1,0,0 ],
[ 2,0,2,0,2,0,2,0,0,0 ],
[ 0,2,0,2,0,2,0,2,0,0 ],
[ 1,1,1,0,1,0,1,1,0,0 ],
[ 1,1,0,1,0,1,0,1,0,0 ],
[ 0,0,0,0,0,0,0,0,1,1 ],
[ 2,0,0,0,0,0,0,0,0,0 ],
[ 1,0,0,0,0,0,0,0,0,0 ],
[ 0,0,0,0,0,0,0,0,0,0 ],
[ 2,1,2,1,2,1,2,1,0,0 ],
[ 1,2,1,2,1,2,1,2,0,0 ],
[ 0,0,0,0,0,0,0,0,0,0 ],
[ 1,1,1,0,1,0,1,1,0,0 ],
[ 1,1,1,0,1,0,1,1,0,0 ],
[ 1,1,1,0,1,0,1,1,0,0 ],
[ 1,1,1,0,1,0,1,1,0,0 ]
];
var setup = [
[ -1, -1, -1, -1, -1, -1, -1, 0, 6 ],
[ -1, -1, -1, -1, -1, 3, 7, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, 7 ],
[ -1, -1, -1, -1, -1, 2, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ]
];
var setup2 = [
[ -1, -1, -1, -1, -1, -1, -1, 1, 1 ],
[ -1, -1, -1, -1, -1, 1, 1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, 1 ],
[ -1, -1, -1, -1, -1, 0, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ]
];
var setMochi0 = [ 4, 1];
var setMochi1 = [ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 2, 6, 6, 6, 5, 5, 5, 5,];
var fontcolor = ["black","maroon"];
var boxcolor = ["pink","gray","blue","red"];
var fillcolor = ["pink","Khaki","white","LightPink"];
var psize = 32;
var board = [];
var bw = 17,bh = 11;
var ofsx = 4,ofsy = 1;
var turn = 0;
var startx = -1,starty = -1;
var username = ["ipad","iphone","android"];
var playtbl = ["先手","後手"];
function piece(){
this.id = -1;
this.player = 0;
this.movable = false;
}
function init(){
canvas = document.getElementById("world");
canvas.width = 640;
canvas.height = 400;
ctx = canvas.getContext('2d');
ctx.font = "24px 'Hiragino Mincho ProN', 'ヒラギノ明朝 ProN W3', serif";
user = window.navigator.userAgent.toLowerCase();
for(i=0; i<username.length; i++){
if(user.indexOf(username[i]) > 0)break;
}
if (i > username.length){
document.addEventListener("touchstart", touchstart);
} else {
document.addEventListener("mousedown", mousedown);
}
board = new Array(bh);
for (y=0; y<bh; y++) {
board[y] = new Array(bw);
for (x=0; x<bw; x++) {
board[y][x] = new piece();
}
}
for (y=0; y<9; y++) {
for (x=0; x<9; x++) {
board[ofsy+y][ofsx+x].id = setup[y][x];
board[ofsy+y][ofsx+x].player = setup2[y][x];
}
}
for (i=0; i<setMochi0.length; i++) {
setMochi(setMochi0[i], 0);
}
for (i=0; i<setMochi1.length; i++) {
setMochi(setMochi1[i], 1);
}
redraw();
}
function touchstart(e){
if (e.targetTouches.length == 1){
touch = e.targetTouches[0];
touchpiece(touch.pageX ,touch.pageY);
}
}
function mousedown(e){
touchpiece(e.clientX ,e.clientY);
}
function touchpiece(tx,ty){
cx = Math.floor((tx-8)/psize);
cy = Math.floor((ty-8)/psize);
if (isinside(cx,cy,0,0,bw,bh)==false)return;
if (startx == -1){
movestart(cx,cy);
} else {
moveend(cx,cy);
startx = -1;
redraw();
}
}
function movestart(cx,cy){
id = board[cy][cx].id;
if(id == -1)return;
player = board[cy][cx].player;
if(player != turn)return;
startx = cx;
starty = cy;
drawpiece(startx,starty,id,player,2)
if (isinside(startx,starty,ofsx,ofsy,9,9) == false){
for (x=ofsx; x<(ofsx+9); x++){
pawn = 0;
for (y=ofsy; y<(ofsy+9); y++){
if(id != 7)break;
id2 = board[y][x].id;
player2 = board[y][x].player;
if((player == player2)&&(id2 == 7)){
pawn++;
}
}

文字数制限がある為、続きのソースコードは次の質問に掲載しています。

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (2件)

こんにちは



>王様ゲット判定のプログラムを追加して欲しい
ざっと眺めただけですけれど・・

持ち駒を追加する際に、それが「玉将(=0)なら終了」と判定すれば良いだけではないでしょうか?
ご提示のままの処理順序だとその前に「成りますか?」とか聞いてきちゃうので、持ち駒追加(とご質問の判定)を先に行うようにした方が良いのかもしれません。

とりあえず、こんな感じで追加すればご質問のようになるかと。
 if(取った駒のid = 0 ) { 終了処理 }


なお、ご質問には関係ありませんけれど・・
詰将棋のようですが、先手が王手をかけなくても続けられちゃうけれど、それはかまわないのかなぁ?
    • good
    • 0
この回答へのお礼

今、作成途中でもっともっとプログラムを実装して行きたいと考えています!
if(取った駒のid = 0 ) { 終了処理 }と書いたら良いのですか?!

お礼日時:2024/07/21 18:59

これ、Javascript?

    • good
    • 1
この回答へのお礼

そうです!

お礼日時:2024/07/21 16:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!