Javascript:如何从充满点和星的textaeria获取0-1数组?

发布于 2024-11-14 19:27:31 字数 305 浏览 3 评论 0原文

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

所以我们有一个 textaeria,用户用诸如

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

如何从这样的输入中获取宽度 4 、高度 3 之类的内容填充它,以及一个数组字段,其中包含

100010101100

How to do get such data from text input via javascript?

I want to create a simple javascript "life game" implementation. I want user to be capable of inputing his structures..

So we have a textaeria, user fills it with something like

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

How to get from such input width 4 , height 3, and an array field with

100010101100

How to do get such data from text input via javascript?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

白馒头 2024-11-21 19:27:31

那么字符 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

So character 183 rather than a period?

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

If a period use \. instead of \xb7

Its not clear but if you want that as an array stick .split(""); on the end.

Edit for width/height

var width =  (s + "\r\n").indexOf("\r\n"); //position of 1st new line
var height =  s.split("\r\n").length; //count of lines
寄居者 2024-11-21 19:27:31

使用正则表达式将每一行拆分为一个数组,然后循环遍历结果数组,循环遍历位于该索引的字符串上的每个字符,检查它是否为 * 并向结果字符串添加 1 或 0。对结果字符串进行重击,您将得到结果。

Use regex to split each row to an array, then loop through the resulting array, loop through each char on the string located on that index, check if its a * and add a 1 to the result string or 0 for . to the result string and wham, you'll get your result.

梦忆晨望 2024-11-21 19:27:31

使用 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);
});

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

using jquery to create 1 string:

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

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

another example to create an array of rows containing an array of cells, is that what you want with width and height?

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/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文