TEXT   0
Código compartilhado do Portugol Webstudio
Guest on 18th March 2023 01:22:29 PM


  1. programa {
  2.         funcao inicio() {caracter jogo[3][3]
  3.     inteiro l, c, linha, coluna, jogador, ganhou, jogadas, opcao
  4.  
  5.     faca{
  6.       jogador = 1
  7.       ganhou = 0
  8.       jogadas = 0
  9.       para(l = 0; l < 3; l++){
  10.         para(c = 0; c < 3; c++)
  11.           jogo[l][c] = ' '
  12.       }
  13.  
  14.       faca{
  15.         // impressão do tabuleiro
  16.         escreva("\n\n 0   1    2\n\n")
  17.         para(l = 0; l < 3; l++){
  18.           para(c = 0; c < 3; c++){
  19.             escreva(" ", jogo[l][c])
  20.             se(c < 2)
  21.               escreva(" | ")
  22.             se(c == 2)
  23.               escreva("  ", l)
  24.           }
  25.           se(l < 2)
  26.             escreva("\n------------")
  27.           escreva("\n")
  28.         }
  29.    
  30.         // ler coordenadas
  31.         faca{
  32.           faca{
  33.             escreva("\nJogador ",jogador, " digite linha e coluna da posição desejada: ")
  34.             leia(linha, coluna)
  35.           }enquanto(linha < 0 ou linha > 2 ou coluna < 0 ou coluna > 2)
  36.         }enquanto(jogo[linha][coluna] != ' ')
  37.        
  38.         // salvar cordenadas
  39.         se(jogador == 1){
  40.           jogo[linha][coluna] = '0'
  41.           jogador++
  42.         }
  43.         senao{
  44.           jogo[linha][coluna] = 'X'
  45.           jogador = 1
  46.         }
  47.         jogadas++
  48.        
  49.         // verificar ganhador por linhas
  50.         para(l = 0; l < 3; l++){
  51.           se(jogo[l][0] == '0' e jogo[l][1] == '0' e jogo[l][2] == '0')
  52.             ganhou = 1
  53.         }
  54.    
  55.         para(l = 0; l < 3; l++){
  56.           se(jogo[l][0] == 'X' e jogo[l][1] == 'X' e jogo[l][2] == 'X')
  57.             ganhou = 2
  58.         }
  59.        
  60.         // verificar ganhador por colunas
  61.         para(c = 0; c < 3; c++){
  62.           se(jogo[0][c] == '0' e jogo[1][c] == '0' e jogo[2][c] == '0')
  63.             ganhou = 1
  64.         }
  65.    
  66.         para(c = 0; c < 3; c++){
  67.           se(jogo[0][c] == 'X' e jogo[1][c] == 'X' e jogo[2][c] == 'X')
  68.             ganhou = 2
  69.         }
  70.         // verificar ganhador na diagonal principal
  71.         se(jogo[0][0] == '0' e jogo[1][1] == '0' e jogo[2][2] == '0')
  72.           ganhou = 1
  73.    
  74.         se(jogo[0][0] == 'X' e jogo[1][1] == 'X' e jogo[2][2] == 'X')
  75.           ganhou = 2
  76.        
  77.         // verificar ganhador na diagonal secundária
  78.         se(jogo[0][2] == '0' e jogo[1][1] == '0' e jogo[2][0] == '0')
  79.           ganhou = 1  
  80.    
  81.         se(jogo[0][2] == 'X' e jogo[1][1] == 'X' e jogo[2][0] == 'X')
  82.           ganhou = 2
  83.       }enquanto(ganhou == 0 e jogadas < 9)
  84.  
  85.       // impressão do tabuleiro
  86.       escreva("\n\n 0   1    2\n\n")
  87.       para(l = 0; l < 3; l++){
  88.         para(c = 0; c < 3; c++){
  89.           escreva(" ", jogo[l][c])
  90.           se(c < 2)
  91.             escreva(" | ")
  92.           se(c == 2)
  93.             escreva("  ", l)
  94.         }
  95.         se(l < 2)
  96.           escreva("\n------------")
  97.         escreva("\n")
  98.       }
  99.  
  100.       se(ganhou == 1)
  101.         escreva("\n\tParabéns Jogador 1. Você ganhou!\n\n")
  102.  
  103.       se(ganhou == 2)
  104.         escreva("\n\tParabéns Jogador 2. Você ganhou!\n\n")
  105.  
  106.       escreva("Digite 1 para jogar novamente: ")
  107.       leia(opcao)
  108.     }enquanto(opcao == 1

Raw Paste

Login or Register to edit or fork this paste. It's free.