EP 3

EP 3

por Jair Pontes Pisani -
Número de respostas: 55
Debates sobre o EP 3
Em resposta à Jair Pontes Pisani

Re: EP 3

por Elienos Pereira de Oliveira -

Olá,

A respeito do método devolveFaseAtual(), não sei o que testar para determinar a fase me que o jogo se encontra.

No metodo efetuaJogada, o que são as variaveis ci1, ci2, cf1, e cf2. E como vou distinguir de qual dos jogadores é a jogada.

Em resposta à Elienos Pereira de Oliveira

Re: EP 3

por Alfredo Goldman -
Olás,
  A idéia é que a sua classe represente o comportamento do tabuleiro,
logo a classe deve ter atributos que controlam a fase atual, assim como
controlar de quem é a vez. Algo como:

int fase;
int qualJogador;  // 1 se for o primeiro e 2 se for o segundo

  Para o efetuaJogada, temos as coordenadas iniciais (ci1 e ci2)  e finais
(cf1 e cf2), mas, note que as coordenadas finais só funcionam após a primeira
fase, antes disso estes parâmetros serão apenas ignorados.
  Mais dúvidas ?

Alfredo
Em resposta à Alfredo Goldman

Re: EP 3

por Elienos Pereira de Oliveira -

Pelo que entendi do metodo devolveFaseAtual ele deve devolver zero se o jogo estiver na 1ª fase  que é a colocação de peças, deve devolver 1 se o jogo estiver na 2ª fase, deve devolver 2 se o jogo estiver na 3ª fase e devolver -1 se o jogo tiver terminado, mas vamos dizer que eu quero então identificar se o jogo está na 1ª fase, qual condição eu devo testar para determinar se está na primeira ou na segunda fase.

Pensei em testar o numero de peças colocadas, mas não deu certo.

No efetua jogada, não entendi como vou fazer para diferenciar quando é a jogado do jogador 1 e quando é a jogada do jogador 2. Na matriz vou diferenciar por 1 e 2 e vou deixar 0 se a casa estiver vazia, agora na hora de fazer a jogada não sei como diferenciar.

Em resposta à Elienos Pereira de Oliveira

Re: EP 3

por Alfredo Goldman -
Olá,
  Estamos chegando a algo interessante sorriso
  Primeiro, vamos precisar de atributos para controlar a fase e a vez.
  Para a fase é fácil, começa-se na fase 0, após serem colocadas 18 peças,
passa se a fase 1. Colocar 18 peças correspondem a 18 chamadas do efetuaJogada
(a não ser que ocorram trilhas, mas podemos pensar nisto depois sorriso.
  Com relação a quem joga, basta alternar, um jogador e o outro.
  Mais dúvidas ?

Alfredo
Em resposta à Alfredo Goldman

Re: EP 3

por Cleo de Sousa Batista -

saudações Exmo professor

-Não seria mais interessante se no método devolveFaseAtual, nós colocassemos uma String que imprimisse 1ª,2ª ou 3ª fase junto com uma mensagem de texto qualquer?

-Se as situações de jogada inválida, inicio de nova fase ou formação de trilha fossem mostradas automaticamente pelo método, não seria menos desgastante aos jogadores? Ou isso não vem ao caso no objetivo do exercício?

- O que significa o "[][]" do método int [][]devolveMatriz? Como eu faço para devolver uma matriz  inteira no return de modo que ela fique organizada como utilizando o System.out.print e System.out.println?

Em resposta à Cleo de Sousa Batista

Re: EP 3

por Alfredo Goldman -
O Fórum começa a ficar movimentado sorriso

A idéia é que a classe que faz o jogo de trilha não imprima nada, mas nada
impede que ao receber a fase atual você imprima uma mensagem. A razão disto
é separar a lógica da interface com o usuário. Nada impede, mais para frente
que vocês elaborem uma interface gráfica, ou web para jogar trilha sorriso

O int [][] representa um array bidimensional, ou matriz. Ela é automaticamente
organizada, para imprimila são necessários dois laços.

Alfredo
Em resposta à Alfredo Goldman

Re: EP 3

por Thiago Silva Lisboa -

Olá!

Estou com a mesma dúvida do Cleo. Quando chega no return matriz aparece um número muito esquisito na tela, para devolver a matriz não pode simplismente imprimi-la com void devolveMatriz(); ????

Em resposta à Thiago Silva Lisboa

Re: EP 3

por Alfredo Goldman -
Olá Thiago,
  O número esquisito corresponde ao endereço da matriz, pois o DrJava não
sabe "mostrar" uma matriz. Uma solução simples é criar um método
imprimeMatriz(int [][] a), e usar o devolveMatriz() assim (iterações do DrJava):

int [][]m = obj.devolveMatriz();
obj.imprimeMatriz(m);



Alfredo

Em resposta à Alfredo Goldman

Re: EP 3

por Thiago Silva Lisboa -

E aeh professor, gostou do jogo???

É dura essa vida de aluno, ter que fazer EP dapois do jogo.

Estou usando uma matriz de String, como implementar o método

int [][] devolveMatriz() ???

Valew

Em resposta à Alfredo Goldman

Re: EP 3

por Thiago Silva Lisboa -

Continuo sem intender professor.

Os métodos que o Sr. sugeriu são void???

Se eu fizer daquela maneira vai imprimir uma matriz???

Em resposta à Alfredo Goldman

Re: EP 3

por Thiago Silva Lisboa -

Ao invés de criarmos o método boolean efetuaJogoda(.........)

não poderíamos criar outros métodos como boolean inserirPeça, boolean movimentarPeça, boolean retirarPeça ....???

Em resposta à Thiago Silva Lisboa

Re: EP 3

por Alfredo Goldman -
Olá Thiago,
  Muito boa a sua pergunta. Se eu tivesse optado por pedir os métodos
inserirPeça, movimentarPeça e retirarPeça, parte da lógica da programação
ficaria na classe que usa o Tabuleiro. Deixando um único método, não
existe a necessidade de se preoucupar com qual fase se está jogando.
  Mas, é importante ressaltar, que nada impede que você crie internamente
estes três métodos que você sugeriu, isto inclusive é uma ótima idéia.

Alfredo
Em resposta à Jair Pontes Pisani

Re: EP 3

por Thiago Silva Lisboa -

Olá Prof.

Fiz o método imprimeTabuleiro com a criação de de um objeto logo no inicio, pra eu poder utilizar um outro método que verifica o que há  na matriz, o problema é que sempre que eu chamo j.imprimeTabuleiro ele me retorna uma interface como se não tivesse nada na matriz ( nenhuma peça em jogo); sendo que eu já havia inserido "peças" antes!!!

Daí logo após a criação do objeto eu inseri uma peça pra testar, e então deu certo.

Sera que no ato da criação do objeto ela zera a matriz ?????

Como eu faço então???

Em resposta à Thiago Silva Lisboa

Re: EP 3

por Eduardo W -
ninguem ainda falou q adiou a sub?!!?!

professor, facilita na P2 aí pq se não vai ter um monte de sub pra corrigir, inclusive a minha! hahahha

adiou pra sexta dia 30?
virando os olhos morto

Em resposta à Thiago Silva Lisboa

Re: EP 3

por Alfredo Goldman -
Olá,
  Da forma que você fez, você cria uma variável, que é inicializada
a cada vez que o método é chamado. A maneira de resolver isto é
criar o objeto (no caso uma matriz) como atributo (isto é, fora dos
métodos). Desta forma, o estado desta matriz é mantido.

Alfredo
Em resposta à Jair Pontes Pisani

Re: EP 3

por Thiago Silva Lisboa -

PELO AMOR DE DEUS, CADE A NOTA DO EP2??????

Em resposta à Thiago Silva Lisboa

Re: EP 3

por Gregori Arruda Moreira -
        Professor, ao invés de utilizar o método int [][] devolveMatriz() para analizar a situação da matriz, eu criei três atributos que de acordo com as jogadas contabilizam a condição de cada jogador e a da matriz. Isto tornou mais fácil o processo, pois a cada jogada já tenho o resultado do devolveMatriz  e, alguns dados necessários. Esta solução pode ser utilizada, ou preciso realmente usar o método devolveMatriz?
Em resposta à Gregori Arruda Moreira

Re: EP 3

por Bruno Albuquerque -

Olá.
Aproveitando a pergunta anterior, gostaria de saber como funciona o método int [][] devolveMatriz (). Teremos que retornar o tabuleiro a cada jogada, através desse método? Se for essa a intenção, não bastaria utilizar o método void imprimeTabuleiro ()?

Desde já agradeço pela atenção.
Bruno Albuquerque

Em resposta à Bruno Albuquerque

Re: EP 3

por Alfredo Goldman -
Olá Bruno,
  O método int [][] devolveMatriz()  foi pedido para facilitar a correção dos
EPs. Para fazer a simulação do jogo, ele não é usado, pois existe o método
void imprimeTabuleiro() que serve para a interação com o usuário.

Alfredo
Em resposta à Alfredo Goldman

Re: EP 3

por Cleo de Sousa Batista -
Cleo de Sousa Batista [Sex, 01:16]: Olá.
Professor, eu gostaria de saber se há problemas em começar as posiçoes da matriz no canto superior esquerdo doo tabuleiro.
[0][0]-----[0][1]-----[0][2]
|                             |
[0][7]                    [0][3]
|                              |
[0][6]-----[0][5]-----[0][4]

Assim fica um pouco diferente do enunciado do EP3. na construção dos métodos tambem fica uma diferença, há algum problema?
Em resposta à Cleo de Sousa Batista

Re: EP 3

por Alfredo Goldman -
Olá Cleo,
  Não acho uma boa idéia não usar as coordenadas do enunciado, pois você
não ganha nada com isto. Logo, padronize.

Alfredo
Em resposta à Gregori Arruda Moreira

Re: EP 3

por Alfredo Goldman -
Olá Gregori,
  A solução de criar atributos para ajudar a saber a condição do jogo foi
uma ótima idéia, isto só facilita o seu trabalho. Por outro lado, isto
não deve intereferir em nada na implementação do int [][] devolveMatriz(),
pois este método apenas devolve o estato atual do tabuleiro no formato de
uma matriz pré-definida, mais nada.
  Reforçando, o devolveMatriz deve ser usado apenas para a correção do EP.

Alfredo
Em resposta à Alfredo Goldman

Re: EP 3

por Cleo de Sousa Batista -

olá.

Professor, Vsa. disse que iria adiar o EP3 e que iria ver uma outra data. Poderia dizer se vai realmente ser adiado e para quando?

Muito obrigado.

Cleo

Em resposta à Cleo de Sousa Batista

Re: EP 3

por Luciana Eto -

É verdade prof, tenho provas na semana que vem e se vc pudesse adiar mais um pouco o EP, eu tbm ficaria muito grata!!

Obrigada.

Luciana

Em resposta à Luciana Eto

Re: EP 3

por Alfredo Goldman -
Olá Pessoal,
  Infelizmente não dá para adiar a entrega não, pois tenho que entregar
as notas na semana que vem, e o Jair precisa de algum tempo para
fazer a correção.

Alfredo
Em resposta à Jair Pontes Pisani

NOTAS DA P2

por barbara bianca gerbelli -

Oi Prof. num sei se você notou mas a P2 já foi e não tem nada sobre ela na página nem nas tarefas acho que vou poderia dar 10 para todo mundo boca aberta, mas se você não quizer fazer isso você poderia postar as notas no PACA  ate amanhã né...

Brigada

Em resposta à barbara bianca gerbelli

Duvida efetuaJogada

por Elienos Pereira de Oliveira -

Olá,

Quando o jogo estiver na fase 2, para saber se a jogada é válida, temos que testar se a casa onde o jogador deseja por a peça é vizinha da casa onde a peça está, não entendi como fazer isso. Por exemplo, vamos supor que a peça que desejamos mover está na casa (0,0), temos que testar de (cf1,cf2), é (0,7) ou (0,1) ou (1,0), não estou conseguindo fazer esse tipo de teste, estou com um problema semelhante para o método formouTrilha.

Obrigado pela atenção

Elienos

Em resposta à Elienos Pereira de Oliveira

Re: Duvida efetuaJogada

por Alfredo Goldman -
Olá,
  A idéia é saber que uma casa (i,j) é adjacente as casas ((i+7)%8, j) e ((i+1)%8,j).
Além disto, se j for par (j%2 == 0) , se i > 0 é adjacente a casa (i - 1, j) e
se i < 2 é adjacente a casa (i + 1, j). Ajudou ?

Alfredo
Em resposta à Jair Pontes Pisani

Tratamento de Exceções

por André Meneghelli -
   Oi, gostaria de saber se neste ep é necessario fazer o tratamento de exceções, como InputMismatchException ou IndexOutOfBoundsException.  E o arquivo de entrega pode conter todas as classes ou as classes devem ser entregues em arquivos separados???
Em resposta à André Meneghelli

Re: Tratamento de Exceções

por Alfredo Goldman -
Olá,
  Não, não é necessário lidar com Exceções, não vimos isto em aula.
O EP deve ser entregue, de preferência em dois arquivos separados,
uma para o Trilha e outro para o Principal.

Alfredo
Em resposta à Alfredo Goldman

devolveMatriz

por Elienos Pereira de Oliveira -

A respeito do método devolveMatriz é apenas para ele devolver a matriz tabuleiro quando for chamado, gostaria de saber se é só isso, poi eu fiz apenas return tabuleiro;

Em resposta à Elienos Pereira de Oliveira

Re

por Elienos Pereira de Oliveira -

Olá

Eu poderia criar um método verifica término de jogo, que devolve true se o jogo terminou e false se ainda não terminou.

Em resposta à Elienos Pereira de Oliveira

Principal

por Elienos Pereira de Oliveira -

Olá

Não estou sabendo criar a class Principal, pois quando eu a executo ela apenas imprime o tabuleiro vazio, como faço para me perguntar quais são as coordenadas

Em resposta à Elienos Pereira de Oliveira

Re: Principal

por Alfredo Goldman -
Olá,
  Respondendo a dúvida do Elienos, na classe Principal devemos colocar
comando de entrada de dados, de tal forma que o usuário consiga
jogar. Para isto deve ser usada a classe Scanner e o método nextInt().

Alfredo
Em resposta à Elienos Pereira de Oliveira

Re: Re

por Alfredo Goldman -
Olá,
  Qualquer método auxiliar que ajude a implementação do jogo é bem
vindo. Por exemplo, sugeri a várias pessoas o método saoAdjacentes que
recebe duas coordenadas (4 inteiros) e responde verdadeiro se as
mesmas correspondem a posições adjacentes, e falso caso contrário.

Alfredo
Em resposta à Alfredo Goldman

Re: Re

por William Ananias -
Olá. Alguém sabe se é comum ocorrer bugs como uma peça de um jogador mudar do nada para uma peça do outro jogador? Isso tá acontecendo nas interações do Java no meu EP. Se alguém souber, vai me ajudar muito ^^
Em resposta à William Ananias

Re: Re

por daniel ortega -

Alguem pelo amor de Deus!!! responda a minha dúvida...

Como eu faço pra testar a classe Principal???

Por favor...é urgente...

Agradeço desde já...

Em resposta à Jair Pontes Pisani

Socorro!

por Maiko Carvalho -

Eu não consigo fazer um método que verifique a mobilidade de um jogador... Portanto, não tem como eu terminar o jogo qdo um jogador fica trancado...

Alguém pode me dizer como fazer esse método???

Obrigado!

Em resposta à Maiko Carvalho

Re: Socorro!

por Alfredo Goldman -
Oi,
  Desculpe a demora para responder... A forma de saber isto é verificar,
para cada peça do jogador, se existe uma posição livre adjacente. Se existir
alguma não há bloqueio.

Alfredo
Em resposta à Jair Pontes Pisani

Notas dos EPs

por José Eduardo Biasoto USP 1002074 -
Olá, Jair, como vai?
 
    Eu já tinha falado com você que eu tive dificuldade em me cadastrar no PACA e por isso, eu entreguei os EPs através do Ivan Martins, com quem eu os fiz. Por favor me mande estas notas e para o professor, também, pois ele não as tem.
 
         Meu nome inteiro é José Eduardo Biasoto número USP 1002074 e do meu parceiro de EP é Ivan Lierte Martins, número USP 886642 .
 
                        Obrigado,
                                                         José Eduardo.   
 
Em resposta à José Eduardo Biasoto USP 1002074

o e.p sumiu

por Gabrielle Estacio Bueno -

Professor...

o Jair  disse que nossa pasta do e.p esta vazia... masssss não estava!!!!!

não sabemos o que aconteceu...ja envie um e mail pro jair como o e.p ...para ele ver que tinhamos feito sim...e agora professor!!!!

como vai ficar ????????

helpppppppppppppppppppppppppp!!!!!!!!!!!!!!!!!!!!!!!!!perplexo

obrigada... e responde o mais rapidão que o senhorconseguir!!!!!

Em resposta à Gabrielle Estacio Bueno

Re: o e.p sumiu

por Alfredo Goldman -
Olá Grabrielle,

   Eu mesmo olhei a pasta e ela estava vazia. Ainda vamos analizar a sua situação.
Devo cadastrar as notas no Júpiter na segunda, logo tirem, eventuais dúvidas
sobre as notas/médias o quanto antes.

Alfredo
Em resposta à Alfredo Goldman

Re: o e.p sumiu

por Gabrielle Estacio Bueno -

ola de novo professor....

o Jair não responde meus e mails, e estamos preocupadas pois fizemos o e.p, entragamos dentro do prazo e não sabemos o que acontece....porque no meu computador a pasta zipada nao esta vazia, porem nao consigo abrir mais ela...

espero que o senhor nos deixe a par do que esta acontecendo....e que o Jair RESPONDA meu e mail.....

mas por favor considere nosso esforço que foi muiiiiiiiiito grande!!!!

                obrigada....mais uma vez!!!! 

Em resposta à Gabrielle Estacio Bueno

Re: o e.p sumiu

por Gabrielle Estacio Bueno -

Professor!!!!

o Jair respondeu o meu e mail e disse que ira corrigir nosso e.p na segunda...

espero que o senhor considere...e lembre que fizemos e entregamos no prazo e nao contavamos com esse incidente...morto

obrigada!!!!!!!!!!!!!!!!!

Gabrielle...e Débora...pensativo

Em resposta à Alfredo Goldman

Re: Notas dos EPs

por José Eduardo Biasoto USP 1002074 -

    Olá, professor, como vai?

   Eu já havia falado com você e já mandei vários emails para o Jair sobre a minha situação. Meu nome é José Eduardo Biasoto, número USP, 1002074 e fiz os 3 EPs com o Ivan Lierte Martins, número USP 886642. Como eu tive dificuldade de me cadastrar no PACA, nós mandamos os EPs apenas pela conta do Ivan (até outro dia, eu nem estava no sistema). Apesar da minha insistência (mandei diversos emails para o Jair), minhas notas dos EPs 1 e 2 ainda não estão no sistema. Basta verificar nos cabeçalhos dos EPs do Ivan, que eu também os fiz.

          Um abraço e obrigado,

                                                         José Eduardo.