BENDITO EMPATE ....

BENDITO EMPATE ....

by Thiago Henrique -
Number of replies: 2

"A estratégia (simplista) do computador corresponder´a a jogar uma carta de sua mão que seja maior que a carta que o usuário colocou na mesa. Se o computador não possuir uma carta maior que a colocada na mesa,ele joga uma carta menor."

"1.3 FINAL DA PARTIDA

No interior da classe Truco, o placar ser´a representado por dois atributos inteiros, representando o n´umero de rodadas que cada jogador ganhou. O final do jogo ocorre quando um dos jogadores ganhar duas rodadas (mesmo que isso ocorra antes de trˆes rodadas). Quando esta condição ocorrer, o programa deve declarar o fim da partida e informar o vencedor. Em caso de empate, o vencedor será determinado aleatoriamente. Para tal,pode-se utilizar a classe Random do Java."

Baseado no EP eu acho q não posso usar a condição if( ...<=...), por exemplo:

if(carta1comp<=carta)

{

    if(carta1comp<carta)  { System..... Usuario ganhou etc...}

    else if(carta1comp==carta) {System..... Empatou etc... sorteia usando a Random...}

}

else if(carta2comp<=carta)

{

    if(carta2comp<carta)  { System..... Usuario ganhou etc...}

    else if(carta2comp==carta) {System..... Empatou etc... sorteia usando a Random...}

}

Agora imagine que carta1comp era igual à carta do usuário e que a carta2comp era MENOR, com esse código eu vou jogar a carta1comp sendo que a carta2comp era menor , o EP manda jogar uma carta menor e eu joguei uma igual !!

Portanto quero saber se estou certo em dizer que preciso primeiro analisar se o computador não tem nenhuma menor mesmo, antes de ver se ele tem uma igual e só então sortear...,ou seja, o operador "<=" é inviável certo ? Bem acredito ser minha ultima duvida, tenho um código pronto para caso o "<=" seja viável para o propósito do EP e outro para caso não seja, só preciso saber qual usar ^^

Grato desde já ... abraços.

In reply to Thiago Henrique

Re: BENDITO EMPATE ....

by Thiago Paixão -
Voce tem que verificar se realmente existe uma carta menor. Caso nao exista, voce cai em duas situacoes:

- todas as cartas do computador eram maior (computador perde);
- existe pelo menos uma carta do comp. igual a carta jogada pelo usuario (vencedor e aleatorio);

abracos!
In reply to Thiago Henrique

Re: BENDITO EMPATE ....

by Daniel David Mlot Pinheiro -
Acredito que fazer o computador tentar empatar a rodada antes de desistir e jogar uma carta menor não é problema - um dos monitores confirmou a validade dessa lógica em algum dos tópicos anteriores. O que me parece estranho nesses ifs é que se, por exemplo, carta1comp<carta, o programa já executaria o bloco { System..... Usuario ganhou etc...} sem verificar se o computador possui alternativas melhores em carta2 comp ou carta3comp. O mesmo iria acontecer caso carta1comp==carta. Por isso, pelo que vi do código analisar primeiro todos os casos de > e só depois == deveria funcionar melhor.

Abraço,

Daniel David