From be6e4126d981c8b9033e6e3a6ccfae8ea9782b0c Mon Sep 17 00:00:00 2001 From: thatcomputerguy0101 Date: Wed, 14 Dec 2022 23:45:07 -0500 Subject: [PATCH] Finish fixing solving operation. --- js/display/center/equationHistory.js | 5 +++++ js/display/center/problemSpace.js | 4 +++- js/display/overlay/helpMenu.js | 8 ++++---- js/manipulations/subsitutionManipulation.js | 2 +- steps/Step6.png | Bin 0 -> 44052 bytes 5 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 steps/Step6.png diff --git a/js/display/center/equationHistory.js b/js/display/center/equationHistory.js index 5c1d701..5a25a88 100644 --- a/js/display/center/equationHistory.js +++ b/js/display/center/equationHistory.js @@ -1,9 +1,14 @@ import html from "../html.js" +import mjs from "../../mathjs/index.js" import { EquationState } from "./equationState.js" export class EquationHistory extends React.Component { addState(newState, after=undefined) { if (typeof this.props.onChange == "function") { + if (mjs.simplify(newState, mjs.expandSolvable("vl == ce").map(pattern => ({l: pattern, r: "valid()"}))).equals(mjs.parse("valid()"))) { + newState = [newState, newState.map((node, i) => i == "args[1]" ? new mjs.ConstantNode(node.evaluate()) : node)] + } + if (after == undefined) { this.props.onChange(this.props.states.concat(newState)) } else { diff --git a/js/display/center/problemSpace.js b/js/display/center/problemSpace.js index 1830cb3..8f47931 100644 --- a/js/display/center/problemSpace.js +++ b/js/display/center/problemSpace.js @@ -19,7 +19,9 @@ export class ProblemSpace extends React.Component { } get constants() { - return this.props.constants.concat(this[solvedEquations]) + return this.props.constants.filter(constant => + !constant.name.equals(new mjs.SymbolNode("")) && constant.value.value != null + ).concat(this[solvedEquations]) } get equations() { diff --git a/js/display/overlay/helpMenu.js b/js/display/overlay/helpMenu.js index 7040e4a..89b6c93 100644 --- a/js/display/overlay/helpMenu.js +++ b/js/display/overlay/helpMenu.js @@ -22,10 +22,10 @@ export class HelpMenu extends React.Component { image: "../steps/Step5.png", content: "5. Continue performing operations. If you make a mistake, simply select text from a previous equation to get back on track." }, - // { - // image: "../steps/Step6.png", - // content: "6. Once an equation is solved for an unknown variable in terms of known variables, select the equals sign or the whole equation to substitute in the givens and calculate the solution." - // }, + { + image: "../steps/Step6.png", + content: "6. Once an equation is solved for an unknown variable in terms of known variables, select the whole equation to substitute in the givens and calculate the solution." + }, // { // image: "../steps/Step7.png", // content: "7. To move on to your next problem, click the plus button within the Problems pane. Click the name of problems to switch between them." diff --git a/js/manipulations/subsitutionManipulation.js b/js/manipulations/subsitutionManipulation.js index 06f818f..d57010f 100644 --- a/js/manipulations/subsitutionManipulation.js +++ b/js/manipulations/subsitutionManipulation.js @@ -61,7 +61,7 @@ export class SubsitutionManipulation extends Manipulation { case "solve": // Ensure that variable is first const orderedSel = mjs.simplify(selection, mjs.expandSolvable("n == vl").map(pattern => ({l: pattern, r: pattern.split(" == ").reverse().join(" == ")})).concat({l: "MathQuillSelection(n)", r: "n"})) - return orderedSel.map((node, i) => i == 1 ? node.transform(node => scope.find(constant => node.equals(constant.name) && constant.valueNode.isConstantNode)?.valueNode ?? node) : node) + return orderedSel.map((node, i) => i == "args[1]" ? node.transform(node => scope.find(constant => node.equals(constant.name) && constant.valueNode.isConstantNode)?.valueNode ?? node) : node) default: throw new Error("Invalid subsitution mode") } diff --git a/steps/Step6.png b/steps/Step6.png new file mode 100644 index 0000000000000000000000000000000000000000..31f0b740ce0be88478323bcf0463e7f6109978bd GIT binary patch literal 44052 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