Ir ao conteúdo
  • Cadastre-se

Ajuda com esse código


rawlinston

Posts recomendados

bom dia pessoal sou novo por aqui, não sei se esse e o lugar certo para postar isso mas vamos la.

faço curso técnico em informatica, minha professora passou um trabalho, só que ela não explicou quase nada como fazer to com uma grande problema n'ao consigo fazer ele, alguém poderia me ajudar !! o ponto de interrogacao e outras coisas estão falhando.

O programa deverá exibir a seguinte saída:

Quantidade de Jogadores? 2 (mostrar o numero de jogadores)

Quantidade de Pecas por Jogador? 6 (mostrar a quantidade de pecas por jogador)

Domino: 0-0 0-1 0-2 0-3 0-4 0-5 0-6 1-1 1-2 1-3 1-4 1-5 1-6 2-2 2-3 2-4 2-5 2-6 3-3 3-4 3-5 3-6 4-4 4-5 4-6 5-5 5-6 6-6 (mostrar todas as pecas)

Embaralhado: 3-3 1-1 1-2 1-4 0-4 0-0 1-6 4-6 2-3 1-5 0-6 2-4 5-6 5-5 6-6 2-6 3-6 3-4 0-2 4-5 3-5 0-1 2-2 2-5 1-3 4-4 0-5 0-3 (Mostrar as pecas embaralhadas)

Jogador1:[0-5, 1-1, 1-5, 4-6, 1-4, 0-6]

Jogador2:[2-4, 0-0, 2-2, 4-5, 6-6, 3-6]

Sobraram:(Mostrar as pecas que sobraram após a distribuição)

http://img812.imageshack.us/img812/6739/aquitp.png

Link para o comentário
Compartilhar em outros sites

Bem, acredito que você está distribuindo as peças aos jogadores com o método pegarPeca(), depois de embaralhar, correto?

Nesse método, além de retornar a peça em questão, você pode remover a peça da lista de peças "pecas". Assim, depois de distribuir as peças para os 2 jogadores, vai ficar as que sobraram, e aí é só mostrar o conteúdo da lista.

Link para o comentário
Compartilhar em outros sites

cara eu fiz assim

classe domino



import java.util.ArrayList;
import java.util.List;


public class Domino {

List<Peca> peca;


public Domino(){
peca = domino();
}

private List<Peca> domino() {

List<Peca> domino = new ArrayList<Peca>();


for (int i = 0; i <=6; i++){
for (int j =i; j<=6; j++){
Peca peca = new Peca(i,j);
domino.add(peca);
}
}
return domino;
}

public void Misturar(){

for (int i = 0; i < peca.size(); i++ ){
int posicao = posicaoAleatoria();
Peca p = peca.get(i);
peca.set(i, peca.get(posicao) );
peca.set(posicao, p);

}
}


public List<Peca> distribuir( int numeroDePecas ){
List<Peca> pecasRetiradas = new ArrayList<Peca>();

for (int i =0 ; i <numeroDePecas; i++){
pecasRetiradas.add( pegarPeca() );
}

return pecasRetiradas;
}


private Peca pegarPeca() {
return peca.remove(0);
}


private int posicaoAleatoria() {
return (int) Math.round( Math.random() * 27);
}


public String toString(){


for (int i=0; i< peca.size(); i++){

System.out.println(peca.get(i).toString()+" ");
}
return null;



}

}
package domino;

classe pecas




public class Peca {

private int ladoDir;
private int ladoEsq;

public Peca (int dir, int esq){
ladoDir = dir;
ladoEsq = esq;
}

public String toString(){
return ladoDir+"-"+ladoEsq;
}
}
package domino;

classe partida , a classe partida esta em um pacote diferente pacote teste em quanto as outras duas classes estão no pacote domino


import domino.Domino;
import domino.Peca;
import java.util.List;
import java.util.Scanner;

public class Partida {

public static void main(String[] args) {

final int LimiteDePeca = 28;

Scanner entrada = new Scanner(System.in);

Domino domino = new Domino();


domino.Misturar();

System.out.print("Quantidade de Jogadores? ");
int numerosJogadores = entrada.nextInt();

System.out.print("Quantidade de Pecas por Jogador? ");
int numeroPecas = entrada.nextInt();

if ( numerosJogadores * numeroPecas > LimiteDePeca){
System.out.println("Partida cancelada por falta de peças!");
}
else{
for (int i = 0 ; i < numerosJogadores; i++){
List<Peca> jogador = domino.distribuir(numeroPecas);
System.out.println("Jogador"+ (i+1)+ ":" + jogador.toString());
}
}

}
}
package Teste;

ai quando inicializo da erre erro aqui

run:

java.lang.NoClassDefFoundError: Teste/Jogo

Caused by: java.lang.ClassNotFoundException: Teste.Jogo

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

Could not find the main class: Teste.Jogo. Program will exit.

Exception in thread "main" Java Result: 1

CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá rawlinston

Aqui compilou sem erros e está executando... (uso JCreator 4.5 Pro), mas você precisa revisar a modelagem, pois está diferente da imagem passada. TODOS os métodos e atributos devem ficar EXATAMENTE como está descrita na imagem!!!

Daí é só inserir o que falta no programa principal para exibir de acordo com o enunciado.

No aguardo.

Link para o comentário
Compartilhar em outros sites

tipo eu coloquei a classe partida dentro do pacote dominó e coloquei a classe principal no pacote teste.


import domino.Domino;
import domino.Peca;
import domino.Partida;
import java.util.List;

public class Principal {

public static void main(String[] args) {


Domino domino = new Domino();


System.out.println("Domino: "+domino.toString());


domino.Misturar();


System.out.println("Embaralhado: " +domino.toString());


List<Peca> jogador = domino.distribuir(6);


System.out.println("Jogador: " + jogador.toString());


System.out.println("Sobraram: " +domino.toString());

}
}
package Teste;

ai deu um problema como eu tinha colado o tostring na classe domino retornando null , não sei o que colocar para retornar as peças que sobraram

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
ai deu um problema como eu tinha colado o toString na classe domino retornando nul , não sei o que colocar para retornar as peças que sobraram

1) Como a modelagem do programa é pré-definida (na imagem), você DEVE OBRIGATORIAMENTE SEGUIR AS ESPECIFICAÇÕES -_-. Você pode até inserir coisas a mais, mas a menos nunca! Os requisitos devem ser seguidos, sacou?

Por exemplo, além de você está retornando o tipo diferente (null, em vez de String no toString():String), está usando um nome diferente para constroiDomino():List. Seu código deve seguir essas "regras". Daí só usa de forma que o resultado fique com a aparência do exemplo...

Resumidamente seria como dizer que sua dúvida deveria está em:

"Como retornar via String???"

Mudar esse retorno não pode! :D

Outra coisa, se por exemplo você identificasse que não seria viável, ou acha que de outra forma seria melhor, você teria que remodelar o diagrama (é assim que chama né?), e claro, obedecendo todo a questão envolvida nessa remodelagem (quem é o responsável, no que vai interferir etc). Se o diagrama fizer parte do enunciado, você vai ter seguir. Essa é a função dela!

2) Uma solução para imprimir o dominó, seria "concatenado" as peça na tal String que vai ser retornada... ^_^

No aguardo.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!