Como criar 3 arrays e compará-los?

3 respostas
J

Oi pessoal!

Estou tentando fazer uma programinha com 3 arrays:
- um array com um numero x de fichas;
- um array com quantidade que cada ficha pode ser virada (se for branca tem que o numero de viradas pares ( de 0 até 2), se for coinza deve tero numero de viradas impares (de 0 até 3))
- um array com o numero resultante de viradas que já foram dadas.

Já comecei o programinha mas não consigo fazer o método joga que armazena no array esses dados. Segue o código que já tenho:

import java.util.Scanner;

public class ViraVira
{   public static int n = 0; //n= quand. fichas
    public static int TOTAL = 0;
    public int cont=0;

    //metodo para definir as fichas do jogo
   public void jogoFichas(){
        System.out.println( "Defina a quantidade de fichas do jogo:" );
        Scanner s = new Scanner( System.in );
        String quant = s.nextLine();
        TOTAL = Integer.parseInt(quant);
        System.out.println( "Defina o jogo de fichas: B = Branca : C = Cinza" );
        Scanner sc = new Scanner( System.in );
        char[] fichas = new char[TOTAL]; // criação do array de fichas
        for ( int i = 0; i < TOTAL; i++ )
        {
            System.out.print( "Entre com as fichas do jogo: " );
            Scanner sc2 = new Scanner( System.in );
            String c = sc.next();
            fichas[i] = c.charAt( 0 );          
        }
        System.out.print( "O usuário digitou: " );
        for ( char c : fichas )
        {
           System.out.print( c );
           System.out.print( " " );
           System.out.print( "" );
        
           if (c=='b'){
          cont++;}
    }
        System.out.println("\nNumero de fichas brancas:" +cont+"." );
        if (cont%2==0)
         System.out.println( "Numero de fichas brancas par, jogo possui solução." );
         else
         System.out.println( "Numero de fichas brancas impar, jogo Não possui solução." );
        System.exit(0);
  }

  //metodo verificou que é par, então joga
    public void joga (){
        int quantViradas =0;
        int numRodadas = 0;
        char[] fichas = new char[TOTAL]; // array de fichas do jogo
        int[] viradas = new int[quantViradas]; // array de quant. que as fichas viraram
        int[] rodadas = new int[numRodadas]; // quant. de rodadas
        
 
}
}

3 Respostas

nel

Boa noite!

Um pouco apressado…mas se quiser comparar na “mão” isso podes criar uma método para comparar os arrays de acordo com a sua necessidade.
Caso contrário, crie uma classe que implemente a interface comparator e dentro da mesma implementa a lógica.

Após isto, é só utilizar o método sort da classe Collections.
Aqui no GUJ mesmo tem tutorial e dicas sobre a interface comparator.

Abraços.

J

Sim , acho uma boa idéia.

Mas o que na verdade não estou conseguindo fazer é comparar os arrays.

Como por exemplo:

Se ficha b deu deu trê viradas, e acabaram o numero de rodadas o jogo termina.

Como eu poderia implementar isso em java?

nel

Bom dia.

Bom, se este é o caso.
Basta verificar se o seu array de fichas viradas possue tamanho igual á 3, ou seja, o método lenght() retorna o tamanho do seu array.
Logo, se ele possuir o tamanho três você pode encerrar a partida, perfeito?

Caso esteja dentro de um for, basta dar um break quando o tamanho for três.
Se quiser algo para controle “externo”, podes verificar novamente o tamanho do array ou simplesmente utilizar de uma variavél boolean indicando que “game over”.

Certo? :slight_smile:

Abraços.

Criado 22 de agosto de 2010
Ultima resposta 23 de ago. de 2010
Respostas 3
Participantes 2