Métodos

2 respostas
E

Bem não estou entedendo porque as chamadas de métodos que eu faço em relação a classe PlataformaDeCartas não está acontecendo irei colocar o código logo abaixo para ficar mais fácil o entedimento:

Classe carta:

public class Carta 
{
	private String face;//face da carta
	private String naipe;//naipe da carta
	
	//Construtor de dois argumentos inicializa face e naipe da carta
	
	public Carta(String cartaFace,String cartaNaipe)
	{
		face=cartaFace;
		naipe=cartaNaipe;
		
	}
	
	public String toString()
	{
		return(face+" de "+ naipe);
	}

}

Classe PlataformaDeCartas:

import java.util.Random;
  

public class PlataformaDeCartas 
{
	private Carta plataforma[];
	private int atualCarta;
	private final int NUMERO_DE_CARTAS =52;
	private Random aleatoriosNumeros;
	
	public PlataformaDeCartas()
	{
		String face [] = {"Às","Coringa","três", "quatro", "cinco", "seis", "sete", "oito", "nove", "dez", "valete", "rainha", "rei"};
		String naipe[]={"espadas(♠)", "paus(♣)", "copas(♥)" , "ouros(♦)"};
		int i;
		
		plataforma=new Carta[NUMERO_DE_CARTAS];//cria um array de objetos Card
		atualCarta=0;//configura atual carta 
		aleatoriosNumeros=new Random();
		
		for(i=0;i<plataforma.length;i++)
		{
			plataforma[i]=new Carta(face[i%13],naipe[i/13]);
		}
	}
	//**********************
	//método para embaralhar as cartas 
	
	public void baralhamento()
	{
		int i;
		atualCarta=0;//reinicializa atualCarta
		
		//para cada Carta,seleciona outra carta aleatória e compara
		for(i=0;i<plataforma.length;i++)
		{
			int segundo = aleatoriosNumeros.nextInt(NUMERO_DE_CARTAS);
			
			Carta temp =plataforma[i];
			plataforma[i]=plataforma[segundo];
			plataforma[segundo]=temp;
		}
	}
	//********************
	
	public Carta distribui()
	{
		if(atualCarta<plataforma.length)
		{
			return plataforma[atualCarta++];
		}
		else
			return null;
	}
	

}

Classe PlataformaDeCartasNaim:

public class PlataformaDeCartasNaim 
{

 
	public static void main(String[] args) 
	{
		PlataformaDeCartas chama = new PlataformaDeCartas();
		chama.baralhamento();//aki está o erro
		
		//imprime todas as 52 cartas na ordem que são distribuídas
		
		for(int i=0;i<13;i++)
		{
			System.out.println(chama.distribui()+"    "+chama.distribui());
		}

	}

}

Porque quando vo chamar os métodos da classe PlataformaDeCartas sempre da erro??
a messagem é a seguinte

The method baralhamento() is undefined for the type PlataformaDeCartas

2 Respostas

I

olha, eu n sou o mais indicado para resolver essa pendenga…mas eu ainda n vi esse comando “chama”…

tenta tirar essa palavra e manda ver…

abs
boa sorte
Rafael

Z

Olha eu não sei se esse é o erro que esta dando mas isso aqui acho que esta errado

for(i=0;i<plataforma.length;i++) { plataforma[i]=new Carta(face[i%13],naipe[i/13]); }

eu tentaria

int numcartas=0;
  for (int i=0; i<face.length;i++) {
      for (int j=0; j<naipe.length;j++) {
         plataforma[numcartas] = new Carta(face[i],naipe[j]);
         numcartas++;
         }
         }
Criado 15 de janeiro de 2007
Ultima resposta 16 de jan. de 2007
Respostas 2
Participantes 3