Ir para conteúdo
  • 0
jvboliveira

Duvida em código JS

Pergunta

Pessoal não estou entendendo esse trecho de código. Alguém pode me ajudar

 

if(peca[x][y]['peca']=='peao'){
        if(peca[x][y]['cor']=="branco"){

            if(!peca[x-1][y]['peca']){
                possivel(x-1,y);
            }if(y-1>0 && peca[x-1][y-1]['peca']){
                possivel(x-1,y-1);
            }
            if(y+1<9 && peca[x-1][y+1]['peca']){
                possivel(x-1,y+1);
            }

            if(x==7){
                if(!peca[x-2][y]['peca'] && !peca[x-1][y]['peca']){
                    possivel(x-2,y);
                }
            }

        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

  • 0

 

Parece que isso é um código pra verificar se a peça Peão de um jogo de xadrez fez movimentos válidos, mas não parece que está funcionando, comentei ali com o que eu consegui entender:

 

//X e Y não estão especificadas, mas provavelmente são chaves

//Verifica se a peça é 'peao'
if(peca[x][y]['peca']=='peao'){
  //Se a peça for 'peao', verifica se ela possui cor branca      
  if(peca[x][y]['cor']=="branco"){
			//Nesse trecho ele está navegando entre a array com as peças, não da pra saber exatamente o que ta acontecendo 
    		//Parece que aqui ele verifica se o peão de moveu mais de uma peça no plano X
            if(!peca[x-1][y]['peca']){
                possivel(x-1,y);
            }
    		// Aqui parece que ele verifica no plano Y
    		if(y-1>0 && peca[x-1][y-1]['peca']){
                possivel(x-1,y-1);
            }
    		//Aqui eu não consegui entender o que faz
            if(y+1<9 && peca[x-1][y+1]['peca']){
                possivel(x-1,y+1);
            }
			//Aqui também não entendi muito bem, mas parece que é pra ele não sair do tabuleiro
            if(x==7){
                if(!peca[x-2][y]['peca'] && !peca[x-1][y]['peca']){
                    possivel(x-2,y);
                }
            }

        }
  

 

Repare que os X e Y são as posições das peças no tabuleiro.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por tiagocaus
      Ao desmarcar um checkbox o calculo não está sendo feito da forma correta.

      Não consegui identificar o problema, poderia ajudar?


      Link do código:https://jsfiddle.net/cwsmo4et/


      Obrigado.
    • Por Bruno123
      Olá, estou com uma dúvida na hora  de retornar se o número é primo ou não, poderiam me ajudar por gentileza ? Obrigado !
      <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title></title> </head> <body> <script src="javascript.js"></script> </body> </html> 'use strict' let num = prompt("Insira um número:"); let c = 0; for (i = 1; i <= num; i++) { if (num % i == 0) { c++; } } if (c == 2) { alert ("É PRIMO") } else { alert("NÃO É PRIMO") }  
    • Por laloproces
      Boa noite. Segue o texto do método main:
       
      /*O sistema basicamente faz é pedir informções para o usuário, pergutando quantas pessoas vai cadastrar, *qual o nome, telefone, se a pessoa trabalha, pede o cargo e a empresa para no final exibir essas informações na tela. */ public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Quantas pessoas você vai cadastrar? (Somente números)\n"); int pessoas = (int)in.nextInt(); String[] nome = new String[pessoas]; String[] telefone = new String[pessoas]; String[] profissao = new String[pessoas]; String[] empresa = new String[pessoas]; int op = 0; for(int i=0; i<pessoas; i++) { System.out.println("\nDigite o nome do serumaninho:\n"); nome[pessoas] = in.toString(); //Tá dando erro aqui, provavelmente por causa da variável dinâmica pessoas System.out.println("\nDigite o telefone desse serumaninho:\n"); telefone[pessoas] = in.nextLine(); System.out.println("\nEsse vivente trabalha? (0 para não, 1 para sim)\n"); op = in.nextInt(); if(op == 1){ System.out.println("\nDigite a profissão dele:\n"); profissao[pessoas] = in.nextLine(); System.out.println("\nDigite o nome da empresa em que ele trabalha:\n"); empresa[pessoas] = in.nextLine(); } } for(int j=0; j<pessoas; j++){ if(op ==1){ Pessoa[] p = {new Profissional(nome[j], telefone[j], profissao[j], empresa[j])}; } else{ Pessoa[] p2 = {new Pessoa(nome[j], telefone[j])}; } } for(int h=0; h<pessoas; h++){ if(op==1){ Pessoa[] p = {new Profissional(nome[h], telefone[h], profissao[h], empresa[h])}; System.out.println(Arrays.toString(p)); } else{ Pessoa[] p2 = {new Pessoa(nome[h], telefone[h])}; System.out.println(Arrays.toString(p2)); } } } //Abaixo estão as classes, que estão em outros arquivos Java. public class Pessoa { public String getNome(){ return nome; } public void setNome(String nome){ this.nome = nome; } public String getTelefone(){ return telefone; } public void setTelefone(String telefone){ this.telefone = telefone; } private String nome; private String telefone; Pessoa(String nome, String telefone){ this.nome = nome; this.telefone = telefone; } void exibir(){ System.out.println(getNome()+" :: "+getTelefone()); } } //Abaixo a classe Profissional, derivada da classe Pessoa. public class Profissional extends Pessoa { private String profissao; private String empresa; public String getProfissao(){ return profissao; } public void setProfissao(String profissao){ this.profissao = profissao; } public String getEmpresa(){ return empresa; } public void setEmpresa(String empresa){ this.empresa = empresa; } Profissional(String nome, String telefone, String profissao, String empresa){ super(nome, telefone); this.profissao = profissao; this.empresa = empresa; } @Override public void exibir(){ super.exibir(); System.out.println("\tTrabalha como "+profissao+"no(a) "+empresa+"."); } } Minha dúvida é: como posso corrigir o problema sem tirar a maneira dinâmica do sistema e se da maneira como fiz não irá gerar outros erros ou poderia fazer de uma maneira mais simples.
      Desde já agradeço!
    • Por user32
      Olá pessoal,
      sempre fui um curioso na programação e agora estou começando entender o javascript.
       
      edit:
      como eu consiguiria fazer a variavel buscar alem de 9... como numeros como 10-20, 20-30 ?
      toda ajuda é bem vinda, desde já agradeço
       
       
      <script type="text/javascript"> function funcao1() { var num1 = Number(document.getElementById("num1").value); var elemResult = document.getElementById("total"); var d90 = /[0-3]/; var d80 = /[4-5]/; var d70 = /[6-9]/; if (d90.test(num1)) { elemResult.innerText = String(num1 * "1") + "."; } else if (d80.test(num1)) { elemResult.innerText = String(num1 * "2") + "."; } else if (d70.test(num1)) { elemResult.innerText = String(num1 * "3") + "."; } else { // IE elemResult.innerText = String(num1 * "5") + "."; } } </script>  
    • Por clickanapolis
      Bom dia, no meu site coloquei ao clicar no link ele vai para uma div dentro da propria pagina, visto que a mesma e uma unica pagina.
       
      O problema é que quando clica no link ele esta parando fora do inicio da div, o que devo fazer?
       
      <script type="text/javascript"> jQuery(document).ready(function ($) { $(".scroll").click(function (event) { event.preventDefault(); $('html,body').animate({ scrollTop: $(this.hash).offset().top }, 1000); }); }); </script> e chamo o link assim:
       
      <li><a href="#acimetech" class="scroll">A Cimetech</a></li>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.