[Отказ от ответственности: я новичок в PHP, и я только учусь, поэтому, пожалуйста, не болтайте, это действительно мешает процессу обучения, когда кто-то пытается найти решения или информацию, спасибо, и код работает нормально с точки зрения кроссворд, это просто сбивает с толку меня, как человек получает диагональную ориентацию с данной информацией, или что я делаю неправильно и не вижу?]
Учитывая переключатель:
switch ($dir){
case "E":
//col from 0 to board width - word width
//row from 0 to board height
$newCol = rand(0, $boardData["width"] - 1 - strlen($theWord));
$newRow = rand(0, $boardData["height"]-1);
for ($i = 0; $i < strlen($theWord); $i++){
//new character same row, initial column + $i
$boardLetter = $board[$newRow][$newCol + $i];
$wordLetter = substr($theWord, $i, 1);
//check for legal values in current space on board
if (($boardLetter == $wordLetter) ||
($boardLetter == ".")){
$board[$newRow][$newCol + $i] = $wordLetter;
} else {
$itWorked = FALSE;
} // end if
} // end for loop
break;
И
case "N":
//col from 0 to board width
//row from word length to board height
$newCol = rand(0, $boardData["width"] -1);
$newRow = rand(strlen($theWord), $boardData["height"]-1);
for ($i = 0; $i < strlen($theWord); $i++){
//check for a legal move
$boardLetter = $board[$newRow - $i][$newCol];
$wordLetter = substr($theWord, $i, 1);
if (($boardLetter == $wordLetter) ||
($boardLetter == ".")){
$board[$newRow - $i][$newCol] = $wordLetter;
} else {
$itWorked = FALSE;
} // end if
} // end for loop
break;
Я должен быть в состоянии объединить два, чтобы получить NE (или диагональный текст, выводимый на экран)
ОДНАКО, когда я пробую это, это не работает, и я пробовал разные комбинации
N и E, чтобы получить NE или диагональную ориентацию NE без удачи, что дает?
#Tried multiple different combination's of N & E, I am out of ideas
switch ($dir){
case "E":
$newCol = rand(0, $boardData["width"] - 1 - strlen($theWord));
$newRow = rand(strlen($theWord), $boardData["height"]-1);
for ($i = 0; $i < strlen($theWord); $i++){
#Combined but no luck, WTF:
$boardLetter = $board[$newRow][$newRow - $i];
$boardLetter = $board[$newCol][$newCol + $i];
$wordLetter = substr($theWord, $i, 1);
//check for legal values in current space on board
if (($boardLetter == $wordLetter) ||
($boardLetter == ".")){
$board[$newRow][$newRow - $i] = $wordLetter;
$board[$newCol][$newCol + $i] = $wordLetter;
} else {
$itWorked = FALSE;
} // end if
} // end for loop
break;