2011-11-21 69 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

相关问题