На снимката съм прикачил потенциални полета (в червено) - въпроса , е че скрипта следва вече следващите думи и не се възползва от "празните" пространства.
Моля, някой да удари рамо.
Code: Select all
<?php
require_once './autoloader.php';
$mysqli = new mysqli("localhost","ПОТРЕБИТЕЛ","ПАРОЛА","БАЗА");
// Check connection
if ($mysqli -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
exit();
}
$mysqli -> set_charset("utf8");
// Perform query
$i = 0;
$words = array();
$len_max = 11;
$len_min = 2;
if ($result = $mysqli -> query("SELECT * FROM wordsRRRRRR WHERE LENGTH(word)<={$len_max} AND LENGTH(word)>={$len_min} ORDER BY rand() LIMIT 0,10")) {
while($row = $result->fetch_assoc()) {
$i++;
$words[$row['word']]['number'] = $i;
$words[$row['word']]['question'] = $row['question'];
}
//var_dump($words);
// Create new crossword
$crossword = new \Crossword\Crossword(32, 32, $words);
//var_dump($words);
$crossword->generate(\Crossword\Generate\Generate::TYPE_RANDOM, true);
// Save for check
file_put_contents(__DIR__ . '/crossword.json', json_encode($crossword->toArray(), JSON_PRETTY_PRINT));
return $crossword;
}
ЕДИТ:
След като промених в тази функция:
Code: Select all
protected function positionWord(Word $word)
{
if($this->currentLineType == Line::TYPE_ROW) {
$line = $this->prevWord->getRows()->getRandom();
$this->currentLineType = Line::TYPE_COLUMN;
} else {
$line = $this->prevWord->getColumns()->getRandom();
$this->currentLineType = Line::TYPE_ROW;
}
if(!empty($line)) {
$isPosition = $line->position($word, true); //това по подразбиране е FALSE ???
if($isPosition) {
$this->prevWord = $word;
}
}
}
Ред:
$isPosition = $line->position($word, true); //това по подразбиране е FALSE ???
от FALSE на TRUE , започнаха да се "попълват" повече отговори/думи. Обаче, все още не е задоволително както изглежда тази:
http://www.rabotnovreme.net/ (грубо казано тук има поне 50 въпроса (което прави кръстословицата интересна), а аз едвам изваждам 10 въпроса)
Тук почти всички квадратчета са запълнени , докато при мен има доста... потенциални празни квадрати.
You do not have the required permissions to view the files attached to this post.