void mainMenu(){
    /* Prints main menu screen and gets user choice */
    int userOption; /* Stores user chosen menu option */
    
    /* Initial message */
    system("clear");
    printf("Bem vindo ao jogo: Batalha Naval\n\n[Pressione ENTER para ir ao menu principal]\n");
    getchar(); /* Waits for ENTER keypress */
    
    /* Menu Loop */
    do{
        printMainMenu(); /* Prints menu options */
        scanf("%i", &userOption); /* Listens to user input */
        switch(userOption){  /* Executes input */
            case 1:
                startGame();
                break;

            case 2:
                configureGame();
                break;

            case 3:
                getRanking();
                break;

            case 0:
                break;

            default:
                printf("Por favor escolha uma entrada valida!\n");
                printf("\n[Pressione ENTER para continuar]");
                getchar();
                getchar();
        }
    
    
    }while(userOption != 0);
        
    return;
}
// ----------------------------------------------------------------------
void rankingOverlays(string fname, int n = 2) {

  TH1D* vHist[15];
  vector<string> vNames;
  vNames.push_back("m1pt"); 
  vNames.push_back("m2pt"); 
  vNames.push_back("m1eta");
  vNames.push_back("m2eta");
  vNames.push_back("pt");   
  vNames.push_back("eta");  
  vNames.push_back("fls3d");
  vNames.push_back("alpha");
  vNames.push_back("maxdoca");
  vNames.push_back("pvip"); 
  vNames.push_back("pvips");
  vNames.push_back("iso");
  vNames.push_back("closetrk");
  vNames.push_back("docatrk");
  vNames.push_back("chi2dof");

  string hsName;
  TH1D* h;
  for (int i = 0; i < vNames.size(); ++i) {
    h = new TH1D(vNames[i].c_str(), vNames[i].c_str(), 100, 0., 0.5); 
    vHist[i] = h;
  }

  int seed(100), offset(0);
  string slabel;
  double w8; 
  for (int i = 0; i < n; ++i) {
    offset = seed + i; 
    h = getRanking(fname, "BDT", offset); 
    for (int ibin = 1; ibin < h->GetNbinsX(); ++ibin) {
      slabel = h->GetXaxis()->GetBinLabel(ibin);  
      if (!strcmp("", slabel.c_str())) break;
      w8 = h->GetBinContent(ibin); 
      cout << slabel << " " << w8 << endl;
      for (int iv = 0; iv < vNames.size(); ++iv) {
	if (slabel == vNames[iv]) {
	  cout << "filling " << w8 << " with name " << slabel << " into hist " << vNames[iv] << endl;
	  vHist[iv]->Fill(w8);
	}
      }
    }
  }

  c0.Clear();
  c0.Divide(4,4);
  for (int ic = 1; ic <= 15; ++ic) {
    c0->cd(ic); 
    if (vHist[ic-1]) {
      vHist[ic-1]->Draw();
    } else {
      cout << "vHist[" << ic-1 << "] not found" << endl;
    }
  }
  c0.SaveAs("rankingOverlays.pdf");
  cout << "done" << endl;

  c0.Clear();
  h->Draw();
}