UNIVALI-LITE / Portugol-Studio

Ambiente de Programação didático para a linguagem Portugol 2.0
http://univali-lite.github.io/Portugol-Studio/
GNU Lesser General Public License v3.0
686 stars 217 forks source link

Erro numero 55a6eab3a1a5297af0dfb9553260e52e70a2146a v2.7.5 #1145

Open brunobusarello opened 4 months ago

brunobusarello commented 4 months ago

Esta issue foi gerada automaticamente

br.univali.ps.nucleo.ExcecaoAplicacao: java.util.concurrent.ExecutionException: java.lang.NullPointerException at br.univali.ps.nucleo.TratadorExcecoes.transformarExcecao(TratadorExcecoes.java:278) at br.univali.ps.nucleo.TratadorExcecoes.exibirExcecao(TratadorExcecoes.java:43) at br.univali.ps.ui.abas.AbaCodigoFonte$AcaoExecucao.actionPerformed(AbaCodigoFonte.java:1099) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.Component.processMouseEvent(Component.java:6539) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6304) at java.awt.Container.processEvent(Container.java:2239) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2297) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476) at java.awt.Container.dispatchEventImpl(Container.java:2283) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84) at java.awt.EventQueue$4.run(EventQueue.java:733) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at br.univali.ps.ui.abas.AbaCodigoFonte$AcaoExecucao.actionPerformed(AbaCodigoFonte.java:1090) ... 40 more Caused by: java.lang.NullPointerException at br.univali.portugol.nucleo.asa.NoMatriz.getTipoResultante(NoMatriz.java:72) at br.univali.portugol.nucleo.execucao.gerador.helpers.GeradorDeclaracaoVariavel.gera(GeradorDeclaracaoVariavel.java:31) at br.univali.portugol.nucleo.execucao.gerador.GeradorCodigoJava$VisitorGeracaoCodigo.visitar(GeradorCodigoJava.java:542) at br.univali.portugol.nucleo.execucao.gerador.GeradorCodigoJava$VisitorGeracaoCodigo.visitar(GeradorCodigoJava.java:108) at br.univali.portugol.nucleo.asa.NoMatriz.aceitar(NoMatriz.java:61) at br.univali.portugol.nucleo.execucao.gerador.GeradorCodigoJava$VisitorGeracaoCodigo.inicializaVariaveisGlobaisNaoPassadasPorReferencia(GeradorCodigoJava.java:183) at br.univali.portugol.nucleo.execucao.gerador.GeradorCodigoJava$VisitorGeracaoCodigo.geraInicializacaoVariaveisGlobais(GeradorCodigoJava.java:247) at br.univali.portugol.nucleo.execucao.gerador.GeradorCodigoJava$VisitorGeracaoCodigo.access$300(GeradorCodigoJava.java:108) at br.univali.portugol.nucleo.execucao.gerador.GeradorCodigoJava.gera(GeradorCodigoJava.java:103) at br.univali.portugol.nucleo.compilador.Compilador.geraPrograma(Compilador.java:163) at br.univali.portugol.nucleo.compilador.Compilador.compilar(Compilador.java:104) at br.univali.portugol.nucleo.Portugol.compilar(Portugol.java:29) at br.univali.portugol.nucleo.Portugol.compilarParaExecucao(Portugol.java:48) at br.univali.ps.ui.abas.AbaCodigoFonte.lambda$compilaProgramaParaExecucao$4(AbaCodigoFonte.java:1906) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

Código do Erro: programa { inclua biblioteca Mouse --> m inclua biblioteca Graficos --> g

inteiro cor_verde = g.criar_cor(119, 149, 86)
inteiro cor_branco = g.criar_cor(235, 236, 208)

inteiro pos_pecas[8][8] = {
    {15, 12, 10, 14, 11, 10, 12, 15},
    {13, 13, 13, 13, 13, 13, 13, 13},
    {-1, -1, -1, -1, -1, -1, -1, -1},
    {-1, -1, -1, -1, -1, -1, -1, -1},
    {-1, -1, -1, -1, -1, -1, -1, -1},
    {-1, -1, -1, -1, -1, -1, -1, -1},
    {23, 23, 23, 23, 23, 23, 23, 23},
    {25, 22, 20, 24, 21, 20, 22, 25}
}

// inicialização das peças
inteiro pecas[2][6] = {
    {
    g.carregar_imagem("/src/brancas/bispo.png"),
    g.carregar_imagem("/src/brancas/rei.png"),
    g.carregar_imagem("/src/brancas/cavalo.png"),
    g.carregar_imagem("/src/brancas/peao.png"),
    g.carregar_imagem("/src/brancas/rainha.png"),
    g.carregar_imagem("/src/brancas/torre.png")
    },
    {
    g.carregar_imagem("/src/pretas/bispo.png"),
    g.carregar_imagem("/src/pretas/rei.png"),
    g.carregar_imagem("/src/pretas/cavalo.png"),
    g.carregar_imagem("/src/pretas/peao.png"),
    g.carregar_imagem("/src/pretas/rainha.png"),
    g.carregar_imagem("/src/pretas/torre.png")  
    }
}

funcao inicio()
{
    g.iniciar_modo_grafico(verdadeiro)
    g.definir_dimensoes_janela(800, 800)
    g.definir_titulo_janela("Xadrez")
    enquanto(verdadeiro){
        desenhar()
        g.renderizar()
    }
}

funcao desenhar(){
    inteiro cor
    inteiro comeco = 0
    para(inteiro l = 0; l < 8; l++){
        se(l % 2 > 0){
            comeco = 1
        }
        senao{
            comeco = 0
        }
        para(inteiro c = 0; c < 8; c++){
            // desenho do quadriculado
            se(c % 2 == comeco){
                cor = cor_verde
            }
            senao{
                cor = cor_branco
            }
            g.definir_cor(cor)
            g.desenhar_retangulo(c*100, l*100, 100, 100, falso, verdadeiro)

            // animação de hover
            se(m.posicao_x() >= c*100 e m.posicao_x() <= c*100 + 100){
                se(m.posicao_y() >= l*100 e m.posicao_y() <= l*100 + 100){
                    g.definir_cor(g.COR_PRETO)
                    g.definir_opacidade(50)
                    g.desenhar_retangulo(c*100, l*100, 100, 100, falso, verdadeiro)
                    g.definir_opacidade(255)
                    se(m.botao_pressionado(m.BOTAO_ESQUERDO)){
                        possibilidades(m.posicao_x(), m.posicao_y())
                    }
                }
            }

            // desenho das peças
            inteiro cor_peca = -1
            se(pos_pecas[l][c] - pos_pecas[l][c] % 10 == 10){
                cor_peca = 1
            }
            senao se(pos_pecas[l][c] - pos_pecas[l][c] % 10 == 20){
                cor_peca = 0
            }
            g.desenhar_imagem(20 + c * 100, 20 + l * 100, pecas[cor_peca][pos_pecas[l][c] % 10])
        }
    }
}

funcao desenhar_movimento(inteiro cor, inteiro peca){
    escolha(peca){
        caso 3:

    }
}

funcao possibilidades(inteiro pos_x, inteiro pos_y){
    para(inteiro c = 0; c < 8; c++){
        se(pos_pecas[pos_y][pos_x] % 10 == c){
            desenhar_movimento(pos_pecas[pos_y][pos_x] - pos_pecas[pos_y][pos_x] % 10, c)
        }
    }
}

}