Exercicio com matriz

       Na loteria esportiva da década de 80, o jogador tinha que escolher resultados para 16 jogos. Escreva um programa que leiam os palpites de um apostador na loteria esportiva e calcule o valor a ser pago por este apostador. O valor a ser pago é calculado por:

Valor a ser pago = V X 2D X 3T
V = valor da aposta
D = número de palpites duplos
T = número de palpites triplos
A matriz de apostas conterá X na coluna correspondente ao palpite dos apostadores em cada uma das linhas correspondente a cada jogo.

Por enquanto eu fiz isso:

 
public static void main(String[] args) {
        String[][] aposta=new String[16][3];
        int opcao,empate=0,a=0,b=0;
        float v,valorPagar;
        Scanner scan = new Scanner(System.in);
        System.out.print("Digite o valor da aposta:");
        v=scan.nextFloat();
        for(int i=0;i<aposta.length;i++){
            do{
            System.out.println("Digite a opção da aposta nº"+i+"\n1-Tima A\n2-Empate\n3-Time B");
            opcao=scan.nextInt();
            switch(opcao){
                case 1:
                a++;
                aposta[i][0]="X";
                aposta[i][1]="0";
                aposta[i][2]="0";
                break;
                    
                case 2:
                empate++;
                aposta[i][0]="0";
                aposta[i][1]="X";
                aposta[i][2]="0";
                break;
                    
                case 3:
                b++;
                aposta[i][0]="0";
                aposta[i][1]="0";
                aposta[i][2]="X";
                break;
                
                default:
                    System.out.println("INSIRA UM VALOR VALIDO!");
             }
            }while(opcao!=1&&opcao!=2&&opcao!=3);
        }
        for(int i=0;i<aposta.length;i++){    
            System.out.print(aposta[i][0]+" ");
            System.out.print(aposta[i][1]+" ");
            System.out.print(aposta[i][2]+" ");
            System.out.println();
        }
    }

A unica coisa que falta fazer é a continha pra ver quanto que o individuo apostador deve pagar, não compreendi a lógica, como faço essa parte???
se tiver como explicar a lógica pra mim eu ficarei muito grato :smiley:

Pelo que imagino, você nunca apostou na loteria esportiva - mas seu problema é que você não se deu ao trabalho de perguntar o que é um “palpite duplo” e um “palpite triplo”.

Digamos que um dos jogos (eram 13 na loteria antiga, 14 numa versão mais recente desse jogo) fosse Bahia X Vitória.

Como você deve saber, há três resultados possíveis: Bahia ganha, Vitória ganha, ou há empate.

Mas o apostador (que é o que você tem de entrar de dados) podia marcar algo como:

[X][][] Bahia ganha - palpite simples
[][X][] Bahia empata com Vitória - palpite simples
[][][X] Vitória ganha - palpite simples
[X][X][] Bahia ganha ou empata - palpite duplo
[X][
][X] Bahia ganha ou Vitória ganha - palpite duplo
[_][X][X] Vitória empata ou ganha - palpite duplo
[X][X][X] Bahia ganha, empata ou Vitória ganha - palpite triplo

OK? Seu programa está totalmente errado porque não está levando em conta o apostador.

Então, pelo que entendi, precisarei perguntar antes para o apostador se ele ira querer fazer um palpite simples, duplo ou triplo???

-perguntar pra ele o valor que quer apostar
-perguntar o tipo de aposta (a cada n linha da matriz)
-marcar na matriz

  • fazer o calculo
    -mostrar o resultado seguido com a matriz respondida

é isso que precisarei fazer???

Abstraia os códigos:

for(i){ //i são as linhas for(j){ // j são as colunas if(M[j] == 'X'){ //M é a matriz cont++; } } if(cont==3){ T++; //T é o número de apostas triplas }else if(cont==2){ D++; //D é o número de apostas duplas } cont=0; }

Vê se ajuda

[quote=LanHSD]Então, pelo que entendi, precisarei perguntar antes para o apostador se ele ira querer fazer um palpite simples, duplo ou triplo???

-perguntar pra ele o valor que quer apostar
-perguntar o tipo de aposta (a cada n linha da matriz)
-marcar na matriz

  • fazer o calculo
    -mostrar o resultado seguido com a matriz respondida

é isso que precisarei fazer???[/quote]

Acho que nem precisa disso.
Basta o apostador entrar alguma combinação parecida com X__ ou _XX ou X (só não pode entrar uma ___ que é uma aposta sem marcar, o que não pode ocorrer na Loteria Esportiva). Aí você conta a quantidade de X para saber se é simples, dupla ou tripla.

Entanglement.
Essa forma que tu falou de entrar com os valores, no caso, teria essas combinações:
X__
X
_X
XX

_XX
X_X
XXX
CERTO?
e se entrasse com ___ aparecia um erro “bugnaoseiaonde!”
nessa forma, precisaria criar uma var tipo String e depois dividi-la para pegar os X?ou tem outro modo?
obs:Valeu felipeaquieiroz, esse código sera util na hora de contar a qtd de D e T.

meu código ficou o seguinte:

public static void main(String[] args) {
        char[][] aposta=new char[16][3];
        int d=0,t=0;
        double v,vPago;
        String ap;
        Scanner scan = new Scanner(System.in);
        java.text.DecimalFormat format= new java.text.DecimalFormat("R$ ###,###,##0.00");
        System.out.print("Digite o valor da aposta:");
        v=scan.nextFloat();
        for(int i=0;i<aposta.length;i++){
                System.out.println("Digite a combinação da aposta:");
                System.out.println("X__->Tima A"); 
                System.out.println("_X_->Empate"); 
                System.out.println("__X->Time B"); 
                System.out.println("XX_->Tima A ou Empate(dupla)"); 
                System.out.println("_XX->Empate ou Time B(dupla)"); 
                System.out.println("X_X->Time A ou Tima B(dupla)"); 
                System.out.println("XXX->Aposta Tripla"); 
                ap=scan.next();
                if("XX_".equals(ap) || "_XX".equals(ap) || "X_X".equals(ap)){
                    d++;
                }
                if("XXX".equals(ap)){
                    t++;
                }
                aposta[i][0]=ap.charAt(0);
                aposta[i][1]=ap.charAt(1);
                aposta[i][2]=ap.charAt(2);
        }
        for(int i=0;i<aposta.length;i++){
            for(int j=0;j<3;j++){
                System.out.print(aposta[i][j]+" ");
            }
            System.out.println();
        }
        double dupla=Math.pow(2,d);
        double tripla=Math.pow(3,t);
        vPago=v*dupla*tripla;
        System.out.println("Valor a pagar: "+format.format(vPago));
    }

Muito obrigado aos users entanglement e felipeaqueiroz. Acho que agora esta certo de acordo com o que foi pedido no exercicio!
Thank You Very Much!