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

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

canMoveLeft()為什么要加for循環?還有返回return值后還會繼續循環嗎?

function?moveLeft(){
	if(?canMoveLeft(board)?)?//canMoveLeft()用于判斷是否可以執行左移操作
	//canMoveLeft()返回true,下面開始執行左移操作
	//雖然已經確定可以移動了,但是我們還需進一步確定該移動到哪個位置
	{
		for(?var?i?=?0;i?<?4;i++)
			for(?var?j?=?1;j?<?4;j++)

	}
	
	return?false;
}

function?canMoveLeft(board){
	//元素是否可以左移需要滿足如下情況的一種
	//1.左右元素大小相等
	//2.左邊的格子為空,不含元素
	for?(?var?i?=?0?;?i?<?4?;?i++?)
		for?(?var?j?=?1?;?j?<?4?;?j++)
			if?(board[i][j]?!=?0)?
				if?(board[i][j-1]?==?0?||?board[i][j-1]?==?board[i][j])
				?	return?true;
	return?false;
}

代碼如上。moveLeft里的if( canMoveLeft(board) )語句調用canMoveLeft(board)函數后,假如canMoveLeft(board)中的for循環第一次就返回了true,那之后的循環還會繼續嗎?還有moveLeft和canMoveLeft中為什么都要for循環?一直沒想明白。。這不是重復了嗎?

正在回答

3 回答

第二個for循環是為了判斷有一個數字可以向做移動的話,那么要遍歷一下它所在行的所有元素是否和前一個數字相等或者前一個格子是否為空,所以這里要遍歷要用for,判斷數字位子,這個函數主要作用就是判斷是否能向左移動;第一個for循環意思也一樣也是遍歷但是牽扯到算法,相同那么就相加,空格那么就前進;

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

不用判斷了撒,可以左移就對了撒,左移的操作是其他函數函數操作

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

返回true后就跳出循環了,要判斷每個元素是否可以左移就要循環撒

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

MARSGGBO 提問者

但是比如說canMoveLeft判斷第一個元素,如果返回true,那么就會跳出循環,那之后的豈不是就不會判斷了?
2016-03-09 回復 有任何疑惑可以回復我~
#2

qq_馬不停蹄 回復 MARSGGBO 提問者

這個函數就做一件事,就是判斷可不可以左移,其他事情其他函數來做
2016-03-10 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

canMoveLeft()為什么要加for循環?還有返回return值后還會繼續循環嗎?

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

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

幫助反饋 APP下載

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

公眾號

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