Galera, estou fazendo o jogo 21 em java, mas quando o usuario pede para continuar o jogo da a carta seguinte. Preciso que ele de cartas aleatorias, creio que tenha que arrumar no metodo subir baralho ou distribuir cartas … abaixo o codigo
import java.util.Scanner;
class Main {
public static void main(String[] args) {
VinteUm jogo = new VinteUm();
jogo.criarCartas();
jogo.distribuirCartas();
int i=0;
do{
System.out.println("Sua carta: ");
jogo.mostrarcartaj1();
System.out.println("");
jogo.j1.subirBaralho();
System.out.println("Caso queira continuar digite 1, caso queira parar digite 2: ");
Scanner sc = new Scanner (System.in);
i = sc.nextInt();
}while (i != 2);
//jogo.mostrarVencedor();
}
}
class VinteUm{
Jogador j1 = new Jogador();
Carta[] monte = new Carta[12];
public void criarCartas(){
Carta c1 = new Carta();
c1.valor = 1;
this.monte[0] = c1;
Carta c2 = new Carta();
c2.valor = 2;
this.monte[1] = c2;
Carta c3 = new Carta();
c3.valor = 3;
this.monte[2] = c3;
Carta c4 = new Carta();
c4.valor = 4;
this.monte[3] = c4;
Carta c5 = new Carta();
c5.valor = 5;
this.monte[4] = c5;
Carta c6 = new Carta();
c6.valor = 6;
this.monte[5] = c6;
Carta c7 = new Carta();
c7.valor = 7;
this.monte[6] = c7;
Carta c8 = new Carta();
c8.valor = 8;
this.monte[7] = c8;
Carta c9 = new Carta();
c9.valor = 9;
this.monte[8] = c9;
Carta c10 = new Carta();
c10.valor = 10;
this.monte[9] = c10;
Carta c11 = new Carta();
c11.valor = 11;
this.monte[10] = c11;
Carta c12 = new Carta();
c12.valor = 12;
this.monte[11] = c12;
}
public void distribuirCartas() {
int x = 0;
for(int i = 0;i<12;i++){
Carta c = this.monte[i];
this.j1.monte[x] = c;
this.monte[i] = null;
x++;
}
}
public void mostrarcartaj1(){
System.out.println (j1.monte[0].valor);
}
}
class Carta {
int valor;
}
class Jogador {
String nome;
Carta[] monte = new Carta[12];
public void subirBaralho (){
int tamanho = 12;
for (int i = 0; i < tamanho -1; i++){
Carta x = this.monte [i+1];
this.monte[i] = x;
}
}
}