package com.novoda.simonsays.game;
import android.view.View;
import java.util.Iterator;
import java.util.List;
public class Round {
private final int level;
private final ViewSequence viewSequence;
private final KeySequence keySequence;
private long speed;
public Round(int level, ViewSequence viewSequence, KeySequence keySequence, long speed) {
this.level = level;
this.viewSequence = viewSequence;
this.keySequence = keySequence;
this.speed = speed;
}
public ViewSequence getViewSequence() {
return viewSequence;
}
public KeySequence getKeySequence() {
return keySequence;
}
public int getScore() {
return level - 1;
}
public int getNextLevel() {
return level + 1;
}
public long getSpeed() {
return speed;
}
public static class ViewSequence implements Iterable<View> {
private final List<View> views;
private int count;
public ViewSequence(List<View> views) {
this.views = views;
}
public View next() {
return views.get(count++);
}
public boolean isComplete() {
return count == views.size();
}
@Override
public Iterator<View> iterator() {
return views.iterator();
}
public View get(int position) {
return views.get(position);
}
}
public static class KeySequence implements Iterable<Integer> {
private final List<Integer> keys;
public KeySequence(List<Integer> keys) {
this.keys = keys;
}
public int size() {
return keys.size();
}
public Integer get(int position) {
return keys.get(position);
}
@Override
public Iterator<Integer> iterator() {
return keys.iterator();
}
public boolean contains(int keyCode) {
return keys.contains(keyCode);
}
public int indexOf(int keyCode) {
return keys.indexOf(keyCode);
}
}
}