簡単なJavaScriptの「ライフゲーム」の実装を作成したいと思います。ユーザーが自分の構造を入力できるようにしたい。
だから私たちはtextaeriaを持っています、ユーザーはそれを次のようなもので埋めます
*···
*·*·
**··
4
このような入力幅、高さ3
、および配列フィールドから取得する方法
100010101100
javascriptを介してテキスト入力からそのようなデータを取得するにはどうすればよいですか?
簡単なJavaScriptの「ライフゲーム」の実装を作成したいと思います。ユーザーが自分の構造を入力できるようにしたい。
だから私たちはtextaeriaを持っています、ユーザーはそれを次のようなもので埋めます
*···
*·*·
**··
4
このような入力幅、高さ3
、および配列フィールドから取得する方法
100010101100
javascriptを介してテキスト入力からそのようなデータを取得するにはどうすればよいですか?
正規表現を使用して各行を配列に分割し、結果の配列をループし、そのインデックスにある文字列の各文字をループし、* であるかどうかを確認し、結果の文字列に 1 または 0 を追加します。結果の文字列とワムに、結果が得られます。
ピリオドではなく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
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);
});