2011-11-21 119 views
2

我想創建一個由腳本生成的單詞搜索難題。單詞應該水平,垂直或對角放置。我可能需要選項來設置它們是隻允許向前還是向後閱讀。 我有一些單詞,如(蘋果,香蕉,葡萄,檸檬,梨),需要放在桌子上。我已經創建了表格,但我堅持如何將這些單詞放在網格中。在單詞搜索拼圖中的表格網格中放置單詞?

我在找一些解釋的例子。

請參閱下面我的代碼:

var wordsList =[ 
"apple", 
"banana", 
"grape", 
"lemon", 
"pear" ]; 

var cells = 10; // Numbers of cells horizontally and vertically in table grid 
var cellSize = 15; // in pixels 
var cellSpace = 2; // cell spacing in pixels 

function createPuzzleTable(cells) { 

    var totalNumRows = ""; 
    var totalNumColumns = ""; 

    //creating rows 
    for (r=1;r<=cells;r++){ 
     //creating cells 
     var oneCell = "<td width='" + cellSize + "' height='"+ cellSize + "'><input name='charField' type='text' /></td>"; 
     totalNumRows += oneCell; 
    } 

    //creating columns 
    for (c=1;c<=cells;c++){ 
     totalNumColumns += "<tr>" + totalNumRows + "</tr>"; 
    }  
    var puzzleTableContent = "<div id='puzzleCont'><table id='puzzleTable' border='0' cellspacing='" + cellSpace +"' cellpadding='0'>"+ totalNumColumns +"</table></div>"; 

$("#wPuzzle").append(puzzleTableContent); 

} 

createPuzzleTable(cells); 

回答

1

首先,你需要建立一個簡單的方法來在網格定位的項目。使用類名稱:

<input name='charField' class="r_2 c_3" type='text' /> 

其中「r_」表示行和「c_」列。

然後隨機選擇一個方向和一個位置(行,列)。看看這個單詞是否合適,並且廣場還沒有被佔用,否則再次選擇。

然後使用r_c_座標系將字母放入網格中。

重複。

用僞隨機填充數據填充未佔用的單元。

+0

好,所以每個單元格都需要一個唯一的ID,我可以添加它。那麼你如何設置放置方向並評估每個單詞的字母是否適合放置?你能提供一個例子嗎?先謝謝你。 – reinhat

+0

這是簡單的算術。如果你是10列網格中的第8列,並且方向在右側並且該單詞長度爲5個字符... –

+0

數學從來就不是我的強項。如果放置方向是對角線怎麼辦? – reinhat

1

有已經一個jQuery插件,這是否:http://code.google.com/p/jquery-wordsearch-game/

看一看this code。它使用策略模式在前進,後退,上,下和兩個對角線方向上將單詞放在網格上。具體來說,請看第547行。

由於學習是你的強項,你可能會覺得它很有趣,並可能想出一個更好的方法來做到這一點。

+0

真棒!我一直在尋找這樣的事情很長一段時間。謝謝。 – TryHarder