-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
96 lines (80 loc) · 3.49 KB
/
Main.java
File metadata and controls
96 lines (80 loc) · 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("informe o número de jogadores (de 3 a 6): ");
int numJogadores = scanner.nextInt();
scanner.nextLine();
if (numJogadores<3 || numJogadores>6){
System.out.println("o numero de jogadores deve ser maior que 3 e menor que 6");
return;
}
List<Jogador> jogadores = new ArrayList<>();
for (int i = 1; i <= numJogadores; i++) {
System.out.print("informe o nome do jogador " + i + ": ");
String nomeJogador = scanner.nextLine();
jogadores.add(new Jogador(nomeJogador, new ArrayList<>()));
}
Baralho baralho = new Baralho();
baralho.embaralhar();
Tabuleiro tabuleiro = new Tabuleiro();
for (Jogador jogador : jogadores) {
List<Carta> mao = baralho.distribuirCartas(12);
jogador.getMao().addAll(mao);
}
for (int i = 0; i < 12; i++) {
for (Jogador jogador : jogadores) {
System.out.println("Jogador: " + jogador.getNome());
System.out.println("Mão atual: " + jogador.getMao().toString().replace("[", "").replace("]", ""));
System.out.print("Escolha uma carta para jogar: ");
int cartaEscolhida = scanner.nextInt();
Carta carta = null;
for (Carta c : jogador.getMao()) {
if (c.getNumero() == cartaEscolhida) {
carta = c;
break;
}
}
if (carta != null) {
jogador.removerCartasMao(List.of(carta));
tabuleiro.posicionarCarta(carta);
} else {
System.out.println("Carta inválida. Escolha novamente.");
i--;
}
}
System.out.println("Estado atual do tabuleiro:");
tabuleiro.imprimirTabuleiro();
for (Jogador jogador : jogadores) {
int linha = 0;
int pontos = tabuleiro.coletarCartas(linha);
jogador.atualizarPontuacao(pontos);
}
}
System.out.println("Pontuações finais:");
int menorPontuacao = Integer.MAX_VALUE;
List<Jogador> vencedores = new ArrayList<>();
for (Jogador jogador : jogadores) {
int pontuacaoJogador = jogador.getPontuacao();
System.out.println(jogador.getNome() + ": " + pontuacaoJogador);
if (pontuacaoJogador < menorPontuacao) {
menorPontuacao = pontuacaoJogador;
vencedores.clear();
vencedores.add(jogador);
} else if (pontuacaoJogador == menorPontuacao) {
vencedores.add(jogador);
}
}
if (vencedores.size() == 1) {
System.out.println("O vencedor é: " + vencedores.get(0).getNome() + " com " + menorPontuacao + " pontos!");
} else {
System.out.println("Empate entre os seguintes jogadores:");
for (Jogador jogador : vencedores) {
System.out.println(jogador.getNome() + " com " + menorPontuacao + " pontos!");
}
}
scanner.close();
}
}