亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問我的代碼哪里錯了,為什么我下了一步棋后,計算機沒有下棋?

var?chessBoard?=?[];??

var?over?=?false;

var?me?=?true;??


//贏法數組
var?wins?=?[];

//贏法的統計數組
var?mywin?=?[];
var?computerwin?=?[];

for?(var?i=0;?i<15;?i++)?{
?chessBoard[i]?=?[];
?for(var?j=0;?j<15;?j++){
??chessBoard[i][j]?=?0;
?}
}

for(var?i=0;?i<15;?i++){
?wins[i]?=?[];
?for?(var?j=0;?j<15;?j++){
??wins[i][j]?=?[];
?}
}


var?count?=?0;??
for?(var?i?=?0;?i<15;?i++)?{
?for(var?j=0;?j<11;?j++){
??for(var?k=0;?k<5;?k++){
???wins[i][j+k][count]?=?true;
??}
??count++;
?}
}
for?(var?i?=?0;?i<15;?i++)?{
?for(var?j=0;?j<11;?j++){
??for(var?k=0;?k<5;?k++){
???wins[j+k][i][count]?=?true;
??}
??count++;
?}
}
for?(var?i?=?0;?i<11;?i++)?{
?for(var?j=0;?j<11;?j++){
??for(var?k=0;?k<5;?k++){
???wins[i+k][j+k][count]?=?true;
??}
??count++;
?}
}
for?(var?i?=?0;?i<11;?i++)?{
?for(var?j=14;?j>3;?j--){
??for(var?k=0;?k<5;?k++){
???wins[i+k][j-k][count]?=?true;
??}
??count++;
?}
}

//console.log(count);

for(var?i=0;?i<count;?i++){
?mywin[i]?=?0;
?computerwin[i]?=?0;
}


var?chess?=?document.getElementById('chess');
var?context?=?chess.getContext('2d');?
?/*getContext()?

context.strokeStyle?=?"#BFBFBF"

var?logo?=?new?Image();
logo.src?=?"Images/1.jpg";
logo.onload?=?function()?{
?context.drawImage(logo,0,0,450,450);
?drawChessBoard();

}

var?drawChessBoard?=?function()?{
?for(var?i=0;i<15;i++){
??context.moveTo(15+30*i,15);
??context.lineTo(15+30*i,435);
??context.stroke();?
??context.moveTo(15,15+30*i);
??context.lineTo(435,15+30*i);
??context.stroke();?
?}
}


var?oneStep?=?function(i,?j,?me)?{
?context.beginPath();
?context.arc(15?+?i*30,15?+?j*30,?13,?0,?2?*?Math.PI);
?context.closePath();
?var?gradient?=?context.createRadialGradient(15?+?i*30?+?2,?15?+?j*30?-?2,?13,?15?+?i*30?+?2,15?+?j*30?-?2,?0);??
?if(me)?{
??gradient.addColorStop(0,"#0A0A0A");
????????gradient.addColorStop(1,"#636766");
?}?else?{
??gradient.addColorStop(0,"#D1D1D1");
????????gradient.addColorStop(1,"#F9F9F9");
?}
?context.fillStyle?=?gradient;
?context.fill();
}


chess.onclick?=?function(e)?{
?if(over)?{??
??return;
?}
?if(!me){???
??return;
?}
?var?x?=?e.offsetX;
?var?y?=?e.offsetY;
?var?i?=?Math.floor(x?/?30);
?var?j?=?Math.floor(y?/?30);
?if(chessBoard[i][j]?==?0){
??oneStep(i,?j,?me);
??chessBoard[i][j]?=?1;
??for(var?k=0;?k<count;?k++){
???if(wins[i][j][k])?{
????mywin[k]++;
????computerwin[k]?=?6;
????if(mywin[k]?==?5)?{
?????window.alert("你贏了");
?????over?=?true;
????}
???}
??}
??if(!over)?{
???me?=?!me;???
???computerAI();
??}
?}
}

var?computerAI?=?function()?{
?var?myScore?=?[];
?var?computerScore?=?[];
?var?max?=?0;
?var?u?=?0,?v?=?0;
?for(var?i=0;?i<15;?i++){
??myScore[i]?=?[];
??computerScore?=?[];
??for(var?j=0;?j<15;?j++){
???myScore[i][j]?=?0;
???computerScore[i][j]?=?0;
??}
?}
?for(var?i=0;?i<15;?i++)?{
??for(var?j=0;?j<15;?j++)?{
???if(chessBoard[i][j]?==?0){
????for(var?k=0;?k<count;?k++)?{
?????if(wins[i][j][k])?{
??????if(mywin[k]?==?1){
???????myScore[i][j]?+=?200;
??????}?else?if(mywin[k]?==?2)?{
???????myScore[i][j]?+=?400;
??????}?else?if(mywin[k]?==?3)?{
???????myScore[i][j]?+=?2000;
?????????}?else?if(mywin[k]?==?4)?{
??????????myScore[i][j]?+=?10000;
?????????}??
?????????if(computerwin[k]?==?1){
???????computerScore[i][j]?+=?220;
??????}?else?if(computerwin[k]?==?2)?{
???????computerScore[i][j]?+=?420;
??????}?else?if(computerwin[k]?==?3)?{
???????computerScore[i][j]?+=?2100;
?????????}?else?if(computerwin[k]?==?4)?{
??????????computerScore[i][j]?+=?20000;
?????????}??
?????}????
????}
????if(myScore[i][j]?>?max)?{
?????max?=?myScore[i][j];
?????u?=?i;
?????v?=?j;
????}?else?if(myScore[i][j]?==?max)?{
?????if(computerScore[i][j]?>?computerScore[u][v])?{
??????u?=?i;
??????v?=?j;
?????}
????}
????if(computerScore[i][j]?>?max)?{
?????max?=?computerScore[i][j];
?????u?=?i;
?????v?=?j;
????}?else?if(computerScore[i][j]?==?max)?{
?????if(myScore[i][j]?>?myScore[u][v])?{
??????u?=?i;
??????v?=?j;
?????}
????}

???}
??}
?}
?oneStep(u,?v,?false);
?chessBoard[u][v]?=?2;
?for(var?k=0;?k<count;?k++){
??if(wins[u][v][k])?{
???computerwin[k]++;
???mywin[k]?=?6;
???if(computerwin[k]?==?5)?{
????window.alert("計算機贏了");
????over?=?true;
???}
??}
?}
?if(!over)?{
??me?=?!me;
?}
}


正在回答

1 回答

你點擊一次后沒報錯??

你貼的代碼第154行 ?電腦分數數組初始化那一步錯了,應該是 computerScore[i] =?[]; (你寫的是?computerScore =?[];

0 回復 有任何疑惑可以回復我~
#1

,_0022 提問者

沒問題了,謝謝
2016-05-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問我的代碼哪里錯了,為什么我下了一步棋后,計算機沒有下棋?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號