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

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

求教一下為什么結(jié)果和老師跑的不一樣


和老師一樣敲的代碼,看了好幾遍,但測試的時候發(fā)現(xiàn)沒到五個子就說我贏了請問哪位大哥幫我看看錯在哪里

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

var?chessBoard?=?[]
var?me?=?true;
var?over?=?false;

//贏法數(shù)組
var?wins?=?[]

//贏法的統(tǒng)計數(shù)組
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++){
/*
		j=0
		wins[0][0][0]
		wins[1][1][0]
		wins[2][2][0]
		wins[3][3][0]
		wins[4][4][0]
		j=1
		wins[0][1][0]
		wins[1][2][0]
		wins[2][3][0]
		wins[3][4][0]
		wins[4][5][0]	
*/
		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--){
/*
		wins[14][0][0]
		wins[14][1][0]
		wins[14][2][0]
		wins[14][3][0]
		wins[14][4][0]
*/	
		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;
}

context.strokeStyle?=?"#BFBFBF";

var?logo?=?new?Image();
logo.src?=?"images/chan.png"
logo.onload?=?function(){
	context.drawImage(logo,?50,?50,?350,?350);
	drawChessBoard();
}

var?drawChessBoard?=?function(){
	for(var?i?=?0;?i?<?15;?i++){
		//劃橫線
		context.moveTo(15,?15?+?i*30);
		context.lineTo(435,15?+?i*30);
		//劃豎線
		context.moveTo(15?+?i*30,?15);
		context.lineTo(15?+?i*30,?435);

		context.stroke();
	}
}

var?oneStep?=?function(i,?j,?me){
	context.beginPath();
	context.arc(15?+?i*30,?15?+?j*30,?12,?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);
	context.fillStyle?=?gradient;
	if(me){
		gradient.addColorStop(0,?"#0A0A0A");
		gradient.addColorStop(1,?"#636766");
	}else{
		gradient.addColorStop(0,?"#D1D1D1");
		gradient.addColorStop(1,?"#F9F9F9");
	}
	context.fill();
}

chess.onclick?=?function(e){
	if(over){
		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);
		if?(me)?{
			chessBoard[i][j]?=?1;
		}else{
			chessBoard[i][j]?=?2;
		}
		me?=?!me;
		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;
				}
			}
		}
	}
	
}


正在回答

3 回答

代碼本身沒有錯誤,之所以出現(xiàn)這個現(xiàn)象是因為到目前為止,白棋的落子也在onclick進行,這里沒做特殊處理,所以白棋的落子也被統(tǒng)計在myWin這個贏法統(tǒng)計數(shù)組當中啦。所以你看看,是不是不分黑棋白棋,只要棋子連上五顆就判斷成贏了呢?

在之后,白棋不會在onclick中處理,它的落子會在computerWin中統(tǒng)計,就不會這樣啦。

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

qq_指月指_0

您好老師,而我的問題正好相反,已經(jīng)到了五個子為什么沒有彈出來呢?
2016-04-02 回復 有任何疑惑可以回復我~

老師給的不分白起黑騎就直接給黑棋加上了myWin,所以當你白棋黑棋共五個時myWin剛好加到了五,因此需要一個判斷函數(shù)判斷落子為黑棋還是白棋,然后再給相應的myWin和computerWin累加判斷是否到五。代碼如下(偷別人的):

var judgement=function(x,y,color){ //judgement函數(shù)判斷游戲是否結(jié)束,color 判斷落子顏色

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

if(win[x][y][i]){ ?//點(x,y)處有贏法

if(color==1){ //判斷落子為黑色的情況

myWin[i]++;//黑色落子累加器

if(myWin[i]==5){ //黑色落子在某種贏法中達到5個則執(zhí)行以下語句

window.alert("黑子勝利!");

over=true;

}

}

if(color==2){ //判斷落子為白色的情況

computerWin[i]++; //白色落子累加器

if(computerWin[i]==5){//白色落子在某種贏法中達到5個則執(zhí)行以下語句

window.alert("白子勝利!");


over=true;

}

}

}

}

}


chess.onclick=function(e){

if(over){

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);

if(me){

chessboard[i][j]=1;

}

else

chessboard[i][j] = 2;

? ?judgement(i,j,chessboard[i][j]);

? me = !me;

?

?// for(var k=0;k<count;k++){

?// if(win[i][j][k]){

?// myWin[k]++;

?// computerWin=6;

?// if(myWin[k] == 5){

?// window.alert("你贏了");

?// over=true;

?// }

?// }

?// }

}

}

}


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

正在仔細看下咯

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

舉報

0/150
提交
取消

求教一下為什么結(jié)果和老師跑的不一樣

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

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

幫助反饋 APP下載

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

公眾號

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