1

我想创建一个简单的 javascript“生活游戏”实现。我希望用户能够输入他的结构..

所以我们有一个textaeria,用户用类似的东西填充它

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

如何从这样的输入宽度4、高度3和数组字段中获取

100010101100

如何通过javascript从文本输入中获取此类数据?

4

3 回答 3

1

使用正则表达式将每一行拆分为一个数组,然后遍历生成的数组,遍历位于该索引上的字符串上的每个字符,检查其是否为 * 并将结果字符串添加 1 或 0 。到结果字符串和 wham,你会得到你的结果。

于 2011-06-09T11:33:52.873 回答
1

所以字符 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
于 2011-06-09T11:35:51.753 回答
1

使用 jquery 创建 1 个字符串:

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

演示: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);
});

演示2:http : //jsfiddle.net/3qqkY/

于 2011-06-09T11:46:28.040 回答