Magic Pot Calculation
Loading the math board and drawing, please wait…
In collections
Addieren und Subtrahieren von ganzen und rationalen Zahlen
This example demonstrates how to create an interactive magic pot calculation tool in GeoGebra for practicing addition, subtraction, inequalities, and 2D vector operations. The core math concepts involved include integer arithmetic, inequality solving, 2D vector representation, and geometric transformations. Construction highlights the use of commands and objects like Textfield, Flatten, Sequence,
GeoGebra Commands & Parameters
Textfield(input) → inputBoxFlatten(Sequence[Shuffle[1…4], k, 1, 25]) → Cases1Sequence(If[Cases1(k) ∈ {1, 2}, Random[1, maxNumber], Random[minNumber, -1]], k, 1, 100) → NumberList11Flatten(Sequence[Shuffle[1…10], k, 1, 4]) → Cases2Sequence(If[Cases2(k) ∈ {1, 2, 3, 7, 8, 9, 10}, Random[1, maxNumber], Random[minNumber, -1]], k, 1, 100) → NumberList12If(level ≟ 1, NumberList11(counter), NumberList12(counter)) → numberStone1Sequence(If[Cases1(k) ∈ {1, 3}, RandomElement[Remove[minNumber…maxNumber, {0}]], Cases1(k) ≟ 2, Random[minNumber, -1], Random[1, maxNumber]], k, 1, 100) → NumberList21Sequence(If[Cases2(k) ∈ {1, 2, 3}, Random[1, maxNumber], Random[minNumber, -1]], k, 1, 100) → NumberList42Sequence(If[Cases2(k) ∈ {1, 4, 7}, RandomElement[Remove[minNumber…maxNumber, {0}]], Cases2(k) ∈ {3, 6, 10}, If[NumberList12(k) + NumberList42(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {2, 5, 8}, If[NumberList12(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {9}, If[NumberList42(k) > 0, Random[minNumber, -1], Random[1, maxNumber]]], k, 1, 100) → NumberList22If(level ≟ 1, NumberList21(counter), NumberList22(counter)) → numberStone2Sequence(If[Cases1(k) ∈ {1, 3}, If[NumberList21(k) < 0, RandomElement[1…maxNumber], RandomElement[minNumber…-1]], RandomElement[Remove[Max[-5 - NumberList21(k) - NumberList11(k), minNumber]…Min[5 - NumberList21(k) - NumberList11(k), maxNumber], {0}]]], k, 1, 100) → NumberList31Sequence(If[Cases2(k) ∈ {1, 4, 7}, If[NumberList22(k) < 0, RandomElement[1…maxNumber], RandomElement[minNumber…-1]], Cases2(k) ∈ {3, 6, 10}, If[NumberList12(k) + NumberList42(k) + NumberList22(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {2, 5, 8}, If[NumberList12(k) + NumberList22(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {9}, If[NumberList42(k) + NumberList22(k) ≥ 0, Random[minNumber, -1], Random[1, maxNumber]]], k, 1, 100) → NumberList32If(level ≟ 1, NumberList31(counter), NumberList32(counter)) → numberStone3Sequence(If[Cases1(k) ∈ {2, 4}, RandomElement[{4}], RandomElement[{3, 4}]], k, 1, 100) → NumberOfStonesLevel1Sequence(If[Cases1(k) ∈ {1, 3} ∧ NumberOfStonesLevel1(k) ≟ 3, RandomElement[Remove[Max[-20 - NumberList21(k) - NumberList31(k), minNumber]…Min[20 - NumberList21(k) - NumberList31(k), maxNumber], {0}]], Cases1(k) ∈ {1, 3} ∧ NumberOfStonesLevel1(k) ≟ 4, RandomElement[Remove[Max[-5 - NumberList21(k) - NumberList31(k), minNumber]…Min[5 - NumberList21(k) - NumberList31(k), maxNumber], {0}]], RandomElement[Remove[Max[-20 - NumberList21(k) - NumberList31(k), minNumber]…Min[20 - NumberList21(k) - NumberList31(k), maxNumber], {0}]]], k, 1, 100) → NumberList41If(level ≟ 1, NumberList41(counter), NumberList42(counter)) → numberStone4Sequence(If[Cases2(k) ∈ {1, 4, 7}, If[NumberList32(k) + NumberList22(k) < 0, RandomElement[1…maxNumber], RandomElement[minNumber…-1]], Cases2(k) ∈ {3, 6, 10}, If[NumberList12(k) + NumberList42(k) + NumberList22(k) + NumberList32(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {2, 5, 8}, If[NumberList12(k) + NumberList22(k) + NumberList32(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {9}, If[NumberList42(k) + NumberList22(k) + NumberList32(k) > 0, Random[minNumber, -1], Random[1, maxNumber]]], k, 1, 100) → NumberList52Sequence(If[Cases1(k) ∈ {1, 3} ∧ NumberOfStonesLevel1(k) ≟ 4, RandomElement[Remove[Max[-20 - NumberList21(k) - NumberList31(k) - NumberList41(k), minNumber]…Min[20 - NumberList21(k) - NumberList31(k) - NumberList41(k), maxNumber], {0}]], Random[minNumber, maxNumber]], k, 1, 100) → NumberList51If(level ≟ 1, NumberList51(counter), NumberList52(counter)) → numberStone5Sequence(If[Cases2(k) ∈ {1, 4, 7}, If[NumberList52(k) + NumberList32(k) + NumberList22(k) < 0, RandomElement[1…maxNumber], RandomElement[minNumber…-1]], Cases2(k) ∈ {3, 6, 10}, If[NumberList12(k) + NumberList42(k) + NumberList22(k) + NumberList32(k) + NumberList52(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {2, 5, 8}, If[NumberList12(k) + NumberList22(k) + NumberList32(k) + NumberList52(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {9}, If[NumberList42(k) + NumberList22(k) + NumberList32(k) + NumberList52(k) > 0, Random[minNumber, -1], Random[1, maxNumber]]], k, 1, 100) → NumberList62Sequence(If[Cases2(k) ∈ {1, 4, 7}, If[NumberList62(k) + NumberList52(k) + NumberList32(k) + NumberList22(k) < 0, RandomElement[1…maxNumber], RandomElement[minNumber…-1]], Cases2(k) ∈ {2, 5, 8}, If[NumberList12(k) + NumberList22(k) + NumberList32(k) + NumberList52(k) + NumberList62(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], Cases2(k) ∈ {9}, If[NumberList42(k) + NumberList22(k) + NumberList32(k) + NumberList52(k) + NumberList62(k) > 0, Random[minNumber, -1], Random[1, maxNumber]], RandomElement[Remove[minNumber…maxNumber, {0}]]], k, 1, 100) → NumberList72Sequence(IsInRegion[AllPStones(k), RegionZK(1)], k, 1, Length[AllPStones]) → StoneInRegionSum(Sequence[If[StoneInRegion(k), AllNumbersStones(k), 0], k, 1, Length[AllNumbersStones]]) → actualTemperatureIf(level ≟ 1, actualTemperature + If[CaseLevel1 ∈ {1, 3}, numberStone1, (-numberStone1)], actualTemperature + If[CaseLevel2 ∈ {1, 4, 7, 9}, numberStone1, (-numberStone1)] + If[CaseLevel2 ∈ {1, 2, 4, 5, 7, 8}, numberStone4, (-numberStone4)]) → solutionSequence(Random[1, 10], i, 1, 10) → randomNumbers, {9, 4, 5, 3, 10, 7, 6, 7, 5, 4}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberJoin({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, 0, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, 0, RasterMaxY / RasterStepXY]}) → RasterStreckenJoin({Sequence[Text[UnicodeToLetter[65 + k], Midpoint[Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY)), Corner[4] + (RasterPixMat * (((k + 1) * RasterStepXY), RasterMaxY))], false, true, 0, -1], k, 0, RasterMaxX / RasterStepXY - 1], Sequence[Text[("" * k), Midpoint[Corner[4] + (RasterPixMat * (RasterMaxX, ((k - 1) * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], false, true, 1, 0], k, 1, RasterMaxY / RasterStepXY]}) → RasterBeschriftungSequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkteTranslate(imgChilliGrau1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliGrau2Translate(imgChilliRot1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot2Translate(imgChilliRot1, Vector[(2 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot3Ellipse(Midpoint[PointsAZK(1), PointsAZK(2)] + (sqrt(Distance[PointsAZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2) - Distance[PointsBZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2)), 0), Midpoint[PointsAZK(1), PointsAZK(2)] + ((-sqrt(Distance[PointsAZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2) - Distance[PointsBZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2))), 0), Distance[PointsAZK(1), PointsAZK(2)] / 2) → ellZKSequence(((dimStoneA * cos(k°)), (dimStoneB * sin(k°))), k, 0, 360, 5) → PointStoneText((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone1 > 0, "+", numberStone1 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone1)), (abs(numberStone1) * "")]) * "}}}"), PStone1 + (0, 0.05), false, true, 0, 0) → txtStone1Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone2 > 0, "+", numberStone2 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone2)), (abs(numberStone2) * "")]) * "}}}"), PStone2 + (0, 0.05), false, true, 0, 0) → txtStone2Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone3 > 0, "+", numberStone3 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone3)), (abs(numberStone3) * "")]) * "}}}"), PStone3 + (0, 0.05), false, true, 0, 0) → txtStone3Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone4 > 0, "+", numberStone4 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone4)), (abs(numberStone4) * "")]) * "}}}"), PStone4 + (0, 0.05), false, true, 0, 0) → txtStone4Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone5 > 0, "+", numberStone5 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone5)), (abs(numberStone5) * "")]) * "}}}"), PStone5 + (0, 0.05), false, true, 0, 0) → txtStone5Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone6 > 0, "+", numberStone6 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone6)), (abs(numberStone6) * "")]) * "}}}"), PStone6 + (0, 0.05), false, true, 0, 0) → txtStone6Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone7 > 0, "+", numberStone7 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone7)), (abs(numberStone7) * "")]) * "}}}"), PStone7 + (0, 0.05), false, true, 0, 0) → txtStone7Text((((("\textsf{\bold{" * If[actualTemperature > 0, "+", ""]) * "\(") * actualTemperature) * "\) °C}}"), PosDigitaleAnzeige + (0, 0.05), false, true, 0, 0) → txtDigitaleAnzeigeUnitOrthogonalVector(Segment[PointParkedStones(1), PointZKStones(1)]) → vBogenZK1CircleArc(Midpoint[Vertex[randStoneParked1(1), 18], Vertex[randStoneZK1(1), 18]] + (0.5 * vBogenZK1), Vertex[randStoneParked1(1), 18], Vertex[randStoneZK1(1), 18]) → bogenZK1UnitOrthogonalVector(Segment[PointZKStones(4), PointParkedStones(2)]) → vBogenZK2CircleArc(Midpoint[Vertex[randStoneZK2(1), 54], Vertex[randStoneParked2(1), 54]] + (0.5 * vBogenZK2), Vertex[randStoneZK2(1), 54], Vertex[randStoneParked2(1), 54]) → bogenZK2Segment(Point[bogenZK1, 1], Point[bogenZK1, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK1, 1], bogenZK1]])) → arrowBogenZK1Segment(Point[bogenZK2, 1], Point[bogenZK2, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK2, 1], bogenZK2]])) → arrowBogenParked2Segment(Point[bogenZK2, 0], Point[bogenZK2, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK2, 0], bogenZK2]])) → arrowBogenZK2Segment(Point[bogenZK1, 0], Point[bogenZK1, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK1, 0], bogenZK1]])) → arrowBogenParked1Sequence(Random[-20, 20], k, 1, 100) → StartTempList1, {10, -1, 4, 10, 17, -6, -14, 17, 14, 13, -4, 6, -1, -18, -1, 3, 20, 7, -4, 3, -11, -9, 15, -6, 18, -8, 11, 11, 14, -5, 11, 5, -14, -13, 11, 2, 7, -5, -13, -13, 2, 17, 2, 17, -11, -14, -17, 1, 12, 5, 7, 8, -10, -12, 14, 7, -9, 8, -2, 2, 15, 16, -1, 6, -11, -7, 19, 18, 1, 3, 20, -13, 9, 11, -11, -16, -8, 20, 14, 14, 6, 18, 9, -7, -15, 3, -8, -5, -3, -2, 17, -6, 3, 16, -18, 12, 10, -19, -3, 16}Sequence(Random[-20, 20], k, 1, 100) → StartTempList2, {-7, 14, 20, 4, 5, -9, 5, 8, -2, -14, 5, 3, -5, -9, -1, -9, 13, 17, 5, -10, -20, 10, 1, 6, 11, -10, -15, 20, -14, -20, 5, -4, -19, 15, 12, -8, 16, 18, 17, 17, -13, -9, -4, -6, -15, -16, 12, -17, 16, -1, 19, 3, 4, 20, 14, -9, -18, 6, -9, -3, 10, 9, -3, -19, -9, 4, 11, 3, -5, 12, -10, 7, 14, -17, 0, -8, -3, -7, 0, 20, 12, -11, -7, -2, -18, -4, 0, -14, 1, -17, -16, 5, 20, 20, -11, -9, 8, -11, 10, 4}Sequence(If[Cases2(k) ∈ {3, 6, 10}, RandomElement[{5, 6}], Cases2(k) ∈ {2, 5, 8, 9}, RandomElement[{4, 5, 6}], RandomElement[{3, 4, 5}]], k, 1, 100) → NumberOfStonesLevel2If(level ≟ 1, numberOfStones1, numberOfStones2) → numberOfStonesIf(level ≟ 1, startTemp1, startTemp2) → startTemp