概要
VisibleSimにはロボットの色を変更するとしてsetColorメソッドが用意されている。
今回は隣接しているロボットの数に応じて色を変えて遊んでみた。
コード
rキーを押下時に呼び出されるstartup()に処理を追加。
getLocalNeighborhoodStateメソッドを利用して隣接するロボットの数を取得し、隣接数に応じてsetColor()で色を変更する。
void LightWalkCatoms3DBlockCode::startup() {
stringstream info;
info << "Starting ";
int neighborCount = getNeighborsCount();
if(neighborCount == 0){
setColor(WHITE);
}else if(neighborCount == 1){
setColor(YELLOW);
}else if(neighborCount == 2){
setColor(GREEN);
}else if (neighborCount == 3){
setColor(BLUE);
}else if(neighborCount == 4){
setColor(RED);
}else if (neighborCount == 5){
setColor(PINK);
}else if (neighborCount == 6){
setColor(ORANGE);
}else if (neighborCount == 7){
setColor(MAGENTA);
}else if (neighborCount == 8){
setColor(GOLD);
}
}
int LightWalkCatoms3DBlockCode::getNeighborsCount() const {
return catom->getLocalNeighborhoodState().count();
}
