Greasy Fork is available in English.
Automatically solves Mathletics math problems when "A" is pressed (supports addition, subtraction, multiplication).
当前为
// ==UserScript==
// @name Mathletics Auto Math Solver
// @namespace / http://tampermonkey.net
// @version 4.1
// @description Automatically solves Mathletics math problems when "A" is pressed (supports addition, subtraction, multiplication).
// @author nukerboss
// @match https://*.mathletics.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Function to solve the equation (addition, subtraction, multiplication, and missing values)
function solveEquation() {
// Wait for the question text to be visible
const questionElement = document.getElementsByClassName('questions-text-alignment whiteTextWithShadow question-size-v4')[0];
if (!questionElement) {
console.log("Math problem element not found!");
return;
}
// Get the equation text
let equation = questionElement.innerText.trim();
console.log("Detected equation:", equation); // For debugging
let result;
// Check if the equation is in the format: "X + Y = Z"
if (equation.includes("=")) {
let parts = equation.split('=');
let leftPart = parts[0].trim();
let rightSide = parseInt(parts[1].trim());
// Handle cases where the equation has a blank (like 7 + _ = 20 or 7 × _ = 20)
if (leftPart.includes("_")) {
if (leftPart.includes("+")) {
let numbers = leftPart.split("+");
let leftNumber = parseInt(numbers[0].trim());
result = rightSide - leftNumber; // Solve for missing number
} else if (leftPart.includes("-")) {
let numbers = leftPart.split("-");
let leftNumber = parseInt(numbers[0].trim());
result = leftNumber - rightSide; // Solve for missing number
} else if (leftPart.includes("×")) {
let numbers = leftPart.split("×");
let leftNumber = parseInt(numbers[0].trim());
result = rightSide / leftNumber; // Solve for missing multiplier
}
} else {
// Handle standard equations like 7 + 3 = 10
let equationParts = leftPart.split(" ");
let firstNum = parseInt(equationParts[0].trim());
let operator = equationParts[1];
let secondNum = parseInt(equationParts[2].trim());
switch (operator) {
case "+":
result = firstNum + secondNum;
break;
case "-":
result = firstNum - secondNum;
break;
case "×":
result = firstNum * secondNum;
break;
default:
console.log("Unsupported operator:", operator);
return;
}
}
// Show the result in the input box
console.log("Calculated result:", result); // For debugging
document.getElementsByClassName("questions-input-adjustment questions-input-width-v3")[0].value = result;
} else {
console.log("Equation format not recognized.");
}
}
// Event listener for the "A" key to solve the equation
window.addEventListener("keydown", function(e) {
if (e.key === "A" || e.key === "a") {
solveEquation();
}
});
})();