3

我正在尝试创建一个由脚本生成的单词搜索谜题。单词应水平,垂直或对角放置。我可能需要设置是否允许它们仅向前或向后读取的选项。我有一系列需要放在桌子上的单词,例如(苹果、香蕉、葡萄、柠檬、梨)。我已经创建了表格,但我被困在如何将单词放在网格中。

我正在寻找一些解释的例子。

请在下面查看我的代码:

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

2 回答 2

1

首先,您需要建立一种简单的方法来定位网格中的项目。使用类名:

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

其中“r_”代表行和“c_”列。

然后随机选择一个方向和一个位置(行、列)。看看这个词是否合适并且该正方形尚未被占用,否则再次选择。

然后使用 r_c_ 坐标系将字母放入网格中。

重复。

用伪随机填充数据填充未占用的单元格。

于 2011-11-21T17:51:23.490 回答
1

已经有一个 jquery 小部件可以执行此操作:http ://code.google.com/p/jquery-wordsearch-game/

看看这段代码。它使用策略模式在网格上的向前、向后、向上、向下和两个对角线方向放置单词。具体来说,从第 547 行开始。

由于学习是你的强项,你可能会觉得它很有趣......并且可能会想出一个更好的方法。

于 2012-03-30T05:47:21.540 回答