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()); } } }
}
The solution to the above problem in java is as follows:-
Code-
import java.util.*;
interface ScoreIterator {
int next();
boolean hasNext();
}
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);
}
}
}
ScoreIterator scoreIterator () {
// return anonymous
object of type ScoreIterator
ScoreIterator x= new
ScoreIterator(){ //Create new object
int i=0; //devclare player index
int j=0; //Score index
@Override
public int next(){ //Calculate scores for the index
int score=scores[i][j];
j++;
if(j==scores[i].length){
i++; ///increase iterator
j=0;
}
return score; //return total score
}
@Override
public boolean hasNext(){ //Check if new player exists
return i<scores.length;
}
};
return x;
}
public static void main(String[] args)
{
ScoreBoard sb = new
ScoreBoard (3, 2);
ScoreIterator iterator =
sb.scoreIterator ();
while
(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
Code Screenshots-
Outputs-
Feel free to comment for any issues, do rate the answer positively