Mathspace Ultimate Solver

Extracts, analyzes, and correctly solves Mathspace questions

Per 13-02-2025. Zie de nieuwste versie.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name         Mathspace Ultimate Solver
// @namespace    http://tampermonkey.net/
// @version      4.0
// @description  Extracts, analyzes, and correctly solves Mathspace questions
// @author       You
// @match        *://*.mathspace.co/*
// @grant        none
// @require      https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.9.0/math.min.js
// ==/UserScript==

(function() {
    'use strict';

    function getQuestionText() {
        let questionElement = document.querySelector('[data-testid="question-content"]'); // Adjust if needed
        if (questionElement) {
            return questionElement.innerText.trim();
        }
        return null;
    }

    function formatMathExpression(expression) {
        return expression
            .replace(/×/g, '*')       // Convert multiplication
            .replace(/÷/g, '/')       // Convert division
            .replace(/\^/g, '**')     // Convert exponents
            .replace(/([a-zA-Z])(\d+)/g, '$1^$2')  // Convert "n4" to "n^4"
            .replace(/(\d+)\s*\/\s*(\d+)/g, '($1/$2)'); // Convert fractions
    }

    function solveMathQuestion(expression) {
        try {
            let formattedExpression = formatMathExpression(expression);
            let answer = math.simplify(formattedExpression).toString();
            return answer;
        } catch (error) {
            console.error("Error solving the equation:", error);
            return "Error";
        }
    }

    function displayAnswer() {
        let questionText = getQuestionText();

        if (questionText) {
            console.log("Extracted Question:", questionText); // Debugging
            let answer = solveMathQuestion(questionText);
            alert("Correct Answer: " + answer);
            console.log("Correct Answer:", answer);
        } else {
            console.log("Could not find the question.");
        }
    }

    setTimeout(displayAnswer, 3000);
})();