第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么我不加算法,程序就沒有問題,加入算法之后,整個界面就沒了

http://img1.sycdn.imooc.com//5809ef9800015c1805360482.jpg

就是這樣,整個界面都沒有了

正在回答

3 回答

因為三維數(shù)組初始化的時候沒有初始化二維,在第一個for下加一句wins[i] = [];

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

//做了一點點修改

var over=false; ? ? ? ? ? ?//游戲結(jié)束標志

var role=true; ? ? ? ? ? ? // true--黑棋 ,false--白棋,默認玩家先手

var boardInfo=[]; ? ? ? ? ?//記錄落子信息

for(var i=0;i<15;i++){

boardInfo[i]=[];

for(var j=0;j<15;j++){

boardInfo[i][j]=0;

}

}

/*

贏法數(shù)組及其初始化

*/

var wins=[];

var counts=0; ? ? ? ? ?//記錄贏法的總數(shù) ? ? ??

for(var i=0;i<15;i++){

wins[i]=[];

for(var j=0;j<15;j++){

wins[i][j]=[];

}

}

//垂直連成五子

for(var i=0;i<15;i++){

for(var j=0;j<=10;j++){

for(var k=0;k<5;k++){

wins[i][j+k][counts]=true;

}

counts++;

}

}

//水平連成五子

for(var i=0;i<=10;i++){

for(var j=0;j<15;j++){

for(var k=0;k<5;k++){

wins[i+k][j][counts]=true;

}

counts++;

}

}

//斜成五子

for(var i=0;i<=10;i++){

for(var j=0;j<=10;j++){

for(var k=0;k<5;k++){

wins[i+k][j+k][counts]=true;

}

counts++;

}

}

//反斜成五子

for(var i=0;i<=10;i++){

for(var j=4;j<15;j++){

for(var k=0;k<5;k++){

wins[i+k][j-k][counts]=true;

}

counts++;

}

}

//統(tǒng)計

var myWin=[];

var computerWin=[];

for(var i=0;i<counts;i++){

myWin[i]=0;

computerWin[i]=0;

}

var board=document.getElementById("board");

var context=board.getContext("2d");


//背景圖

/*

var logo=new Image(); ? ? ? ? ? ??

logo.src="images/logo.png";?


//圖片加載完后再畫棋盤

logo.onload=function(){

context.drawImage(logo,0,0,450,450);

drawBoard();

}

*/

//畫棋盤

var drawBoard=function(){

context.strokeStyle="#bfbfbf";

for(var i=0;i<15;i++){

context.moveTo(15 + i*30,15);

context.lineTo(15 + i*30,435);

context.stroke();

context.moveTo(15,15 + i*30);

context.lineTo(435,15 + i*30);

context.stroke();

}

}


//畫棋子

var oneStep=function(i,j,role){

context.beginPath();

context.arc(15+30*i,15+30*j,13,0,Math.PI*2);

context.closePath();

var gradient=context.createRadialGradient(15+30*i+2,15+30*j-2,13,15+30*i+2,15+30*j-2,0);

if(role){

gradient.addColorStop(0,"#0a0a0a");

gradient.addColorStop(1,"#636766");

}

else{

gradient.addColorStop(0,"#d1d1d1");

gradient.addColorStop(1,"#f9f9f9");

}

context.fillStyle=gradient;

context.fill();

}


//輪流落子

board.onclick=function(e){

if(over){

return;

}

if(!role){

return;

}

var x=e.offsetX;

var y=e.offsetY;

var i=Math.floor(x/30);

var j=Math.floor(y/30);

if(boardInfo[i][j]==0){

oneStep(i,j,role);

boardInfo[i][j]=1; ? ? ? ?//1代表玩家

} ? ? ? ? ? ? ?

for(var k=0;k<counts;k++){

if(wins[i][j][k]){

myWin[k]++;

computerWin[k]=6;

}

if(myWin[k]==5){

document.getElementById("result").innerHTML="你贏了";

over=true;

}

}

if(!over){

role=!role;

computerAI();

}

}

var computerAI=function(){

var offensiveScore=[]; ? ? ? ? ? ? ? ?//進攻得分

var deffensiveScore=[]; ? ? ? ? ? ? ? //防守得分

var u=0,v=0;

var max=0;

for(var i=0;i<15;i++){

offensiveScore[i]=[];

deffensiveScore[i]=[];

for(var j=0;j<15;j++){

offensiveScore[i][j]=0;

? ?deffensiveScore[i][j]=0;

}

}

//遍歷棋盤

for(var i=0;i<15;i++){

for(var j=0;j<15;j++){

if(boardInfo[i][j]==0){

for(var k=0;k<counts;k++){

if(wins[i][j][k]){

if(myWin[k]==1){

deffensiveScore[i][j]+=1;

}

if(myWin[k]==2){

deffensiveScore[i][j]+=10;

}

if(myWin[k]==3){

deffensiveScore[i][j]+=100;

}

if(myWin[k]==4){

deffensiveScore[i][j]+=1000;

}

}

if(wins[i][j][k]){

if(computerWin[k]==1){

offensiveScore[i][j]+=2;

}

if(computerWin[k]==2){

offensiveScore[i][j]+=20;

}

if(computerWin[k]==3){

offensiveScore[i][j]+=200;

}

if(computerWin[k]==4){

offensiveScore[i][j]+=2000;

}

}

}

//比較各個點的價值

if(deffensiveScore[i][j]>max){

max=deffensiveScore[i][j];

u=i;

v=j;

}

else if(deffensiveScore[i][j]==max){

if(offensiveScore[i][j]>offensiveScore[u][v]){

max=deffensiveScore[i][j];

u=i;

v=j;

}

}

if(offensiveScore[i][j]>max){

max=offensiveScore[i][j];

u=i;

v=j;

}

else if(offensiveScore[i][j]==max){

if(deffensiveScore[i][j]>deffensiveScore[u][v]){

max=offensiveScore[i][j];

u=i;

v=j;

}

}

}

}

}

oneStep(u,v,false);

boardInfo[u][v]=2; ? ? ? ?//2代表計算機

for(var k=0;k<counts;k++){

if(wins[u][v][k]){

computerWin[k]++;

myWin[k]=6;

}

if(computerWin[k]==5){

document.getElementById("result").innerHTML="你輸了";

over=true;

}

}

? ? if(!over){

role=!role;

}

}

drawBoard();


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

應該是算法吧界面的代碼覆蓋了,誰能發(fā)個正確的代碼看看?

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

舉報

0/150
提交
取消

為什么我不加算法,程序就沒有問題,加入算法之后,整個界面就沒了

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號