Javascript: как получить из textaeria, заполненного точками и звездами, получить массив 0-1? - PullRequest
1 голос
/ 09 июня 2011

Я хочу создать простую реализацию "жизненной игры" на javascript. Я хочу, чтобы пользователь мог вводить свои структуры ..

Итак, у нас есть textaeria, пользователь заполняет его чем-то вроде

*···
*·*·
**··

Как получить из таких входных данных ширину 4, высоту 3 и поле массива с

100010101100

Как получить такие данные из текстового ввода через JavaScript?

Ответы [ 3 ]

1 голос
/ 09 июня 2011

То есть символ 183, а не точка?

var s = document.getElementById(..);
//remove all whitespace, replace *, replace ·
s = s.replace(/\s+/gm, "").replace(/\*/g, "1").replace(/\xb7/g, "0");

Если точка используется \. вместо \xb7

Непонятно, но если вы хотите, чтобы этот массив вставлял .split(""); в конец.

Редактировать для ширины / высоты

var width =  (s + "\r\n").indexOf("\r\n"); //position of 1st new line
var height =  s.split("\r\n").length; //count of lines
1 голос
/ 09 июня 2011

использование jquery для создания 1 строки:

$("#test").val().replace(/·/g,'0').replace(/\*/g,'1').replace(/\n\r?/g,'');

demo: http://jsfiddle.net/pBauP/

еще один пример создания массива строк, содержащего массив ячеек, - это то, что вам нужноширина и высота?

var results = [];

var arr = $("#test").val().split('\n');

$.each(arr, function() {
var row = this.replace(/·/g,'0').replace(/\*/g,'1').split("");
results.push(row);
});

demo2: http://jsfiddle.net/3qqkY/

1 голос
/ 09 июня 2011

Используйте regex, чтобы разбить каждую строку на массив, затем переберите получившийся массив, переберите каждый символ в строке, расположенной в этом индексе, проверьте, является ли он * и добавьте 1 к результирующей строке или 0 для. к строке результата и wham, вы получите свой результат.

...