Skip to content

pedrohdev/saci

Repository files navigation

Ambiente Saci 🌪️

Saci é um ambiente de aprendizagem desenvolvido para o ensino de programação. Todas as soluções em Javascript da OBI devem ser feitos com ele, obedecendo os comandos de scanf e printf para entrada e saída, porém não existe nenhum interpretador para node.js e por isso fiz essa implementação com puppeteer

Como instalar? 🚀

$ npm install saaci

Como usar? 💻

const Saci = require("saaci");
const fs = require("fs");
const drone = fs.readFileSync(`${__dirname}/drone.js`, 'utf8'); // Lê o exercício, é necessário o 'utf8'

(async () => {
    const output = await new Saci({
        code: drone,
        input: `
            30
            50
            80
            80
            60    
        `
    })
    
    // Ou coloque o código direto no objeto
    
    const output2 = await new Saci({
        code: `
            var A, B, C;
            var H, L;
            
            scanf("%d%d%d", "A", "B", "C");
            scanf("%d%d", "H", "L");
            
            var ok = (A <= H && B <= L) || (B <= H && C <= L) || (C <= H && A <= L) ||
                (B <= H && A <= L) || (C <= H && B <= L) || (A <= H && C <= L);
            
            if (ok)
                printf("S");
            else
                printf("N");
        `,
        input: `
            475
            100
            50
            100
            30
        `
    })

    console.log(`Recebeu "${output2}" e o valor esperado é "N"`) // Recebeu "N" e o valor esperado é "N"
    console.log(`Recebeu "${output}" e o valor esperado é "S"`) // Recebeu "S" e o valor esperado é "S"
})();

Aprenda os comandos do Ambiente Saci 🌪️🎓

Author


@pedrohdev