2016-01-26 50 views
0

因此,我正在解決騎士旅遊問題,並且我想在騎士「first move」=「first appearance」的字段上設置綠色。如何在生成隨機位置後設置隨機顏色(讓我們說綠色)

這是什麼樣子: This is what it looks like

我有一個8x8的表,我的騎士隨機出現在黑板上,我想不出如何設置自己的第一次亮相是綠色的。

var boardSize = 8; 
var currentCoords = {x: Math.round(Math.random() * 7), y: Math.round(Math.random() * 7)}; 
var count = 1; 

這是生成部分。

$('table tr').eq(currentCoords.y).find('td').eq(currentCoords.x).html('<span style="font-size:50px;color:blue;margin-left:10%;">&#9816;</span>'); 

這就是當騎士出現在棋盤上時。

如果有人能幫助,我將不勝感激。 在此先感謝。

期望的結果: What I want to achieve

+0

請說明你想成爲綠色。 – Rounin

+0

那麼,國王應該出現 - 綠色還是隨機顏色? –

+0

另外,也許是一個截圖?更多部分的代碼?你正在生成藍色的東西,這可能是問題嗎? –

回答

0

好了,你要的方形的背景是綠色的。 「想要的結果」截圖澄清說,謝謝。

您已經知道如何獲取表格單元格,以便將騎士放入單元格中。

您需要使用類似jQuery的調用來獲取細胞:

$('table tr').eq(currentCoords.y).find('td').eq(currentCoords.x) 

然後,而不是您用來放置騎士.html()通話,您需要使用.css()呼叫改變風格細胞本身。

你需要設置的風格是background,所以你可以這樣做:之前或者線放置騎士後

$('table tr').eq(currentCoords.y).find('td').eq(currentCoords.x).css({'background':'green'}); 
立即

對於一個加分點,由於代碼的兩行代碼之間有很多重複的代碼,您可以通過移動jQuery部分來獲取表單元格到一個單獨的變量,然後引用它兩次,如所以:

var $firstCell = $('table tr').eq(currentCoords.y).find('td').eq(currentCoords.x); 
$firstCell.css({'background':'green'}); 
$firstCell.html('<span style="font-size:50px;color:blue;margin-left:10%;">&#9816;</span>'); 

希望有所幫助。

+0

這真是太棒了謝謝。但也許我不是很清楚。我只需要第一個方格就是綠色的。 http://imgur.com/KMuuQbJ – Kotidrmakavez

+0

我給出的解決方案應該隻影響騎士所在的同一個方格。如果您不希望次要方格受到影響,則只需調用'.css()'部分一次。 – Simba

+0

我如何只調用一次?嘗試使用.one()不能很好地工作。 – Kotidrmakavez