Andean Taptanita: Interactive Arithmetic & Probability Simulation
Loading the math board and drawing, please wait…
This example demonstrates the "Taptanita", an Andean traditional counting tool similar to an abacus, used for teaching addition, subtraction, and basic arithmetic with natural numbers. Core math concepts include natural number operations, stochastic processes, and introductory probability. Construction highlights: Polygon command draws corn and bean arrangements; Sequence and Join generate sequenc
GeoGebra Commands & Parameters
Join({Sequence[Rotate[(0, (-4.55 * s)), (k * pi / 5), CentroChoza(2)], k, 4, -4, -1], CentroKilla, {Rotate[(0, (-4.55 * s)), (4 * pi / 5), CentroChoza(2)]}}) → CentroPozoSequence(Text[("CHOZA " * k), CentroChoza(k) + ajusteChoza], k, 1, 2) → textoChozaSequence(Text[("POZO " * k), CentroPozo(k) + ajustePozo], k, 1, 9) → textoPozoSemicircle(CentroKilla(1) + ((1.52 * s), 0), CentroKilla(1) - ((1.52 * s), 0)) → killaPolygon(CentroChoza(2) - ((3.4, 3.4) * s), CentroChoza(2) + ((3.4, -3.4) * s), CentroChoza(1) + ((3.4, 1.6) * s), CentroChoza(1) - ((3.4, -1.6) * s)) → zona, f, g, h, iPointIn(zona) → C1M0aPointIn(zona) → C1M1aPointIn(zona) → C1M2aPointIn(zona) → C1M3aPointIn(zona) → C1M4aPointIn(zona) → C1M5aPointIn(zona) → C1M6aPointIn(zona) → C1M7aPointIn(zona) → C1M8aPointIn(zona) → C1M9aPointIn(zona) → C1P0aPointIn(zona) → C1P1aPointIn(zona) → C1P2aPointIn(zona) → C1P3aPointIn(zona) → C1P4aPointIn(zona) → C1P5aPointIn(zona) → C1P6aPointIn(zona) → C1P7aPointIn(zona) → C1P8aPointIn(zona) → C1P9aPointIn(zona) → C1H1aPointIn(zona) → C1H2aPointIn(zona) → C1H3aPointIn(zona) → C1H4aPointIn(zona) → C1H5aPointIn(zona) → C1H6aPointIn(zona) → C1H7aPointIn(zona) → C1H8aPointIn(zona) → C1H9aPointIn(zona) → C2M0aPointIn(zona) → C2M1aPointIn(zona) → C2M2aPointIn(zona) → C2M3aPointIn(zona) → C2M4aPointIn(zona) → C2M5aPointIn(zona) → C2M6aPointIn(zona) → C2M7aPointIn(zona) → C2M8aPointIn(zona) → C2M9aPointIn(zona) → C2P0aPointIn(zona) → C2P1aPointIn(zona) → C2P2aPointIn(zona) → C2P3aPointIn(zona) → C2P4aPointIn(zona) → C2P5aPointIn(zona) → C2P6aPointIn(zona) → C2P7aPointIn(zona) → C2P8aPointIn(zona) → C2P9aPointIn(zona) → C2H1aPointIn(zona) → C2H2aPointIn(zona) → C2H3aPointIn(zona) → C2H4aPointIn(zona) → C2H5aPointIn(zona) → C2H6aPointIn(zona) → C2H7aPointIn(zona) → C2H8aPointIn(zona) → C2H9aCorner(1, 1) → E1Random(1, 1000000) → activarJoin({Sequence[{CentroPozo(k) - (anchoM, altoM) / 2, CentroPozo(k) + (anchoM, (-altoM)) / 2}, k, 1, 9], {posKillaM}}) → posPozosMSequence(Rotate[CentroPozo(k) - ((0.2, 0.05) * s), ((-k) * pi / 5), CentroPozo(k)], k, 1, 9) → posPozosHaSequence(Rotate[posPozosHa(k) + (anchoH, 0), (((-(k - 1)) * pi)) / 5, posPozosHa(k)], k, 1, 9) → posPozosHbSequence(Circle[CentroPozo(k), (0.66 * s)], k, 1, 9) → pozoSequence(posC1Maiz(k) + CentroChoza(2) - CentroChoza(1), k, 1, 10) → posC2MaizSequence(Rotate[CentroChoza(1) + (((-anchoP)) / 2, (0.5 * s)), ((-k) * pi / 5), CentroChoza(1)], k, 1, 10) → posC1PorotoSequence(posC1Poroto(k) + CentroChoza(2) - CentroChoza(1), k, 1, 10) → posC2PorotoSequence(Rotate[CentroChoza(1) + (((-anchoH)) / 2, (0.75 * s)), ((-k) * pi / 5), CentroChoza(1)], k, 1, 10) → posC1HabaSequence(posC1Haba(k) + CentroChoza(2) - CentroChoza(1), k, 1, 10) → posC2HabaJoin({Sequence[Rotate[CentroPozo(k) - ((-0.2, 0.05) * s), ((-k) * pi / 5), CentroPozo(k)], k, 1, 9], {posKillaP(1)}}) → posPozosPaJoin({Sequence[Rotate[posPozosPa(k) - (anchoP, 0), (((-(k - 1)) * pi)) / 5, posPozosPa(k)], k, 1, 9], {posKillaP(2)}}) → posPozosPbVector(CentroChoza(2) + (0.65 * (CentroPozo(9) - CentroChoza(2))) - (0.2, 0.15), CentroChoza(2) + (0.65 * (CentroPozo(9) - CentroChoza(2)))) → flechaSentidoHorarioCircleArc(CentroChoza(2), CentroChoza(2) + (0.65 * (CentroPozo(9) - CentroChoza(2))), CentroChoza(2) + (0.65 * (CentroPozo(1) - CentroChoza(2)))) → sentidoIf(sumar9 ∨ restar9, contar9) → cIf(contar, N1, sumar, N1 + N2, N1 - N2) → TIf(contar19 ∧ aux ≟ 1, 0, floor(N1 / 100)) → c1If(contar19 ∧ aux ≟ 1, 10, contar19 ∧ aux ≟ 0, 0, floor((N1 - (c1 * 100)) / 10)) → d1If(contar19 ∧ aux ≟ 1, floor((N1 - 100) / 10), contar19 ∧ aux ≟ 0, 0, floor((N2 - (c2 * 100)) / 10)) → d2If(contar19 ∧ aux ≟ 0, 10, contar19 ∧ aux ≟ 1, 0, N1 - (100 * c1) - (10 * d1)) → u1If(contar19 ∧ aux ≟ 0, N1 - 10, contar19 ∧ aux ≟ 1, N1 - 100 - (10 * d2), N2 - (100 * c2) - (10 * d2)) → u2Mod(u1 + u2, 10) → u12Mod(d1 + d2, 10) → d12Vector(CentroChoza(2) + (0.65 * (CentroPozo(1) - CentroChoza(2))) + (0.2, -0.15), CentroChoza(2) + (0.65 * (CentroPozo(1) - CentroChoza(2)))) → flechaSentidoAntiHorarioTextfield(N1) → CasillaDeEntrada1Textfield(N2) → CasillaDeEntrada2