In: Computer Science
In java. I have class ScoreBoard that holds a 2d array of each player's score. COde Bellow
Example:
| Score 1 | score 2 | |
| Player1 | 20 | 21 |
| Player2 | 15 | 32 |
| Player3 | 6 | 7 |
Using the method ScoreIterator so that it returns anonymous object of type ScoreIterator , iterate over all the scores, one by one. Use the next() and hasNext()
public interface ScoreIterator {
int next();
boolean hasNext();
Class ScoreBoard :
import java.util.*;
public class ScoreBoard {
int[][] scores ;
public ScoreBoard (int numOfPlayers, int numOfRounds) {
scores = new int[numOfPlayers][numOfRounds];
Random rand = new Random();
for (int i = 0; i < numOfPlayers; i++) {
for (int j = 0; j < numOfRounds; j++) {
scores [i][j] = 50 + rand.nextInt(51);
}
}
}
public ScoreIterator scoreIterator () {
// return anonymous object of type ScoreIterator
}
public static void main(String[] args) {
ScoreBoard sb = new ScoreBoard (3, 2);
ScoreIterator iterator = sb.ScoreIterator ();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
}
Here is the updated class ScoreBoard.
=============================================================================
import java.util.*;
public class ScoreBoard {
int[][] scores;
int nextIndex = 0;
public ScoreBoard(int numOfPlayers, int numOfRounds) {
scores = new int[numOfPlayers][numOfRounds];
Random rand = new Random();
for (int i = 0; i < numOfPlayers; i++) {
for (int j = 0; j < numOfRounds; j++) {
scores[i][j] = 50 + rand.nextInt(51);
}
}
nextIndex = 0;
}
public ScoreIterator ScoreIterator() {
return new ScoreIterator() {
@Override
public int next() {
int score = scores[nextIndex/scores[0].length][nextIndex%scores[0].length];
nextIndex++;
return score;
}
@Override
public boolean hasNext() {
return (nextIndex < scores.length * scores[0].length);
}
};
}
public static void main(String[] args) {
ScoreBoard sb = new ScoreBoard(2, 3);
ScoreIterator iterator = sb.ScoreIterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
=====================================================================
