Поместить слова в сетку таблицы в головоломке поиска слов?

Я пытаюсь создать головоломку поиска слов, сгенерированную скриптом. Слова должны быть расположены горизонтально, вертикально или по диагонали. Мне может понадобиться установить, разрешено ли им чтение только вперед или назад. У меня есть множество слов, таких как (яблоко, банан, виноград, лимон, груша), которые должны быть размещены в таблице. Я уже создал таблицу, но я застрял в том, как разместить слова в сетке.

Я ищу примеры с некоторыми объяснениями.

Пожалуйста, смотрите мой код ниже:

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

2 ответа

Во-первых, вам нужно установить простой метод для поиска элементов в вашей сетке. Используйте имена классов:

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

Где "r_" представляет строки и "c_" столбцы.

Затем случайным образом выберите направление и местоположение (строка, столбец). Посмотрите, подойдет ли слово и что квадрат еще не занят, в противном случае выберите снова.

Затем поместите буквы в сетку, используя систему координат r_ c_.

Повторение.

Заполните незанятые ячейки псевдослучайными данными наполнителя.

Уже есть виджет jquery, который делает это: http://code.google.com/p/jquery-wordsearch-game/

Посмотрите на этот код. Он использует шаблон стратегии для размещения слов в сетке вперед, назад, вверх, вниз и в обоих диагональных направлениях. В частности, посмотрите на строку 547 и далее.

Поскольку обучение - это ваша сильная сторона, вы можете найти его забавным... и, возможно, придумаете еще лучший способ сделать это.

Другие вопросы по тегам