
授業の課題でjavascriptを使ってオセロゲームを作っています。
ただ今、駒をひっくり返す処理ができず困っております。
function judgeCell(p,q){
rightp = p+1;
while(document.getElementById("c"+ rightp + q).innerHTML == counter % 2 ? "○" : "●"){
rightp = rightp + 1;
if(document.getElementById("c" + rightp + q).innerHTML == counter % 2 ? "●" : "〇"){
break;
}
}
for(; rightp==p ; rightp--){
document.getElementById("c"+ rightp + q).innerHTML = counter % 2 ? "●" : "〇";
}
}
①置いた駒の右を判定し、色が違えばさらに右の駒を判定する。
②置いた駒と同じ色にぶつかったら左に戻りながら色を反転させる。
このような構想で作っていました。とりあえず右側の反転処理を完成させて、その後それを利用して残り7方向の処理を作っていくつもりです。
F12キーを押してコンソールを確認してみるとエラーコードは表示されないものの、駒が反転しません。
javascriptは最近授業で触れたばかりの初心者のため稚拙なコードかとは思いますが、お答えいただけますと幸いです。
参考までに当該箇所以外のjavascriptコードも記載しておきます。
var counter;
var gameclear;
function makeBoard(){
var i,j;
var cells="";
counter=0;
gameclear=0;
for(i=0; i<8; i=i+1){
for(j=0; j<8; j=j+1){
cells = cells + "<button class='cell' id='c" + i + j +"'onClick='changeCell("+i+","+j+");'> </button>";
}
cells = cells +"<br>";
}
document.getElementById("board").innerHTML = cells;
document.getElementById("count").innerHTML="手数:" + counter;
document.getElementById("message").innerHTML="";
document.getElementById("c44").innerHTML = "●";
document.getElementById("c33").innerHTML = "●";
document.getElementById("c34").innerHTML = "○";
document.getElementById("c43").innerHTML = "○";
}
function changeCell(x,y){
if(gameclear ==0 && document.getElementById("c" + x + y).innerHTML == " "){
counter = counter + 1;
document.getElementById("c" + x + y).innerHTML = counter % 2 ? "●" : "○";
document.getElementById("count").innerHTML = "手数:" + counter;
judgeCell(x,y);
}
}


