diff --git a/src/content/verbs/SwitchPlayground.tsx b/src/content/verbs/SwitchPlayground.tsx new file mode 100644 index 0000000..cbede33 --- /dev/null +++ b/src/content/verbs/SwitchPlayground.tsx @@ -0,0 +1,78 @@ +import { useState } from "react"; +import { tenseData } from "./tense-data"; + +function SwitchPlayground() { + const [state, setState] = useState<[boolean, boolean, boolean]>([false, false, false]); + const makeToggle = (i: 0|1|2) => () => setState(os => { + const ns = [...os] as [boolean, boolean, boolean]; + ns[i] = !ns[i]; + return ns; + }); + const [form] = tenseData.find(([t, ...switches]) => { + return JSON.stringify(state) === JSON.stringify(switches); + }) as ["string"]; + return
+
+
+ +
+
+ +
+
+ +
+
+
{form}
+
; +} + +function Switch({ state, toggle, label }: { label: [string, string], state: boolean, toggle: () => void }) { + const borderRadius = "8px"; + const border = "solid 2px black"; + return
+
{label[0]}
+
+
+
+
+
+
{label[1]}
+
+} + +export default SwitchPlayground; \ No newline at end of file diff --git a/src/content/verbs/master-chart.mdx b/src/content/verbs/master-chart.mdx index 0971f6e..a6f5c65 100644 --- a/src/content/verbs/master-chart.mdx +++ b/src/content/verbs/master-chart.mdx @@ -2,11 +2,18 @@ title: Verb Forms Master Chart --- +import { + defaultTextOptions as opts, + InlinePs, +} from "@lingdocs/ps-react"; import { Camera, Video } from "../../components/terms-links"; import Link from "../../components/Link"; -import GameDisplay from "../../games/GameDisplay"; +import Image from "../../components/Image"; +import switches from "./switches.jpg"; +import { tenseData } from "./tense-data"; +import SwitchPlayground from "./SwitchPlayground"; -## Basic Verb Tenses +## Basic Verb Forms @@ -75,51 +82,50 @@ import GameDisplay from "../../games/GameDisplay";
-
- simplified +### Verb formulas as three choices: - - - - - - - - - - - - - - - - - - - - -
For each aspect
-
Present/Subjunctive
-
- stem + present ending -
-
-
Future
-
- ba + above -
-
-
Past
-
- root + past ending -
-
-
Habitual Past
-
- ba + above -
-
-
+There's another way to look at the possible verb forms. Whenever we make a verb form we have three choices: + +1. root (past) or stem (non-past) +2. imperfective or perfective form +3. with or without + + + +We can use **any possible** combination of these 3 choices, giving us: + +

+ 2 x 2 x 2 = 8 verb forms +

+ +Here's a chart of every possible combination of these choices, giving us all the basic verb forms: + +
+ + + + + + + + + + + {tenseData.map((t) => ( + + + + + + + ))} + +
formhas 'ba'Imperfective / PerfectiveStem / Root
{t[0]}{t[1] ? "Y" : "N"}{t[2] ? "Imperfective" : "Perfective"}{t[3] ? "Stem" : "Root"}
+
+ +Try the combinations yourself! + + ## Imperative Forms @@ -169,8 +175,8 @@ Any of the 8 equa ## Ability Verb Forms -Same formulas as basic verb tenses but with the ability roots and stems. +Same formulas as basic verb forms but with the ability roots and stems. ## Passive Verb Forms -Same formulas as the basic verb tenses and perfect verb forms, but with the passive roots and stems. +Same formulas as the basic verb forms and perfect verb forms, but with the passive roots and stems. diff --git a/src/content/verbs/switches.jpg b/src/content/verbs/switches.jpg new file mode 100644 index 0000000..5f7cdc5 Binary files /dev/null and b/src/content/verbs/switches.jpg differ diff --git a/src/content/verbs/tense-data.ts b/src/content/verbs/tense-data.ts new file mode 100644 index 0000000..f1f4931 --- /dev/null +++ b/src/content/verbs/tense-data.ts @@ -0,0 +1,10 @@ +export const tenseData = [ + ["present", false, false, false], + ["imperfective future", true, false, false], + ["subjunctive", false, true, false], + ["perfective future", true, true, false], + ["continuous past", false, false, true], + ["habitual continuous past", true, false, true], + ["simple past", false, true, true], + ["habitual simple past", true, true, true], +] \ No newline at end of file