Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • eltschib/mathe-skribbl
1 result
Show changes
Commits on Source (2)
# Mathe-Skribbl
Lernspiel mit Mathe-Fachbegriffen aus den Modulen der ersten paar Semester. Ursprünglich als eine bloße [Liste von Wörtern](https://gitlab.informatik.hu-berlin.de/eltschib/mathe-skribbl/-/blob/cbc662b826650842fa3f4bc29c48cad95c5716fb/Skribbl.md) zur Verwendung in [skribbl.io](https://skribbl.io) entstanden hat sich das ganze inzwischen zu einem eigenen Programm entwickelt, unter anderem um die Limitationen hinsichtlich der Länge und Anzahl von Wörtern des Originals zu umgehen.
Die aktuelle Liste mit allen Begriffen und deren Definitionen/Beschreibungen kann im JSON-Format [hier](./client/Skribbl.json) eingesehen werden, oder hübsch formatiert unter `/docs/Begriffe.html` wenn bereits ein lokaler Server läuft.
## Setup & lokale Server
Zum Ausführen des Projekts werden zwei Dinge benötigt: ein beliebiger, simpler Http-Server zum Hosten der Dateien im [client](./client)-Ordner, z.B. via php oder Python, und der Signaling-Server `signalingServer.jar`. Unter Windows können diese mit den Dateien `httpServer.bat` und `signalingServer.bat` direkt gestartet werden, anschließend sollte das Spiel unter `localhost:8080` erreichbar sein.
Auf Rechnern mit [Windows Terminal](https://www.microsoft.com/de-de/p/windows-terminal/9n0dx20hk701) kann alternativ auch einfach `terminal.bat` ausgeführt werden; diese öffnet beide Server zusammen mit Git Bash in einem Fenster.
Zum Entwickeln empfiehlt es sich, VS Code mit dem hier enthaltenen Workspace `vs-workspace.code-workspace` zu benutzen; Grund dafür sind die hervorragenden Type-Checking-Funktionen von VS Code, die allerdings standardmäßig nicht alle aktiviert sind (z.B. werden mit den Standardeinstellungen nur gerade geöffnete Dateien überprüft, nicht das gesamte Projekt). Der Workspace `vs-workspace.code-workspace` ist daher entsprechend konfiguriert und enthält zudem Einstellungen für zwei ebenfalls zu empfehlende Erweiterungen, [Todo-Tree](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree) und [innerHTML syntax highlighting](https://marketplace.visualstudio.com/items?itemName=nicolasparada.innerhtml). Beide werden beim ersten Öffnen des Workspaces auch automatisch zur Installation vorgeschlagen, müssen also nicht manuell heruntergeladen werden.
## Aufbau & Netzwerkkrams
Das Projekt gliedert sich zunächst in zwei ungleich große Teile: einen in Javascript, HTML und CSS geschriebenen Client und einen in Java geschriebenen Signaling-Server.
Letzterer dient lediglich dazu, die Spiel-IDs zu verwalten sowie die ursprüngliche Verbindung zwischen dem Host und den Spielern herzustellen; sämtliche weitere Kommunikation läuft dann via [WebRTC](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API) direkt zwischen den beteiligten Browsern ab, um den Server so wenig wie möglich zu belasten.
Gehostet wird das Spiel daher tatsächlich im Browser des Spielers, der die jeweilige Lobby erstellt hat; dazu wird bei ihm eine Instanz der [SkribblServer](./client/logic/SkribblServer.js)-Klasse erstellt, die mit dem Signaling-Server über die gesamte Dauer des Spiels per WebSocket verbunden bleibt. Möchte ein anderer Spieler dem Spiel beitreten kann er so mit dem Signaling-Server als Mittelmann alle notwendigen Informationen zum Erstellen einer WebRTC-Verbindung zwischen den beiden Browsern austauschen, welche daraufhin bei ihm von der [SkribblClient](./client/logic/SkribblClient.js)-Klasse genutzt werden kann um mit dem Host des Spiels zu kommunizieren. Im Browser des Hosts wird ebenfalls eine Instanz der SkribblClient-Klasse erstellt, die allerdings direkt über Javascript statt über eine Netzwerkverbindung mit dem Server verbunden ist.
Geschrieben ist das ganze bis auf den Signaling-Server in modernem Javascript mit JSDoc-Kommentaren, und im Fall der Benutzeroberfläche in Form von Web Components wie `<skribbl-menu>`, `<skribbl-lobby>` und `<skribbl-canvas>`. Für Leute mit bisher wenig Erfahrung im Umgang mit diesen Sprachen/APIs empfehlen sich zur Einführung die folgenden Artikel:
* [JSDoc Type-Checking](https://medium.com/@trukrs/type-safe-javascript-with-jsdoc-7a2a63209b76) (die Abschnitte zur Einrichtung und Konfiguration sind hier nicht weiter wichtig; das eigentliche Type-Checking an sich ist dort aber glaube ich ganz gut erklärt)
* [Javascript-Module](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules)
* [Javascript-Klassen](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes)
* [Custom Elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements)
* [Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM)
## Bibliotheken & Copyright
Der gesamte Quelltext sowie alle in diesem Repository enthaltenen Grafiken sind unter der [MIT License](./LICENSE) lizensiert - sowohl unserer eigener Code, als auch die beiden von uns genutzten Bibliotheken, [KaTeX](https://github.com/KaTeX/KaTeX) und [Java-Websocket](https://github.com/TooTallNate/Java-WebSocket).
\ No newline at end of file
# Mathe-Skribbl
1. [Grundlagen](#grundlagen)
- [Gruppen, Ringe und Körper](#gruppen-ringe-körper)
- [Geometrie](#geometrie)
- [Permutationen](#permutationen)
2. [Analysis](#analysis)
3. [Lineare Algebra](#lineare-algebra)
# Grundlagen:
Aussagenlogik, Aussage, Wahrheitswert, wahre Aussage, falsche Aussage, Tautologie, Widerspruch,
Junktor, genau dann wenn, äquivalent, folgt aus, und, oder, entweder oder, nicht, Negation, De Morgansche Regeln, Idempotenz,
Prädikatenlogik, Quantor, Existenzquantor, Allquantor,
Beweis, direkter Beweis, indirekter Beweis, Beweis durch Widerspruch, Kontraposition, Fallunterscheidung, Umkehrung, Beweisschritt,
Induktion, vollständige Induktion, induktiv, Induktionsschritt, Induktionsanfang, Induktionsvorraussetzung,
Axiom, axiomatisch, Folgerung, Lemma, Satz, Korollar, Implikation, Behauptung, Notation, Definition, Konvention, Struktur, Ansatz, Bedingung,
eindeutig, hinreichend, notwendig, wohldefiniert, repräsentantenunabhängig, trivial, nichttrivial, intrinsisch, redundant, sukzessive,
Kriterium, hinreichendes Kriterium, Exkurs, allgemein, spezifisch, ausklammern,
punktweise, komponentenweise, repräsentantenweise, paarweise, analog, Existenz, Konstruktion, konstruieren, induzieren, kanonisch, beliebig,
alternativ, alternativer Beweis, implizit, explizit, rekursiv, kompatibel, orientiert, formal, präzise, heuristisch, Heuristik, abstrakt, konkret,
Parametrisierung, Maßstab, Eigenschaft, ändern, Änderung, Index, Indices, Variable, Konstante, variabel, konstant,
gleich, verschieden, paarweise verschieden,
Mengenlehre, Menge, Familie, Tupel, Element, leere Menge, Teilmenge, echte Teilmenge, unechte Teilmenge,
Durchschnitt, Schnittmenge, Vereinigung, disjunkte Vereinigung, disjunkt,
Differenzmenge, Komplement, Produktmenge, Potenzmenge, externe disjunkte Vereinigung,
Abbildung, Funktion, Zuordnung, Bild, Urbild, Faser, Kern, Einschränkung, Definitionsbereich, Zielbereich,
surjektiv, injektiv, bijektiv, Bijektion, Schubfachprinzip,
Verkettung, Komposition, Identitätsfunktion, Umkehrfunktion, Auswahlaxiom,
Relation, binäre Relation, Äquivalenzrelation, kongruent, Kongruenz, ähnlich, teilbar, modulo, Restklasse, Parität, Ziffer,
Äquivalenzklasse, Repräsentant, Repräsentantensystem, Quotient,
Ordnungsrelation, partielle Ordnung, totale Ordnung, vergleichbar, Vergleichbarkeit,
größtes Element, maximales Element, Wohlordnung,
kommutativ, assoziativ, distributiv, Kommutativität, Assoziativität, Distributivität, Kommutativgesetz, Assoziativgesetz, Distributivgesetz,
reflexiv, symmetrisch, transitiv, additiv, Reflexivität, Symmetrie, Antisymmetrie, Transitivität, Additivität, Multiplikativität,
alternierend,
natürlich, natürliche Zahl, natürliche Zahlen, Primzahl, ganze Zahl, ganze Zahlen,
Bruch, rational, rationale Zahlen, irrational, irrationale Zahlen, reell, reelle Zahlen,
komplex, imaginär, komplexe Zahlen, Realteil, Imaginärteil, positiv, negativ, Vorzeichen,
Operation, Addition, Subtraktion, Multiplikation, Linksmultiplikation, Rechtsmultiplikation, Division, Wurzel, Potenz, Exponent, Basis, Fakultät, Binomialkoeffizient,
## Gruppen, Ringe & Körper:
Gruppentheorie, Verknüpfung, Halbgruppe, abelsch, linksneutral, rechtsneutral, neutrales Element, Monoid,
Gruppe, linksinvers, rechtsinvers, invers, Inverses, abelsche Gruppe, kommutative Gruppe, abelsche Halbgruppe,
Untergruppe, triviale Untergruppe, Ordnung von Gruppen, Satz von Lagrange, zyklische Untergruppe, zyklisch,
Homomorphismus, Monomorphismus, Epimorphismus, Isomorphismus, Endomorphismus, Automorphismus,
isomorph, Gruppenhomomorphismus, Ringhomomorphismus,
Diedergruppe, kommutieren, kommutatives Diagramm, Diagramm, Quotientenabbildung, Quotientenring, Konjugation, normale Untergruppe, Normalteiler,
Ring, Null, Eins, Nullelement, Einselement, Nullring, Einheitengruppe, Körper, Körperaxiome, endlicher Körper,
Teilring, Teilkörper, Charakteristik, Integritätsring, kürzen, Bézout-Identität, Division mit Rest, Euklidischer Algorithmus,
Euklidischer Ring, Gradfunktion, Polynom, Koeffizient, Grad, Monom, Polynomring, Polynomfunktion, Nullpolynom, Nullfunktion, Polynomdivision,
## Geometrie
Gerade, Ebene, Ursprung, Kreis, Quadrat, Einheitskreis, Einheitsquadrat, Parallelogramm, parallel, Rechteck,
Länge, Seitenlänge, Fläche, Flächeninhalt, orientierte Fläche,
Drehung, Spiegelung, Achse, Scherung, Winkel, Cavalieri-Prinzip,
Raum, Volumen, orientiertes Volumen, Parallelotop, Einheitswürfel,
## Permutationen
Permutation, symmetrische Gruppe, Vertauschung, Transposition, Fehlstand, Signum, gerade Permutation, ungerade Permutation, alternierende Gruppe,
Zykel, disjunkte Zykel,
# Analysis:
angeordneter Körper, Intervall, abgeschlossenes Intervall, offenes Intervall, halboffenes Intervall,
Betrag, Positivität, Dreiecksungleichung, Vollständigkeitsaxiom, Dedekindscher Schnitt, Schnittzahl,
beschränkt, von oben beschränkt, von unten beschränkt, obere Schranke, untere Schranke,
Supremum, Infimum, Maximum, Minimum, Archimedisches Axiom, Intervallschachtelung,
abzählbar, überabzählbar, endlich, unendlich, Mächtigkeit, Kontinuumshypothese,
Binomischer Satz, Bernoullische Ungleichung, Geometrische Summe, komplexes Konjugat,
Skalarprodukt, Cauchy–Schwarz-Ungleichung,
metrischer Raum, Metrik, Symmetrie, Standardmetrik, Mannheimer-Metrik, französische Eisenbahnmetrik, diskrete Metrik,
induzierte Metrik, Produktmetrik, kartesisches Produkt, isometrisch, Isometrie,
Kugel, Inneres, innerer Punkt, Abschluss, Rand, Randpunkt, offen, abgeschlossen, Häufungspunkt,
isolierter Punkt, dicht, Umgebung,
Folge, konvergieren, konvergent, Grenzwert, divergieren, divergent, uneigentlich konvergent, bestimmt divergent,
Teilfolge, Nullfolge, Satz von Bolzano-Weierstraß, monoton wachsend, monoton fallend, monoton, Monotonie, Monotonieverhalten,
Limes, Limes Superior, Limes Inferior, Eulerzahl, Cauchy-Folge, vollständig, Vervollständigung,
folgenkompakt, total beschränkt, offene Überdeckung, Teilüberdeckung, endliche Teilüberdeckung, kompakt,
Satz von Heine-Borel, Topologie, topologischer Raum, zusammenhängend, Zusammenhangskomponente,
Norm, euklidische Metrik, euklidische Norm, Supremum-Norm, äquivalente Normen,
normiert, Normierung, normierter Vektorraum, Banachraum, Hilbertraum,
Reihe, Reihenglieder, Partialsumme, Partialsummenfolge, absolut-konvergent, geometrische Reihe, harmonische Reihe,
Cauchy-Kriterium, Majorantenkriterium, Wurzelkriterium, Quotientenkriterium, Abel-Dirichlet-Kriterium,
alternierende Reihe, Leibnitz-Kriterium, Leibnitz-Reihe, Fehlerabschätzung, Cauchy-Verdichtungskriterium,
Cauchy-Produkt, Umordnung, Umordnungssatz, Riemannscher Umordnungssatz, Potenzreihe, Konvergenzradius,
Exponentialfunktion, exp, Logarithmusfunktion, natürlicher Logarithmus, ln, log, Potenzgesetze,
linksseitiger Grenzwert, rechtsseitiger Grenzwert, stetig, folgenstetig, unstetig,
Unstetigkeitsstelle, hebbare Unstetigkeitsstelle, Sprungstelle, Sprung, Unstetigkeit zweiter Art,
rationale Funktion, gleichmäßig stetig, lipschitzstetig, Lipschitz-Konstante,
Zwischenwertsatz, bogenzusammenhängend, wegzusammenhängend, Wegzusammenhangskomponente, Weg,
Strecke, Verbindungsstrecke, konvex, sternförmig, topologischer Kamm, Satz von Weierstraß, Satz von Heine,
Homöomorphismus, homöomorph, stetige Umkehrfunktion, kontrahierend, Kontraktion, Fixpunkt, Banachscher Fixpunktsatz, Fixpunktiteration,
punktweise konvergent, Grenzfunktion, gleichmäßig konvergent, gleichmäßige Konvergenz, Grenzwert-Vertauschbarkeit,
Funktionenreihe, Weierstraß-Majorantenkriterium, Potenzreihen-Identitätssatz,
trigonometrische Funktionen, Sinus, Cosinus, sin, cos, gerade Funktion, ungerade Funktion,
Eulersche Formel, Additionstheoreme, Differenzformeln, Nullstelle, Pi, periodisch, Periode,
Tangens, Cotangens, tan, cot, Arcussinus, arcsin, Zweig, Arcuscosinus, arccos, Arcustangens, arctan,
Arcuscotangens, arccot,
Hyperbelfunktionen, Sinus hyperbolicus, sinh, Cosinus hyperbolicus, cosh, Tangens hyperbolicus, tanh,
Cotangenshyperbolicus, coth, Hyperbel, Seilkurve, Areasinus hyperbolicus, arsinh,
Areacosinus hyperbolicus, arcosh, Areatangens hyperbolicus, artanh, Areacotangens hyperbolicus, arcoth,
Fundamentalsatz der Algebra, Polynom-Zerlegungssatz, algebraische Vielfachheit,
Approximationssätze, approximieren, Weierstraß-Approximationssatz, Bernsteinpolynom,
Satz von Stone-Weierstraß, trigonometrisches Polynom,
Differentialrechnung, lokales Änderungsverhalten, differenzierbar, Ableitung, Sekante, Tangente, in erster Näherung, Differenzenquotient,
Produktregel, Quotientenregel, Kettenregel, erste Ableitung, zweite Ableitung, dritte Ableitung, stetig differenzierbar, glatt,
lokales Minimum, lokales Maximum, Satz von Rolle,
Mittelwertsatz von Cauchy, Mittelwertsatz von Lagrange, MWS, Differentialgleichung, DGL,
isoliertes lokales Minimum, isoliertes lokales Maximum,
konkav, konvex, konvexe Funktion, konkave Funktion, Sekantensteigung, lokal lipschitzstetig, Wendepunkt, Mittelwertsatz für Vektoren,
## Analysis, coming soon
erste Regel von L'Hospital, zweite Regel von L'Hospital,
Zentrum, Konvergenzintervall, Abelscher Grenzwertsatz, Leibnizformel, Machinsche Formel,
Landau-Symbole, reell-analytisch, entwickelbar, Taylorentwicklung, Taylorreihe, Satz von Borel, Taylorpolynom,
Schmiegparabel, Restglied, Lagrange-Form des Restgliedes, Cauchy-Form des Restgliedes, Binomialreihe,
lokaler Extremwert,
# Lineare Algebra:
Lineare Algebra, Vektorraum, Vektor, Skalar, Linearkombination, Nullvektor, Nullraum, Standard-Vektorraum,
Zeilenvektor, Spaltenvektor, Skalarmultiplikation,
Untervektorraum, linearer Unterraum, Teilraum, Linearkombination, Aufspann, lineare Hülle,
Erzeugendensystem, endlich erzeugt, linear abhängig, linear unabhängig,
Basis, Standard-Basis, Basisvektoren, Standard-Basisvektoren, Kette, Zorns Lemma, Basisergänzungssatz, Basisaustauschsatz,
lineares Gleichungssystem, LGS, homogenes LGS, inhomogenes LGS, homogen, inhomogen, Lösungsmenge, lösbar, nicht lösbar, Lösung,
Dimension, endlichdimensional, Dimensionsformel, externe direkte Summe, interne Summe, interne direkte Summe, direkt,
lineare Abbildung, Vektorraumhomomorphismus, linear, Linearität, affin-linear, affin-lineare Abbildung, Projektion, Projektionsabbildung, Inklusion,
Linearitätskriterium, Struktursatz, Homomorphismenraum, Endomorphismenring, Algebra, Unteralgebra, Endomorphismenalgebra, Matrixalgebra,
Kovariante, Kontravariante, Linearform, Dualraum, Dualform, duale Abbildung,
Matrix, Zeile, Spalte, Zeilenindex, Spaltenindex, Abbildungsmatrix, Matrixprodukt,
Nullmatrix, Einheitsmatrix, Drehmatrix, Dreiecksmatrix, obere Dreiecksmatrix, untere Dreiecksmatrix,
Blockmatrix, Elementarmatrix, Kronecker-Delta,
duale Basis, Bidualität, Transponierte Matrix, transponieren,
affiner Unterraum, Spaltenrang, Rang, inverse Matrix, invertierbar, invertierbare Matrix, allgemeine lineare Gruppe,
Quotientenraum, Homomorphiesatz, Isomorphiesätze,
Sequenz, exakt, exakte Sequenz, kurze exakte Sequenz, Cokern, duale Sequenz,
Basiswechsel, Basiswechselmatrix, Transformationsformel, Blockmatrix, äquivalente Matrizen, ähnliche Matrizen,
Gauß-Algorithmus, Zeilenstufenform, reduzierte Zeilenstufenform, elementare Umformungen, elementare Transformationen, Zeilenumformungen, Spaltenumformungen,
elementare Umformung vom Typ 1, elementare Umformung vom Typ 2, elementare Umformung vom Typ 3, elementare Umformung vom Typ 4,
Koeffizientenmatrix, Kodimension,
Satz von Skolem-Noether, innerer Automorphismus,
Determinante, multilinear, Multilinearität, multilineare Abbildung, Multilinearform,
alternierende Abbildung, alternierende Multilinearform, Determinantenfunktion,
Blockdreiecksmatrix, Leibniz-Formel, Polynominterpolation, Interpolationsproblem, Vandermonde-Matrix, Vandermonde-Determinante,
Laplacescher Entwicklungssatz, komplementäre Matrix, Cramersche Formel, spezielle lineare Gruppe,
Diagonalmatrix, diagonalisierbar, Diagonaleintrag, Eigenwert, Eigenvektor, Eigenraum,
charakteristisches Polynom, Spur, invariant, Konjugationsinvarianz,
Linearfaktor, Nullstellenordnung, reelle Nullstelle, komplexe Nullstelle,
algebraisch abgeschlossen, algebraischer Abschluss, algebraische Zahlen, transzendent,
geometrische Vielfachheit,