Racing Bears: Subtraction Game

Racing Bears: Subtraction Game
Loading the math board and drawing, please wait…
2020-11-25 03:51
This example demonstrates a game where players race to zero on a number line by performing subtraction operations. Core math concepts include subtraction, number line, linear functions, and natural numbers. It is constructed using GeoGebra commands like Point, Element, Sequence, Angle, If, Segment, and TableText. Suitable for middle school mathematics education to visually illustrate subtraction and number line applications.

GeoGebra Commands & Parameters

  1. Point({-5, 2}) → numberLineStarter1
  2. Element({{Polygon[numberLineStarter1 + ((9.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter1 + ((11.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter1 + ((11.5 * spacer), ((1.5 * boxHeight) * spacer)), numberLineStarter1 + ((9.5 * spacer), ((1.5 * boxHeight) * spacer))]}, {Polygon[numberLineStarter1 + ((0.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter1 + ((-1.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter1 + ((-1.5 * spacer), ((1.5 * boxHeight) * spacer)), numberLineStarter1 + ((0.5 * spacer), ((1.5 * boxHeight) * spacer))]}, {Polygon[numberLineStarter1 + ((9.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter1 + ((11.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter1 + ((11.5 * spacer), ((1.5 * boxHeight) * spacer)), numberLineStarter1 + ((9.5 * spacer), ((1.5 * boxHeight) * spacer))], Polygon[numberLineStarter1 + ((0.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter1 + ((-1.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter1 + ((-1.5 * spacer), ((1.5 * boxHeight) * spacer)), numberLineStarter1 + ((0.5 * spacer), ((1.5 * boxHeight) * spacer))]}}, gameSelector) → winZone1
  3. Sequence(numberLineStarter1 + ((i * spacer), 0), i, -1 + (gameSelector ≟ 1), 11 - (gameSelector ≟ 2)) → numberLine1DotsMove
  4. Point(numberLine1DotsMove) → playerPoint
  5. Sequence((-5.2 + ((3 * i) * spacer), -1), i, 0, 3) → bearAnchors
  6. Element({0, 10, 5}, gameSelector) → start
  7. Element({10, 0}, gameSelector) → end
  8. Point({0, 0}) → spinnerCenter
  9. Sequence(Sector[Circle[spinnerCenter, spinnerRadius], ((spinnerRadius * cos((i * π / 3))), (spinnerRadius * sin((i * π / 3)))), ((spinnerRadius * cos(((i + 1) * π / 3))), (spinnerRadius * sin(((i + 1) * π / 3))))], i, 0, 5) → spinnerSections
  10. Angle(spinner) → currentAngle
  11. If(currentAngle ≤ π / 3, 1, If[currentAngle ≤ (2 * π / 3), 2, If[currentAngle ≤ π, 3, If[currentAngle ≤ (4 * π / 3), 4, If[currentAngle ≤ (5 * π / 3), 5, 6]]]]) → spinnerLocation
  12. Element(spinnerSections, spinnerLocation) → highlighted
  13. Element({{"+0", "+1", "+2", "+0", "+1", "+2"}, {"-0", "-1", "-2", "-0", "-1", "-2"}, {"+0", "+1", "+2", "-0", "-1", "-2"}}, gameSelector) → spinnerDisplayValues
  14. Sequence(Text[Element[spinnerDisplayValues, i], TextAdjuster + (((spinnerRadius * 0.7) * cos(π / 6 + ((i - 1) * π / 3))), ((spinnerRadius * 0.7) * sin(π / 6 + ((i - 1) * π / 3))))], i, 1, 6) → spinnerText
  15. Sequence(Segment[spinnerCenter, spinnerCenter + ((spinnerRadius * cos((i * π / 3))), (spinnerRadius * sin((i * π / 3))))], i, 0, 5) → lines
  16. Segment(numberLineStarter1, numberLineStarter1 + ((10 * spacer), 0)) → numberLine1
  17. Sequence(numberLineStarter1 + ((i * spacer), 0), i, 0, 10) → numberLine1DotsShown
  18. Point({-5, -2.5}) → numberLineStarter2
  19. Segment(numberLineStarter2, numberLineStarter2 + ((10 * spacer), 0)) → numberLine2
  20. Sequence(numberLineStarter2 + ((i * spacer), 0), i, -1 + (gameSelector ≟ 1), 11 - (gameSelector ≟ 2)) → numberLine2DotsMove
  21. Sequence(numberLineStarter2 + ((i * spacer), 0), i, 0, 10) → numberLine2DotsShown
  22. Sequence(Text[i, numberLineStarter1 + ((i * spacer), 0) + numberLineTextAdjuster], i, 0, 10) → numberLine1Text
  23. Sequence(Text[i, numberLineStarter2 + ((i * spacer), 0) + numberLineTextAdjuster], i, 0, 10) → numberLine2Text
  24. Element({{Polygon[numberLineStarter2 + ((9.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter2 + ((11.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter2 + ((11.5 * spacer), ((1.5 * boxHeight) * spacer)), numberLineStarter2 + ((9.5 * spacer), ((1.5 * boxHeight) * spacer))]}, {Polygon[numberLineStarter2 + ((0.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter2 + ((-1.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter2 + ((-1.5 * spacer), ((1.5 * boxHeight) * spacer)), numberLineStarter2 + ((0.5 * spacer), ((1.5 * boxHeight) * spacer))]}, {Polygon[numberLineStarter2 + ((9.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter2 + ((11.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter2 + ((11.5 * spacer), ((1.5 * boxHeight) * spacer)), numberLineStarter2 + ((9.5 * spacer), ((1.5 * boxHeight) * spacer))], Polygon[numberLineStarter2 + ((0.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter2 + ((-1.5 * spacer), ((-boxHeight) * spacer)), numberLineStarter2 + ((-1.5 * spacer), ((1.5 * boxHeight) * spacer)), numberLineStarter2 + ((0.5 * spacer), ((1.5 * boxHeight) * spacer))]}}, gameSelector) → winZone2
  25. Point({x(numberLineStarter2) + (((computerOldScore * (1 - bearMove)) + (computerNewScore * bearMove)) * spacer), y(numberLineStarter2)}) → computerPoint
  26. TableText({"Right:", rightAnswers}, {"Wrong:", wrongAnswers}) → text8
  27. Element({{0, 1, 2, 0, 1, 2}, {0, -1, -2, 0, -1, -2}, {0, 1, 2, 0, -1, -2}}, gameSelector) → spinnerValues

AI Drawing Prompt Reference

Draw a number line from -5 to 5 with integer points marked from 0 to 10. Place two bear anchors near -5 and 5. Draw a pointer pointing to a point on the number line. Draw a spinner with six sectors representing +0, +1, +2, -0, -1, and -2. Draw a win zone at both ends of the number line. Draw two player points on the number line, starting at -5 and 5. Draw a win zone at both ends of the second number line.
The prompt above was compiled from the original drawing commands and is for reference only.