Ir ao conteúdo

Posts recomendados

Postado

Este código de Portugol é o jogo da velha criado por mim.

 

programa { /*Código feito por Eleno Doi Pillon*/

  funcao inicio() {

    cadeia jogo[4][4], jogador1, jogador2

    inteiro jogador, continuar=1, fileira=0, coluna=1, imprimir_fileira=0,imprimir_coluna=0, pode_imprimir=1, empate=0, v=0, p1=0, p2=0

    inteiro automatizar_fileira=1, automatizar_coluna=0, aui=0

        para(automatizar_fileira=1;automatizar_fileira!=4;automatizar_fileira++){   /*Coloca os valores nulos ao iniciar o programa*/

          para(automatizar_coluna=0;automatizar_coluna!=4;automatizar_coluna++){

             jogo[automatizar_coluna][automatizar_fileira]="-"

          }

        }

    escreva(" Bem vindo ao meu jogo da velha.\n Digite primeiro o valor da coluna e depois da linha. (valor de 1 a 3) \n")

    escreva("Digite o nome do jogador1: ")

    leia(jogador1)

    escreva("Digite o nome do jogador2: ")

    leia(jogador2)

    escreva("Digite 1 para ",jogador1," começar ou 2 para ",jogador2," começar: ")

    leia(jogador)

    se(jogador==1 ou jogador==2){ /*Só permite continuar se o usuário fizer a escolha entre jogador1 ou jogador2*/

      enquanto(continuar==1){ /*Loop do jogo funcionando, ele só vai parar quando o usuário quiser sair*/

        para(automatizar_fileira=1;automatizar_fileira<4;automatizar_fileira++){ /*Imprimir as casas do tabuleiro com seus valores nela*/

          para(automatizar_coluna=1;automatizar_coluna<4;automatizar_coluna++){

                  escreva(jogo[automatizar_coluna][automatizar_fileira])

          }

          escreva("\n")

        } /*Fim da impressão das casas*/

        escreva("Digite a fileira: ")

        leia(fileira)

        escreva("Digite a coluna: ")

        leia(coluna)

        se(jogo[fileira][coluna]=="-"){ /* Verifica se a coordenada inserida tem valor nulo*/

        empate=empate+1 /*Adiciona 1 a variável empate, que mostra empate caso ela seja igual a 9 e ninguém ganhou o jogo*/

        se(jogador==1){ /*Verifica se o jogador é jogador1*/

          jogo[fileira][coluna]="O" /*Coloca o valor O na casa inserida*/

          pode_imprimir=1

          jogador=2

        }

        senao{ /*Se não é jogador1, então necessariamente precisa ser jogador2*/

          jogo[fileira][coluna]="X" /*Coloca o valor X na casa inserida*/

          pode_imprimir=1

          jogador=1

        }

        /* Verificar se o jogador1 ganhou*/

        se(jogo[1][1]=="O" e jogo[2][1]=="O" e jogo[3][1]=="O" ou jogo[1][2]=="O" e jogo[2][2]=="O" e jogo[3][2]=="O" ou jogo[1][3]=="O" e jogo[2][3]=="O" e jogo[3][3]=="O" ou jogo[1][1]=="O" e jogo[1][2]=="O" e jogo[1][3]=="O" ou jogo[2][1]=="O" e jogo[2][2]=="O" e jogo[2][3]=="O" ou jogo[3][1]=="O" e jogo[3][2]=="O" e jogo[3][3]=="O" ou jogo[1][1]=="O" e jogo[2][2]=="O" e jogo[3][3]=="O" ou jogo[3][1]=="O" e jogo[2][2]=="O" e jogo[1][3]=="O"){

          escreva(jogador1," ganhou!")

          escreva("\n Digite 0 caso queira sair ou 1 caso queira iniciar uma nova partida: ")

          leia(continuar)

          v=1

          p1=p1+1

          se(continuar==1){

          v=0

          empate=0

          aui=1 /*Se o usuário quer jogar um novo jogo, está variável vira 1 e se ela é 1 então o tabuleiro é reiniciado*/

          } /*Fim da caixa de verificação de vitória do jogador1*/

        }         /* Verificar se o jogador2 ganhou */

        se(jogo[1][1]=="X" e jogo[2][1]=="X" e jogo[3][1]=="X" ou jogo[1][2]=="X" e jogo[2][2]=="X" e jogo[3][2]=="X" ou jogo[1][3]=="X" e jogo[2][3]=="X" e jogo[3][3]=="X" ou jogo[1][1]=="X" e jogo[1][2]=="X" e jogo[1][3]=="X" ou jogo[2][1]=="X" e jogo[2][2]=="X" e jogo[2][3]=="X" ou jogo[3][1]=="X" e jogo[3][2]=="X" e jogo[3][3]=="X" ou jogo[1][1]=="X" e jogo[2][2]=="X" e jogo[3][3]=="X" ou jogo[3][1]=="X" e jogo[2][2]=="X" e jogo[1][3]=="X"){

            escreva(jogador2," ganhou!")

            escreva("\n Digite 0 caso queira sair ou 1 caso queira iniciar uma nova partida: ")

            leia(continuar)

            v=1

            p2=p2+1

            se(continuar==1){

            v=0

            empate=0

            aui=1 /*Se o usuário quer jogar um novo jogo, está variável vira 1 e se ela é 1 então o tabuleiro é reiniciado*/

            }

         }         /*Fim da caixa de verificação de vitória do jogador2*/

        se(empate==9 e v==0){ /*Verifica se depois da jogada o jogo é empate*/

          escreva("Foi um empate")

          escreva("\n Digite 0 caso queira sair ou 1 caso queira iniciar uma nova partida: ")

          leia(continuar)

    v=0

    se(continuar==1){aui=1} /*Verifica se o usuário quer jogar uma nova partida se a resposta for igual a 1*/

        } /*Fim da verificação de empate*/

          }

        senao{  /*Exibe que a casa escolhida não tem valor nulo, portanto ela é invalida e obriga esse usuário a escolher outra casa*/

          escreva("Casa inválida. Tente novamente.\n")

          pode_imprimir=1

        } /*Fim da exibição de casa invalida*/

        se(aui==1){ /*Reinicia o tabuleiro se o jogador quiser uma nova partida*/

          aui=0

        para(automatizar_fileira=1;automatizar_fileira!=4;automatizar_fileira++){

          para(automatizar_coluna=0;automatizar_coluna!=4;automatizar_coluna++){

                  jogo[automatizar_coluna][automatizar_fileira]="-"

          }

        }

        } /*Fim da reiniciação de tabuleiro*/

      } /* Fim do loop */

      escreva("O jogo foi cancelado, ",jogador1," fez ",p1," pontos, e  ",jogador2," fez ",p2," pontos.")

      escreva("\n Obrigado por utilizar o meu programa!")

    }

    senao{

      escreva("Escolha 1 ou 2 como opção, por favor.")

    }

  }

}

 

  • Amei 1
Postado

@ElenoDP   esse jogo é normalmente usado para aperfeiçoar a técnica de programação ,  e esse seu código , é para ser compilado usando o Portugol Studio , ficou bom e funciona bem , mas  precisa de melhorias , pois se digitar algo diferente de número ele dá erro , e também poderia ser feito em modo Gráfico , para uma melhor apresentação ,

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...