TEXT   11
Código compartilhado do Portugol Webstudio
Guest on 17th May 2022 08:35:18 PM


  1. programa
  2. {
  3.         const inteiro T=3
  4.         funcao inicio()
  5.         {
  6.            
  7.             caracter jogo[T][T]
  8.             inteiro linha, coluna
  9.             logico linhaValida, colunaValida
  10.             caracter op
  11.            
  12.             faca{
  13.                
  14.                 inteiro jogador=1, jogadas=0, ganhou=0
  15.                
  16.                 //inicializar tabuleiro
  17.                 para(inteiro i=0; i<T; i++){
  18.                     para(inteiro c=0; c<T; c++){
  19.                         jogo[i][c]=' '
  20.                     }
  21.                 }
  22.                 faca{
  23.                     escreva("\n|---------------------|")
  24.                     escreva("\n|                     |")
  25.                     escreva("\n|---------------------|")
  26.                     escreva("\n\n")
  27.                    
  28.                     //Imprimir tabuleiro
  29.                     escreva("0    1    2\n\n")
  30.                     para(inteiro i=0; i<T; i++){
  31.                         para(inteiro c=0; c<T; c++){
  32.                             escreva(jogo[i][c]," ")
  33.                             se(c<2){
  34.                                 escreva(" | ")
  35.                             }
  36.                             se(c==2){
  37.                                 escreva(" ",1)
  38.                             }
  39.                         }
  40.                         se(i<2){
  41.                             escreva("\n-------------")
  42.                         }
  43.                         escreva("\n")
  44.                     }
  45.                     escreva("\n")
  46.                    
  47.                     //Ler coordenadas
  48.                     faca{
  49.                         linhaValida=falso
  50.                         linha=0
  51.                         enquanto(nao linhaValida){
  52.                             escreva("Informe a linha: ")
  53.                             leia(linha)
  54.                             se(linha>=0 e linha<=2){
  55.                                 linhaValida = verdadeiro
  56.                             }senao{
  57.                                 escreva("Linha inválida ")
  58.                             }
  59.                         }
  60.                        
  61.                         colunaValida=falso
  62.                         coluna=0
  63.                         enquanto(nao colunaValida){
  64.                             escreva("Informe a coluna: ")
  65.                             leia(coluna)
  66.                             se(coluna>=0 e coluna<=2){
  67.                                 colunaValida = verdadeiro
  68.                             }senao{
  69.                                 escreva("coluna inválida ")
  70.                             }
  71.                         }
  72.                     }enquanto(jogo[linha][coluna]!= ' ')
  73.                    
  74.                     //Salvar coordenadas
  75.                     se(jogador==1){
  76.                         jogo[linha][coluna]='0'
  77.                         jogador++
  78.                     }senao{
  79.                         jogo[linha][coluna]='x'
  80.                         jogador=1
  81.                     }
  82.                     jogadas++
  83.                    
  84.                     //Verificar ganhador por linhas
  85.                     para(inteiro i=0; i<T; i++){
  86.                         se(jogo[i][0]=='0' e jogo[i][1]=='0' e jogo[i][2]=='0'){
  87.                             ganhou=1
  88.                         }
  89.                        
  90.                         se(jogo[i][0]=='x' e jogo[i][1]=='x' e jogo[i][2]=='x'){
  91.                             ganhou=2
  92.                         }
  93.                     }
  94.                    
  95.                     //Verificar ganhador por colunas
  96.                     para(inteiro c=0; c<T; c++){
  97.                         se(jogo[0][c]=='0' e jogo[1][c]=='0' e jogo[2][c]=='0'){
  98.                             ganhou=1
  99.                         }
  100.                         se(jogo[0][c]=='x' e jogo[1][c]=='x' e jogo[2][c]=='x'){
  101.                             ganhou=2
  102.                         }
  103.                     }
  104.                    
  105.                     //Verificar ganhador na diagonal principal
  106.                     se(jogo[0][0]=='0' e jogo[1][1]=='0' e jogo[2][2]=='0'){
  107.                         ganhou=1
  108.                     }
  109.                     se(jogo[0][0]=='x' e jogo[1][1]=='x' e jogo[2][2]=='x'){
  110.                         ganhou=2
  111.                     }
  112.                    
  113.                     //Verificar ganhador na diagonal secundária
  114.                     se(jogo[0][2]=='0' e jogo[1][1]=='0' e jogo[2][0]=='0'){
  115.                         ganhou=1
  116.                     }
  117.                     se(jogo[0][2]=='x' e jogo[1][1]=='x' e jogo[2][0]=='x'){
  118.                         ganhou=2
  119.                     }
  120.                     limpa()
  121.                 }enquanto(ganhou==0 e jogadas<9)
  122.                
  123.                 escreva("\n|---------------------|")
  124.                 escreva("\n|                     |")
  125.                 escreva("\n|---------------------|")
  126.                 escreva("\n\n")
  127.                
  128.                 //Imprimir tabuleiro
  129.                 escreva("0    1    2\n\n")
  130.                 para(inteiro i=0; i<T; i++){
  131.                     para(inteiro c=0; c<T; c++){
  132.                         escreva(jogo[i][c]," ")
  133.                         se(c<2){
  134.                             escreva(" | ")
  135.                         }
  136.                         se(c==2){
  137.                             escreva(" ",1)
  138.                         }
  139.                     }
  140.                     se(i<2){
  141.                         escreva("\n-------------")
  142.                     }
  143.                     escreva("\n")
  144.                 }
  145.                 escreva("\n")
  146.                
  147.                 se(ganhou==1){
  148.                     escreva("O vencedor e o jogador 1\n")
  149.                 }senao se(ganhou==2){
  150.                     escreva("O vencedor e o jogador 2\n")
  151.                 }senao{
  152.                     escreva("Deu velha")
  153.                 }
  154.                 escreva("Jogar novamente[s/n]:")
  155.                 leia(op)
  156.                
  157.                 limpa()
  158.             }enquanto(op=='s')
  159.            
  160.             escreva("\n|.........IFMG - IBISER \n")
  161.            
  162.        

Raw Paste

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