No internet connection
  1. Home
  2. Dúvidas Gerais

Jogo da Velha

Por Marcelo Furtado de Oliveira @marcelof
    2022-12-26 13:26:01.353Z

    Estou com uma dificuldade porque se um jogador jogar onde o outro ja jogou ai troca ...
    como fazer para umjogador nao conseguir jogar onde o outro ja jogou

    • 5 respostas
    1. Você pode fazer uma intersecção antes disso acontecer, por exemplo informar o usuário que a linha na coluna da matriz ja foi preenchida e que ele deve colocar o input em outra linha na matriz, ai você pode percorrer os valores vazios da matriz com um for e fazer essa checagem

      1. valeu obg .. mas eu estava pensando assim que se mesmo assim o usuario digitar no lugar do ouutro ai nao aceitar ... mas estou tentando aqui...muito obg

        1. Bruno Soares @BrunoSoares
            2022-12-26 16:26:54.843Z

            Não sei se vc já resolveu Marcelo, mas pelo que vc ta falando poderia ser feito assim: faz um loop para ler as variáveis de linha e coluna que o jogador insere, depois que você recebe essas variáveis você verifica se, nesse lugar, sua matriz já tem o X ou O, se tiver você avisa que a posição já está ocupada e pede pra ele escolher outra e se não estiver ocupada você insere o caracter do jogador correspondente. Ficaria mais ou menos assim:

            do {
               linha = ler linha;
               coluna = ler coluna;
            
               if (matriz[linha][coluna] == 'X' || matriz[linha][coluna] == 'O')
                  Escreve("Posição já ocupada, insira outra");
               else
                  matriz[linha][coluna] = caracter do jogador;
            
            } while (matriz[linha][coluna] != 'X' || matriz[linha][coluna] != 'O' )
            

            Pra facilitar tuas condições tu podia inicializar a matriz vazia ou com algum caracter específico que diminui a checagem pra somente: se matriz[linha][coluna] == nulo, ou algo do tipo.
            1. valeu mesmo nao tava conseguindo pensar ai no meu aqui conseguir resolver assim :

              if (l < 0 || l > 2 || c < 0 || c > 2 || jogoDaVelha[l, c] == "X" || jogoDaVelha[l, c] == "O")
              {
              Console.WriteLine("Posicao Invalida");
              jogador--;
              }

              esse jogador--; é só para continuar o mesmo e nao trocar para o outro no meu caso aqui neh kk valeu obg

              1. Em resposta aBrunoSoares:

                isso mesmo valeu muito obg ... vou tentar jogar a ideia aqui valeu