Я делаю приложение для шахмат на практике, и что-то меня отбрасывает. Мои квадраты пронумерованы от 1 до 64, причем первая строка занимает от 1 до 8, а следующая - 9-16 и т. Д. Каждый раз, когда игрок пытается переместить кусок, моя программа проверяет, является ли квадрат назначения законным в соответствии с правилами.Целое число ошибочно разбирается со строкой
Для моего короля У меня есть строка, как это:
else if (startID >= 58 && startID <= 63){ // bottom row
if (endID == startID - 7 || endID == startID - 8 || endID == startID - 9 || endID == startID - 1 || endID == startID + 1) return true;
}
В принципе, если король находится на последней строке (а не угол квадрата), проверьте, если площадь назначения смежная кв. Тем не менее, все они работают в этой части, которая проверяет, за исключением, если площадь назначения непосредственно справа:
endID == startID + 1
Я имел другие части программы борьбы с использованием сравнить заявления, пока я не добавить «ParseInt () перед проблематичной переменной. Есть ли способ убедиться, что переменная всегда является целым числом?
Да, используйте 'parseInt (startID, 10)' – mplungjan
Нет, JavaScript не использует типы. Но почему бы вам не использовать вложенный массив для поддержания позиций? – sjngm
Где/как вы первоначально получаете эти значения для 'startID' и' endID'? Из атрибута HTML? – Teemu