![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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++;
}
}
文字数制限がある為、続きのソースコードは次の質問に掲載しています。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_06.png?e8efa67)
- 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
- 今の自分の気分スタンプを選ぼう!
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No3です。
最低限で良ければ・・
>if(board[endy][endx].id != -1){
>setMochi(board[endy][endx].id, player);
>}
の部分を
if(board[endy][endx].id != -1){
if(board[endy][endx].id==0) alert("後手の負け!!");
setMochi(board[endy][endx].id, player);
}
に変えれば、ご質問の判定は可能です。
(追加の1行が、No2の回答に該当します)
(インデントのための全角空白は削除のこと)
No.3
- 回答日時:
No2です。
>if(取った駒のid = 0 ) { 終了処理 }と書いたら良いのですか?!
あれっ?
スクリプトはわからないって人なのでしょうか?
拾いものを改造しようとでもしているのかな・・?
意味がそうなるように、センテンスを追加すれば良いってことですけれど・・
>作成途中でもっともっとプログラムを実装して行きたいと考えています!
回答文を読んでも意味がわからない様なら(多分)無理なので、スクリプトがわかる人に頼むか、依頼サイトなどを利用してお願いするのが無難と思います。
No.2
- 回答日時:
こんにちは
>王様ゲット判定のプログラムを追加して欲しい
ざっと眺めただけですけれど・・
持ち駒を追加する際に、それが「玉将(=0)なら終了」と判定すれば良いだけではないでしょうか?
ご提示のままの処理順序だとその前に「成りますか?」とか聞いてきちゃうので、持ち駒追加(とご質問の判定)を先に行うようにした方が良いのかもしれません。
とりあえず、こんな感じで追加すればご質問のようになるかと。
if(取った駒のid = 0 ) { 終了処理 }
なお、ご質問には関係ありませんけれど・・
詰将棋のようですが、先手が王手をかけなくても続けられちゃうけれど、それはかまわないのかなぁ?
今、作成途中でもっともっとプログラムを実装して行きたいと考えています!
if(取った駒のid = 0 ) { 終了処理 }と書いたら良いのですか?!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript 定積分の近似値を計算する関数composite_newton_cotesをつくりたい 1 2023/01/18 14:09
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- JavaScript javaScriptのコードの修正をお願いします。 1 2024/05/16 12:38
- JavaScript 台形公式 2 2022/12/21 18:38
- JavaScript [初心者]javascriptのfor文でなぜか繰り返し処理をしない。理由がわかりません。 4 2023/11/10 15:52
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript メールフォームの日付入力フォームで過去の日付で範囲指定する方法が分かりません 3 2024/04/05 17:43
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
この将棋プログラムに王様ゲッ...
-
アルファベットABCD…をスマート...
-
翌月を取得するGASが分かりません
-
船のゲームを作っているのです...
-
google apps scriptの終了のさせ方
-
VSCODE[Python]の設定について
-
JavaScriptを使って毎日決まっ...
-
Google AJAX Feed API
-
ジェネレーターの作り方
-
ASP.NETのコントロールの値をJa...
-
二次元配列に値をセットしたい...
-
なぜmatchメソッドがエラーにな...
-
関数でy=g(x)のgとは何の略です...
-
Linux バイナリ実行できない "...
-
文字を点滅させるスクリプト ...
-
excle VBA とweb上の検索を利用...
-
Java Scriptのメソッドについて
-
任意の座標をクリックさせるには
-
idを使わずにonclickで自身の要...
-
XMLHttpRequestオブジェクトが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
なぜmatchメソッドがエラーにな...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
javascriptでiframeのURL変更は?
-
C#で、ContextMenuStripに動的...
-
ASP.NET MVCでObjectをjsに渡す
-
1日1回引けるJavaScriptおみく...
-
javascriptでテーブルに追加し...
-
JavaScriptを使って毎日決まっ...
-
googleスプレッドシートのApps ...
-
JavaScriptで文字列の特定文字...
-
アクセス時からのカウントダウ...
-
ローカルにあるファイルを検索...
おすすめ情報