Я создаю бота для игрового чата с друзьями, но я зашел в тупик. Есть ли надежный способ получить числа из строки текста, которая не сломает мозг неопытного сценариста? Вот лучшее, что я смог придумать, переменные немного упрощены для иллюстрации:
var k = [0];
function dieRoll(m,n) {
for(i = 0; i < m; i++) {
k[i] = Math.floor(Math.random()*n)+1;
}
}
var m = text[5];
var n = text[7];
if (text === 'roll '+m+'d'+n) {
dieRoll(m,n)
console.log(k);
}
Самая большая проблема в том, что она ограничена вводом одной цифры.
РЕДАКТИРОВАТЬ: циклический просмотр текста в поисках целых чисел - это именно то, что я ищу. У меня нет большого опыта в программировании, так что я, вероятно, склоняюсь к чрезмерно сложным и запутанным путаницам спагетти-кода, который смутил бы любого удаленно профессионала. Что касается формата ввода, который я ищу, «бросьте [количество кубиков] d [наибольшее число на кубике]». Для тех, кто не знает, эта нотация используется большинством настольных rpgs. Например, «бросьте 2d6» для двух обычных шестигранных кубиков.
РЕДАКТИРОВАТЬ: Дело не в том, что я обязательно против регулярных выражений, я просто хочу быть в состоянии понять, что происходит, так что, если и когда мне нужно будет отредактировать или повторно использовать код, я могу сделать это, не сходя с ума.
РЕДАКТИРОВАТЬ: Спасибо всем большое! split (), кажется, именно то, что я искал! Вероятно, потребуется несколько проб и ошибок, но я думаю, что смогу заставить ее работать так, как она должна в эти выходные (да, я называю своих ботов «она»).