2009年2月7日土曜日

ソースコードテスト

ソースコードハイライト。
導入してみた。


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;
}

}

1 件のコメント:

pahirupa さんのコメント...

ハイライトされねぇよ!!