Exams almost graded will come to lab to give you. 

Please indicate lab you are attending.

Keep exams after that.

Modeling: very important.

Averages:kinda low. 

class Dice {
  int roll() {
    return (int) (1 + Math.random() * 6); 
  }
  public static void main(String[] args) {
    Dice d = new Dice();
    for (int i = 0; i < 20; i++) {
      System.out.print( d.roll() + " " );
    }
    System.out.println();
  }
}

Let's go into the next one. 

class Player {
  String name;
  String scores = ""; 
  int score, count; 
  Player(String name) {
     this.name = name; 
  }
  int score() {
     return this.score; 
  }
  boolean isWinner() {
     return this.score() >= 21; 
  }
  void add(int number) {
     this.score = this.score + number; 
     this.count = this.count + 1; 
     this.scores = this.scores + " " + number;  
  }
  public String toString() {
    return this.name + " [" + this.scores + " ] " ;  
  }
  public static void main(String[] args) {
    Player a = new Player("Adrian");
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(6);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(2);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(5);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(6);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(3);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(1);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
  }
}

Finally we developed Game:

import java.util.*; 

class Game {
  Dice d = new Dice();
  void start() {
    boolean finished = false; 
    while (! finished) {
      for (Player p : this.players) {
         p.add(d.roll()); 
         System.out.println( p ); 
         if (p.isWinner()) {
            finished = true; 
            break;
         }
      }
    }
    System.out.println("Game over."); 
  }
  ArrayList<Player> players; 
  Game(ArrayList<Player> q) {
     this.players = q;  
  }
  public static void main(String[] args) {
    ArrayList<Player> players = new ArrayList<Player>();
    for (int i = 0; i < args.length; i++)
      players.add(new Player(args[i]));
    Game a = new Game(players);
    a.start();
  }
}

--

In the second lecture Dice looked like this:

class Dice {
  int roll() {
    double value = Math.random(); 
    if (value < 1/6.0) return 1; 
    else if (value < 2/6.0) return 2;
    else if (value < 3/6.0) return 3;
    else if (value < 4/6.0) return 4;
    else if (value < 5/6.0) return 5;
    else return 6;
  }
  public static void main(String[] args) {
    Dice d = new Dice();
    for (int i = 0; i < 20; i++) {
      System.out.print( d.roll() + " " );
    }
    System.out.println();
  }
}

import java.util.*; 

class Player {
  ArrayList<Integer> whatever = new ArrayList<Integer>(); 
  public String toString() {
    return this.name + ": " + this.whatever + " " + this.score() + " " + this.isWinner();  
  }
  String name;
  Player(String q) {
    this.name = q;  
  }
  int score() {
    int sum = 0;
    for (Integer value : this.whatever) {
       sum = sum + value; 
    }
    return sum; 
  }
  boolean isWinner() {
    return this.score() >= 21; 
  }
  void add(int number) {
    this.whatever.add(number);   
  }
  public static void main(String[] args) {
    Player a = new Player("Adrian");
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(6);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(2);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(5);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(6);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(3);
    System.out.println(a + " " + a.score() + " " + a.isWinner());
    a.add(1);
    System.out.println(a + " " + a.score() + " " + a.isWinner()); 
  }
}

import java.util.*;

class Game {
  Dice dee = new Dice();
  ArrayList<Player> ziyu; 
  Game(ArrayList<Player> lop) {
     this.ziyu = lop;  
  }
  void start() {
    while ( true ) {
      for (Player p : this.ziyu) {
         p.add( dee.roll() ); 
         System.out.println( p ); 
         if (p.isWinner()) {
           return;
         }
      }
    }
    // System.out.println("Game over.");  
  }
  public static void main(String[] args) {
    ArrayList<Player> players = new ArrayList<Player>();
    for (int i = 0; i < args.length; i++)
      players.add(new Player(args[i]));
    Game a = new Game(players);
    a.start();
  }
}

--