Select Git revision
EmptySquare.java
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
RockPaperCisorScenario.java 1.42 KiB
package model.rockpapercisor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import model.Board;
import model.Entity;
import model.EntityFactory;
import model.Model;
import model.Scenario;
import model.Square;
import util.Position;
public class RockPaperCisorScenario extends Scenario implements Model{
public RockPaperCisorScenario(int columns, int rows, Map<EntityFactory, Integer> initialMap) {
super(columns, rows, initialMap);
}
public List<Position> updateToNextGeneration() {
ArrayList<Position> changedPositions = new ArrayList<>();
Iterator<Square> iterator = getMatrix().iterator();
while (iterator.hasNext()) {
Square s = iterator.next();
if (s.isEmpty())
continue;
if (s.getMaxAge() == 0) {
s.incrementAllAges();
continue;
}
if(s.getMaxAge()>stepNumber()+1){
continue;
}
List<Entity> entities = new ArrayList<>(s.getEntities());
for (Entity e : entities) {
e.incrementAge();
changedPositions.addAll(e.nextTurn(this));
}
}
// Increment the step counter
this.step = this.step + 1;
System.out.println("-----------");
return changedPositions;
}
@Override
public Board<Square> getBoard() {
return this;
}
}