Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2018, 18:35   #1
Aleksandr94
Пользователь
 
Регистрация: 26.03.2018
Сообщений: 14
По умолчанию Ошибка объединение букв во время ввода слова в кроссворде

У меня есть бесплатная онлайн игра, которую я недавно написал. Там нужно разгадывать кроссворды. Во время тестирования у меня возникла проблема: когда пользователь вводит слово, то оно должно перекрашиваться в красный цвет, если пользователь ввёл неверное слово. В зелёный - если ответ правильный. Для сравнения слов я использовал рекурсию - когда пользователь только начинает щёлкать по кнопкам клавиатуры, то рекурсия во время ввода пробегается по всей строке происходит конкатенация (сложение букв) и буквы превращаются в слово. Таким образом идёт сравнение строк в массиве. Но я кое-что не учёл, цифры они тоже считаются, как символы и если цифра стоит в конце, это случается у пересеченных строк, то дойдя до предпоследней клетки, автоматически идёт перекрашивание строки в красный цвет. Мне нужно сделать проверку во время рекурсии, чтобы цифры не считались как символы, а только буквы во время рекурсии? Как можно сделать такую проверку?
Вот код JS
Код:
function sschet2(x, y, id, color,num,lvl,str)
{
          if (x < 0 || y < 0 || x >= cross1[lvl][id][1]+cross1[lvl][id][0].length || y >= cross1[lvl][id][2]+cross1[lvl][id][0].length) 
          {
        			return;
        	}
          var num1 = num; 
           
          d='arr['+x+','+y+']';
          arr[x][y] = num;
          var num_arr=cross1[lvl][id][0].split(''); 
          var color1 = color;
           
           if(cross1[lvl][id][4] == "true" || cross1[lvl][id][4] == "false")
           {
              document.getElementById(d).style.background = color;
           }
            if(cross1[lvl][id][3]=="h")
            {
              //Конкатена́ция букв  
              str += parent.mainpage.document.getElementById(d).innerHTML;
                cross1[lvl][id][5]=str;
                document.getElementById("debug").value = str;
                if(cross1[lvl][id][0].length == cross1[lvl][id][5].length)
                {
                 if(cross1[lvl][id][0]!=cross1[lvl][id][5])
                  {
                        if(cross1[lvl][id][4]!="false")
                        {
                          cross1[lvl][id][4]="false";
                          cross1[lvl][id][6]="red";
                          arr[x][y]=4; 
                          color1 = "red"
                          sschet2(cross1[lvl][id][1], cross1[lvl][id][2], id, color1, arr[x][y], lvl, ""); 
                        }
                  }
                }
                sschet2(x, y+1,id,color1,num,lvl,str); 
            }
}
скриншот ошибки
img.jpg
Aleksandr94 вне форума Ответить с цитированием
Старый 12.04.2018, 08:33   #2
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Мне нужно сделать проверку во время рекурсии, чтобы цифры не считались как символы, а только буквы во время рекурсии?
что значит как?? проверьте цифра это или нет
Код:
if (Number.isInteger()==false) { считаем }
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны два слова. Составьте программу, определяющую можно или нет из букв слова А составить слово В. Конь Антон Паскаль, Turbo Pascal, PascalABC.NET 3 10.06.2015 14:44
Даны два слова. Составьте программу, определяющую можно или нет из букв слова А составить слово В Конь Антон Помощь студентам 1 24.05.2015 16:43
Напечатать слова, в которые не входит ни одна из букв первого слова abakuz Помощь студентам 0 30.05.2011 23:07
Как составить слова из букв заданного слова(Паскаль) lirikoff Помощь студентам 1 22.12.2010 10:21
Как сделать запрет ввода букв в поле для ввода input zvezda_t PHP 1 27.12.2009 22:02