Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida com atribuição de valores em matrizes


Galbieth

Pergunta

Pessoa, como vão?

Seguinte, estou fazendo um curso de lógica on-line e um dos exercícios é criar um jogo da velha usando portugol. Apos poucos estou avançando, porém estou em uma situação que não sei como posso resolver. Eu preciso mostrar o campo do jogo (uma matriz 3x3) realizando uma referência para as casas, que vai de 1 até 9 (exemplo abaixo). Para isso, criei uma matriz do tipo INTEIRO para armazenar os valores e mostrar na tela, até aí tudo bem.

1  |  2  |  3

O problema vem, justamente, quando acontece a primeira jogada do jogador. Na primeira jogada, ele precisa indicar ao programa uma casa (de 1 até 9 - referência na matriz) e, após isso, o programa irá atualizar o valor daquela casa para "X" e não mais o valor de referência. Por exemplo, se o jogador digitar "1" na primeira resposta o número "1" precisará ser trocado para "X", ficando dessa forma:

X  |  2  |  3
Mas... se a minha matriz é de inteiro, como eu consigo fazer com que um valor do tipo string seja alocado na posição indicada pelo jogador? • Eu tentei alterar a matriz do tipo inteiro para caractere, porém ao fazer isso o mesmo problema acontece: uma variável do tipo caractere não pode receber um valor do tipo inteiro alocado (pensei isso porque se você digitar um número entre aspas ele não é um inteiro ou real, mas vira uma string). Além disso, se mudar a matriz para caractere só consegui pensar em uma forma burra de popular ela com números, que seria, literalmente, escrever cada número para cada posição (por exemplo, matriz[1,1] <- 1; matriz[1,2] <- 2, etc) mas achei isso surreal. Com certeza deve existir uma outra forma de resolver isso, mas infelizmente não sei.

 

Infelizmente parei aqui e não sei como avançar, gostaria de contar com a ajuda de vocês para resolver essa questão

	algoritmo "Jogo da Velha"
var
   matriz: vetor [1..3, 1..3] de inteiro
   l, c, cM, numeroJogadas, simbolo, resposta: inteiro
   acabarJogo: logico
	procedimento simboloJogada ()
inicio
se simbolo = 1 então
   escreva ("Qual casa quer jogar [X]?")
   leia (resposta)
   simbolo <- simbolo - 1
   numeroJogadas <- numeroJogadas + 1
senao
   escreva ("Qual casa quer jogar [A]?")
   leia (resposta)
   simbolo <- simbolo + 1
   numeroJogadas <- numeroJogadas + 1
fimse
acabarJogo <- numeroJogadas = 9
se acabarJogo então
   escreva ("9 jogadas foram feitas.")
fimse
fimprocedimento
	procedimento teste ()
inicio
escreva ("esse é um teste. numero de jgoadas: ", numeroJogadas)
fimprocedimento
	
inicio
   cM <- 1
   simbolo <- 1
   // populando a matriz de 1 ate 9
   para l <- 1 ate 3 faca
      para c <- 1 ate 3 faca
         matriz[l,c] <- cM
         cM <- cM + 1
      fimpara
      escreval()
   fimpara
	   // exibindo a matriz populada na tela
   para l <- 1 ate 3 faca
      para c <- 1 ate 3 faca
         se c <= 2 então
            escreva (matriz[l,c]: 3, "|")
         senao
            escreva (matriz[l,3]: 3, "|")
         fimse
      fimpara
      escreval ()
   fimpara
	   // repete a entrada de valores ate acabarJogo ser verdadeiro, ou seja
   // quando o numero de jogadas for igual a 9 OU
   // vitória por linha ou colunha (necessario desenvolver)
   repita
      simboloJogada()
      atualizaMatriz() //aqui que estou com problemas
	   ate acabarJogo
	fimalgoritmo
	

Editado por Galbieth
Tag code fechada adequadamente
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...