+ Responder ao Tópico



  1. #1
    mrsoliveira
    Visitante

    Padrão Método para contabilzação de pontos

    Amigos,

    Estou com um probleminha para resolver uma jogo de cartas:
    Estou usando Java e preciso fazer um método para calcular a pontuação de um jogador do jogo de cartas:

    O jogador tem 6 cartas de qualquer valor (existente no baralho). e tenho que calcular a pontuação com base nas regras:

    - 1 sequencia simples (2 cartas) = 4 pontos;
    - 1 sequencia plus (3cartas ou mais) = 2 pontos por carta
    - trinca (3 cartas de mesmo numero) =2 pontos p/ cada trinca
    -par(2 cartas de mesmo numero)=1 ponto por par


    Alguém tem alguma idéia???

    Desde já agradeço a atenção de todos,
    Marcelo Oliveira

  2. #2

    Padrão Re: Método para contabilzação de pontos

    Citação Postado originalmente por mrsoliveira
    Estou com um probleminha para resolver uma jogo de cartas
    Ola Marcelo, nao entendi qual o problema, o que vc ja tentou fazer? o q nao funcionou?

  3. #3
    mrsoliveira
    Visitante

    Padrão Re: Método para contabilzação de pontos

    Cara,

    Eu tava tentando utilizar o metodo bubble sort para ordenar o array, mas isso não adianta.
    public static void Bolha (int[] v)
    {
    for (int i = v.length - 1; i > 0; i--)
    {
    for (int j = 0; j < i; j++)
    if (v [j] > v [j + 1])
    troca (v, j, j + 1);
    }
    }

    public static void troca (int&#91;] v, int j, int aposJ)
    {
    int aux = 0;

    aux = v [j];
    v [j] = v [aposJ];
    v [aposJ] = aux;
    }

    Olha o pq:

    Se eu mandar ordenar um array de 6 posições que são o máximo de cartas que o jogador pode ter e ordenar da seguinte maneira:

    [1]
    [1]
    [2]
    [4]
    [4]
    [8]

    se eu mandasse ordenar o array com o metodo buble sort , ele ficaria com mostrado acima.

    O problema ai eh como eu calcular a pontuação deste jogador, que no caso seria:
    [1]
    [2] = sequencia simples 2 pontos

    [4]
    [4] = par 1 ponto por carta = 2 pontos

    [1] = subtrai 1 ponto
    [8] = subtrai 1 ponto

    Eu tava tentando fazer um for para verificar se está em sequencia:

    tipo:

    for (int i=0; i<cartasDoJogador.length;i++) //cartasDoJogador é o array q guarda as cartas do jogador
    aux = [i+1]; //proximo valor do array //problema no utlimo valor

    Nesta parte não consegui evoluir!

    Mas pensei em seguir a seguinte lógica:
    1- Inicia jogo;
    2- Define quantos participantes;
    3- Cria o Baralho (Monte de cartas - Banco);
    4- Jogador[X] compra carta (verifica-se já estourou a quota (6));
    5- OrganizaJogo (este metodo seria responsavel por organizar as cartas de maneira a acumular o maior nr de pontos posssivel)
    6- VerificaPontuacao - Verifica a pontuacao de cada jogador
    7 - Verfica a pontuacao Geral


    O maior problema tah sendo a parte de pontuação!