Ir ao conteúdo

Posts recomendados

Postado

 

Algoritmo "Exercicio.31"
Var
   resp1,resp2:inteiro
   respJ: caractere
Inicio
   Escreval ("       JO-KEN-PÔ       ")
   Escreval ("~~~~~~~~~~~~~~~~~~~~~~~")
   Escreval ("Pedra ganha da tesoura!")
   Escreval ("Tesoura ganha do papel!")
   Escreval ("Papel ganha da pedra!"  )
   Escreval ("Sinais iguais>>EMPATE!!!")
   Escreval ("~~~~~~~~~~~~~~~~~~~~~~~")
   Escreval ("        MENU           ")
   Escreval ("[1] PEDRA")
   Escreval ("[2] PAPEL")
   Escreval ("[3] TESOURA")
   Escreval ("PEDRA, PAPEL OU TESOURA!")
   Leia (respJ)
   Escolha resp1
           Caso 1
                respJ<-"pedra"
           Caso 2
                respJ<-"papel"
           Caso 3
                respJ<-"tesoura
   FimEscolha
   Aleatorio 1,2,3
   Leia (resp2)
   Aleatorio off
   Se (resp1<>resp2) então
       Escreval ("GANHOU!")
   Senao
      Se (resp1=resp2) então
          Escreval ("EMPATE!")
      FimSe
   FimSe
Fimalgoritmo

 

  • Curtir 2
  • Membro VIP
Postado

@NaieleF, você só postou um código, mas não deu qualquer outra informações sobre o que se trataria.

 

Em relação ao jogo, você está só tratando do empate, faltaria tratar dos casos possíveis...

 

Em 06/07/2024 às 12:12, NaieleF disse:
   Escreval ("Pedra ganha da tesoura!")
   Escreval ("Tesoura ganha do papel!")
   Escreval ("Papel ganha da pedra!"  )

 

A variável respJ não está sendo utilizada... Talvez ela de fato não seja necessária...

 

Poderia postar o enunciado completo da questão e em qual parte está com dúvidas?

  • Curtir 2
Postado

@Simon Viegas Gostaria de saber se a forma que fiz o código deste jogo JoKenPo está correto. É para fazê-lo usando Estruturas de Repetição no VisualG. O enunciado é o seguinte: 

 

31) [DESAFIO] Crie um jogo de JoKenPo (Pedra-Papel-Tesoura)

  • Curtir 2
  • Solução
Postado

@NaieleF    tem um erro no seu código porque você  usou respJ para pegar a opção do usuário e no escolha  usou resp1 , e precisa de mais alguns "se" para decidir quem ganhou e quem  pedreu , e aqui um exemplo de como seu código  poderia ser :

// 31) [DESAFIO] Crie um jogo de JoKenPo (Pedra-Papel-Tesoura)
// Jokenpo é uma brincadeira japonesa, onde dois jogadores escolhem
// um dentre três possíveis itens: Pedra, Papel ou Tesoura.
// O objetivo é fazer um juiz de Jokenpo que dada a jogada
// dos dois jogadores informa o resultado da partida.
Algoritmo "Exercicio.31_JoKenPo"
Var
   resp1, resp2       : inteiro
   respJ,respM , sair : caractere
Inicio
   repita
      limpatela
      Escreval ("       JO-KEN-PÔ       ")
      Escreval ("~~~~~~~~~~~~~~~~~~~~~~~")
      Escreval ("Pedra ganha da tesoura!")
      Escreval ("Tesoura ganha do papel!")
      Escreval ("Papel ganha da pedra!"  )
      Escreval ("Sinais iguais>>EMPATE!!!")
      Escreval ("~~~~~~~~~~~~~~~~~~~~~~~")
      Escreval ("        MENU           ")
      Escreval ("[1] PEDRA")
      Escreval ("[2] PAPEL")
      Escreval ("[3] TESOURA")
      Escreval ("PEDRA, PAPEL OU TESOURA!")
      // a escolha do jogador
      Leia ( resp1 )           // ( nrespJ ) atribuiu na variAvels errada
      Aleatorio 1,2,3
      Leia (resp2)             // a escolha do computador
      Aleatorio off
      respM := "Pedra"
      se resp2 = 2 então
         respM := "PapeL"
      senao
         respM := "Tesoura"
      fimse
      Se resp1 = resp2 então   // objetos iguais
         Escreval ("EMPATE!")  // empate, ninguem ganha
      senao
         Escolha resp1
         // jogador escolheu pedra
         Caso 1
            respJ <- "pedra"
            se resp2 = 2 então // computador escolheu papel
               escreval("jogador Perdeu essa !")
               escreval("PapeL Ganha de Pedra.")
            senao
               escreval("Jogador Ganhou essa !")
               escreval("Pedra Ganha de tesoura.")
            fimse
         Caso 2
            // jogador escolheu papel
            respJ <- "papel"
            // inserir os comandos igual ao caso 1
         Caso 3
            // jogador escolheu tesoura
            respJ <- "tesoura"
            // inserir os comandos igual ao caso 1
         FimEscolha
         escreval("Jogador escolheu ",respj," e o Compuyador escolheu ",respM)
      fimse
      escreva("jogar novamente S/N ")
      leia( sair )
   ate sair = "N"
Fimalgoritmo

 

  • Curtir 2
  • Membro VIP
Postado
Em 15/07/2024 às 17:05, NaieleF disse:

Gostaria de saber se a forma que fiz o código deste jogo JoKenPo está correto.

 

Sendo pragmático: não estaria correto, pois você o juiz precisa julgar de acordo com as condições do jogo (estão citadas lá no topo do código).

 

 

 

 

Faltou o outro ponto:

 

Em 08/07/2024 às 11:09, Simon Viegas disse:

e em qual parte está com dúvidas?

 

🙂

 

 

 

Só uns detalhes...

 

@devair1010, sobre:

 

Em 15/07/2024 às 21:23, devair1010 disse:
      respM := "Pedra"
      
      se resp2 = 2 então
         respM := "PapeL"
      senao
         respM := "Tesoura"
      fimse

 

Pelo verificado, só vai resultar em Papel ou Tesoura... 

Bastaria colocar um outro se:

 

      respM := "Pedra"

      se resp2 = 2 então
         respM := "PapeL"
      senao
         se resp2 = 3 então
            respM := "Tesoura"
         fimse
      fimse

 

 

 

 

Sobre:

Em 15/07/2024 às 21:23, devair1010 disse:
      Aleatorio 1,2,3
      Leia (resp2)             // a escolha do computador
      Aleatorio off

 

Apesar de não acusar erro, o comando aleatório aceita 1 ou 2 parâmetros, pois ele funciona gerando "...dados numéricos aleatórios estabelecendo uma faixa de valores mínimos e máximos" [1]. No caso estaria só sorteando apenas na faixa dos inteiros entre 1 e 2 (inclusos, ou seja, só eles mesmos).

 

 

 

Para o contexto, poderia utilizar:

 

      Aleatorio 1,3
      Leia (resp2)             // a escolha do computador
      Aleatorio off

 

 

 

Uma forma alternativa de verificar o vencedor seria pelo valor da subtração dos valores das opções escolhidas. Utilizo no exemplo do código abaixo:

 

// 31) [DESAFIO] Crie um jogo de JoKenPo (Pedra-Papel-Tesoura)
// Jokenpo é uma brincadeira japonesa, onde dois jogadores escolhem
// um dentre três possíveis itens: Pedra, Papel ou Tesoura.
// O objetivo é fazer um juiz de Jokenpo que dada a jogada
// dos dois jogadores informa o resultado da partida.
algoritmo "Exercicio.31_JoKenPo"
var
   opcaoJ, opcaoC, resultado : inteiro
   respJ, respC, sair : caractere
Inicio
   repita
      limpaTela()
      escrevaL("       JO-KEN-PÔ        ")
      escrevaL("~~~~~~~~~~~~~~~~~~~~~~~~")
      escrevaL("Pedra ganha da tesoura! ")
      escrevaL("Tesoura ganha do papel! ")
      escrevaL("Papel ganha da pedra!   ")
      escrevaL("Sinais iguais>>EMPATE!!!")
      escrevaL("~~~~~~~~~~~~~~~~~~~~~~~~")
      escrevaL("        MENU           ")
      escrevaL("[1] PEDRA")
      escrevaL("[2] PAPEL")
      escrevaL("[3] TESOURA")
      escrevaL("PEDRA, PAPEL OU TESOURA!")

      leia(opcaoJ)
      aleatorio 1,3
      leia(opcaoC)
      aleatorio OFF

      escolha opcaoJ
      caso 1
         respJ <- "PEDRA"
      caso 2
         respJ <- "PAPEL"
      caso 3
         respJ <- "TESOURA"
      fimEscolha

      escolha opcaoC
      caso 1
         respC <- "PEDRA"
      caso 2
         respC <- "PAPEL"
      caso 3
         respC <- "TESOURA"
      fimEscolha

      escreval("Jogador escolheu ", respJ, " e o Computador escolheu ", respC)

      resultado <- opcaoJ-opcaoC

      se (resultado = 0) então
         escreval("Deu empate!!!")
      senao
         se ((resultado = 1) OU (resultado = -2)) então
            escreval("Jogador ganhou!")
            escreval(respJ, " ganha de ", respC)
         senao
            se ((resultado = -1) OU (resultado = 2)) então
               escreval("Computador ganhou essa!")
               escreval(respC, " ganha de ", respJ)
            fimSe
         fimSe
      fimSe

      escreva("Jogar novamente S/N ")
      leia(sair)
   ate (sair = "N")
fimAlgoritmo
  • Curtir 1
  • Obrigado 1
Postado
Em 18/07/2024 às 12:33, Simon Viegas disse:

e em qual parte está com dúvidas?

Só gostaria da correção do algoritmo mesmo. Obrigada!

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!