ほぼこちらのチュートリアルをもとに作成です。

ちょっぴり応用利かせて、冬なかんじでかいてみました。

やべー。
おもしれー!
日々仕事で必要になった技術情報をとにかくピックアップし、
技術情報の使用方法などをつらつらと。
生かす(知識) = 知恵
をモットーに、道具を知識として知っているのはあたりまえ、
その先の道具の生かし方を思いついたタイミングで、
のんびりと知恵を提供していければと。
無知なんで何ともいえませんが。。。
public class AutomatonMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
VectorField vf =new VectorField(20);
try{
while(true){
vf.showField();
vf.doRule();
Thread.sleep(500);
}
}catch(Exception e){
System.out.println("エラー発生!");
}
}
}
import java.util.ArrayList;
import java.util.List;
public class VectorField {
private List field;
VectorField() {
this(10);
}
VectorField(int listSize) {
makeCellList(listSize);
}
public void showField() {
for (Object cell : field) {
System.out.print(cell.toString());
}
System.out.println();
}
public void makeCellList(int listSize) {
ArrayList field = new ArrayList();
for (int i = 0; i < listSize; i++) {
field.add(getCell());
}
setField(field);
}
public Integer getCell() {
if (Math.random() < 0.7) {
return new Integer(0);
} else {
return new Integer(1);
}
}
public void doRule() {
ArrayList newField = new ArrayList();
String s = "";
for (int i = 0; i < this.field.size(); i++) {
if (i == 0) {
s = this.field.get(this.field.size() - 1).toString()
+ this.field.get(i).toString()
+ this.field.get(i + 1).toString();
} else if (i == this.field.size() - 1) {
s = this.field.get(i - 1).toString()
+ this.field.get(this.field.size() - 1).toString()
+ this.field.get(0).toString();
} else {
s = this.field.get(i - 1).toString()
+ this.field.get(i).toString()
+ this.field.get(i + 1).toString();
}
newField.add(calcNewCell(s));
}
setField(newField);
}
public Integer calcNewCell(String s){
if("000".equals(s)){
return new Integer(0);
}else if("001".equals(s)){
return new Integer(0);
}else if("010".equals(s)){
return new Integer(0);
}else if("011".equals(s)){
return new Integer(1);
}else if("100".equals(s)){
return new Integer(1);
}else if("101".equals(s)){
return new Integer(1);
}else if("110".equals(s)){
return new Integer(0);
}else if("111".equals(s)){
return new Integer(1);
}else{
return new Integer(9);
}
}
public List getField() {
return field;
}
public void setField(List field) {
this.field = field;
}
}
lang-css.js …CSS 用ファイル
lang-hs.js …Haskell 用ファイル
lang-lisp.js …Common Lisp, Emacs Lisp, Lisp, Scheme 用ファイル
lang-lua.js …LUA 用ファイル
lang-ml.js …OCaml, SML, F# その他似た様な言語
lang-proto.js …Protocol Buffers 用ファイル
lang-sql.js …SQL 用ファイル
lang-vb.js …BASICチックな言語 用ファイル
lang-wiki.js …Wiki page 用ファイル
prettify.css …ハイライト色指定CSS
prettify.js …google-code-prettifyメインjs
if(document.readyState!=='complete'){
alert("読み込み中");
}