| Wissen | Können | Projekt |
|---|
- Javascript als funktionsorientierte Sprache (ECMAScript)
- Gültigkeitsbereiche von Variablen
- Closure-Konzept
- Dynamische Typisierung von Variablen
- OOP mittels Prototypen
| - Beherrschung der grundlegenden Javascript Syntax
- Kontrollierter Umgang mit globalen und lokalen Variablen
- Verwendung von Objekten (assoziativen Arrays)
- Intuitives Anwenden von Vergleichsoperatoren
- Erstellung und Manipulation von Prototypen
| - Erstellung eines Sudoku-Spiel-Objekts zur Verwaltung
- Eigene "Klasse" für ein Sudoku-Feld, entsprechende Objekte im Sudoku-Spiel-Objekt
- Verknüpfung der Sudoku-Feld-Objekte mit dem entsprechenden Input-Feld
- Start-Knopf: Neues zufälliges Sudoku-Rätsel erzeugen (vorgegebene Zahlen dürfen nicht geändert werden)
|
Javascript Variablen
|
| - Erforschen Sie das Beispiel und erklären Sie:
- Warum ändert der Aufruf von global den globalen Wert x?
- Warum verändert a++ in der Funktion local die globale Variable x nicht?
- Warum verändert var x = 100; in der Funktion local die globale Variable x nicht?
- Ersetzen Sie var x = 100; durch x = 100;. Entspricht das Ergebnis Ihren Erwartungen?
|
Objects
Vergleichsoperatoren
OOP mit Javascript
Die übliche Verfahrensweise bei der Generierung eines Sudoku besteht aus zwei Schritten:
- Erzeugung eines vollständig mit Zufallszahlen ausgefüllten Sudokus, wobei die Sudoku-Regeln nicht verletzt werden
- Entfernung von Werten an zufälligen Positionen, solange das Sudoku eindeutig lösbar bleibt
Für Punkt 1 ist ein Backtracking Algorithmus notwendig. Wenn für ein Feld keine der neun Zahlen in Frage kommt, dann muss ein vorher bereits festgelegtes Feld noch einmal verändert werden.
Ein Sudoku ist eindeutig lösbar, wenn es zu jedem Zeitpunkt immer mindestens ein Feld gibt, dem nur eine einzige Zahl zugeordnet werden kann.
Beispiellösung WE1-P6.zip