Kelvineger

Campeoanto.java

Aug 29th, 2015
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.51 KB | None | 0 0
  1. package brasileiroProf;
  2. import java.util.Collections;  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Comparator;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import java.util.function.Consumer;
  10.  
  11. public class Campeonato {
  12.  
  13.     private List<Time> times = new ArrayList<Time>();
  14.     private List<Jogo> jogos;
  15.     private Map<Time, Pontos> tabela;
  16.  
  17.     public void addTime(Time umTime) {
  18.         times.add(umTime);
  19.     }
  20.  
  21.     public void disputar() {
  22.         iniciarCampeonato();
  23.         for (Jogo jogo : jogos) {
  24.             jogo.jogar();
  25.             atualizarTabela(jogo);
  26.         }
  27.     }
  28.  
  29.     private void atualizarTabela(Jogo jogo) {
  30.         Time timeA = jogo.getTimeA();
  31.         Time timeB = jogo.getTimeB();
  32.  
  33.         Pontos tabelaTimeA = tabela.get(timeA);
  34.         Pontos tabelaTimeB = tabela.get(timeB);
  35.  
  36.         if (jogo.empatou()) {
  37.             tabelaTimeA.incrementarEmpates();
  38.             tabelaTimeB.incrementarEmpates();
  39.             tabelaTimeA.incrementarPontos(1);
  40.             tabelaTimeB.incrementarPontos(1);
  41.  
  42.         } else if (timeA.equals(jogo.vitorioso())) {
  43.             tabelaTimeA.incrementarPontos(3);
  44.             tabelaTimeA.incrementarVitorias();
  45.             tabelaTimeA.incrementarDerrotas();
  46.         } else {
  47.             tabelaTimeB.incrementarPontos(3);
  48.             tabelaTimeB.incrementarVitorias();
  49.             tabelaTimeB.incrementarDerrotas();
  50.         }
  51.  
  52.         tabelaTimeA.incrementarJogos();
  53.         tabelaTimeB.incrementarJogos();
  54.  
  55.     }
  56.  
  57.     private void iniciarCampeonato() {
  58.         jogos = new ArrayList<Jogo>();
  59.         tabela = new HashMap<Time, Pontos>();
  60.         for (Time timeA : times) {
  61.             tabela.put(timeA, new Pontos());
  62.             for (Time timeB : times) {
  63.                 if (!timeA.equals(timeB)) {
  64.                     jogos.add(new Jogo(timeA, timeB));
  65.                 }
  66.             }
  67.         }
  68.     }
  69.  
  70.     public void imprimirTabela() {
  71.         System.out.println("Tabela do Campeonato");
  72.        
  73.         for (Time time : times) {
  74.             Pontos pontos = tabela.get(time);
  75.             System.out.println(
  76.                 String.format(
  77.                     "%-20s %d pontos %d empates %d vitorias %d derrotas",
  78.                     time.getNome(),
  79.                     pontos.getPontos(),
  80.                     pontos.getEmpates(),
  81.                     pontos.getVitorias(),
  82.                     pontos.getDerrotas()
  83.                 )
  84.             );
  85.         }
  86.     }
  87.  
  88. }
Add Comment
Please, Sign In to add comment