package poker.domain

import commons._
import poker.domain._

class Mao extends PilhaDeCartas(2) {
    
  def combinacoes(mesa:Mesa): List[Combinacao] = {
    var combinacoes = List[Combinacao]()
    var gerador = new GeradorDeCombinacao(mesa.quantidadeDeCartas, 3)
    while(gerador.hasNext()) {
      var listaDeIndices = gerador.next
      var cartas = List[Carta]()
      cartas = cartas ++ this
      listaDeIndices.foreach { indice:Int =>
        cartas = mesa(indice) :: cartas
      }
      
      combinacoes = CombinacaoFactory.get(cartas) :: combinacoes
    }
    CombinacaoFactory.ordena(combinacoes)
  }
  
  def melhorCombinacao(mesa:Mesa): Combinacao = {
    combinacoes(mesa).last
  }
  
}