Memory
- $n$ Kärtchen.
- Datenstrukturen:
- Array mit $2n$ Einträgen wobei jede Zahl von 0 bis $n-1$ genau 2 Mal vorkommt. (Wo welche Karte liegt)
- Array mit $2n$ Einträgen wobei jeder Eintrag (true) bereits offen oder (false) noch geschlossen ist. (Man könnte auch einfach -1 im ersten Array speichern)
Effizienzentes Mischeln
- Input: Array mit $k$ Einträgen
- Für $i = 0$ bis und mit $k-1$, wiederhole:
- Bestimme eine zufällige Position $p$ zwischen $i$ und $k-1$ (siehe z.B. https://www.w3schools.com/js/js_random.asp)
- Vertausche die Elemente an Position $i$ und $p$.
UI
- Variante einfach: Anodnung in Tabelle (und mit CSS die Grösse der td-Elemente festlegen)
- Variante responsive: CSS-Flex, siehe https://css-tricks.com/almanac/properties/f/flex-wrap/
- Variante mit je einem Buchstaben als Eintrag, oder Unicode Emojis
- Variante mit Bildern (ideal als svg, damit bliebig skaliert werden kann).
- Evtl. Animation beim Aufdecken (kann via CSS erledigt werden: https://www.w3schools.com/css/css3_animations.asp), oder «manuell» mit setTimeout. Mit CSS ist sogar eine Animation in 3D möglich.