gz
import numpy as np # Initialisiere ein 10x10-Gitter mit leeren Feldern ('.' für leer) grid = np.array([['.' for _ in range(10)] for _ in range(10)], dtype=str) # Definiere die Wörter und ihre Positionen # Format: (Wort, Startzeile, Startspalte, Richtung ('H' für horizontal, 'V' für vertikal)) words = [ ("VERTRAUEN", 2, 1, 'H'), # Horizontal in Zeile 2, ab Spalte 1 ("WERTE", 4, 5, 'V'), # Vertikal in Spalte 5, ab Zeile 4 ("RUSSISCH", 6, 2, 'H'), # Horizontal in Zeile 6, ab Spalte 2 ("SCHMERZ", 3, 3, 'V'), # Vertikal in Spalte 3, ab Zeile 3 ("EMOTION", 5, 4, 'V'), # Vertikal in Spalte 4, ab Zeile 5 ("PROGRAMM", 7, 1, 'H'), # Horizontal in Zeile 7, ab Spalte 1 ("KONFLIKT", 1, 2, 'V'), # Vertikal in Spalte 2, ab Zeile 1 ] # Nummern für die Hinweise (wo Wörter beginnen) number_grid = np.array([[0 for _ in range(10)] for _ in range(10)], dtype=int) number_counter = 1 word_numbers = {} # Fülle das Gitter mit Wörtern und weise Nummern zu for word, row, col, direction in words: word_numbers[word] = number_counter number_grid[row][col] = number_counter number_counter += 1 for i, letter in enumerate(word): if direction == 'H': if grid[row][col + i] != '.' and grid[row][col + i] != letter: raise ValueError(f"Konflikt bei ({row}, {col + i}) mit Buchstabe {letter}") grid[row][col + i] = letter else: if grid[row + i][col] != '.' and grid[row + i][col] != letter: raise ValueError(f"Konflikt bei ({row + i}, {col}) mit Buchstabe {letter}") grid[row + i][col] = letter # Definiere Hinweise für die Wörter hints = { "VERTRAUEN": "Vollständiges Vertrauen in eine Person (9 Buchstaben)", "WERTE": "Menschliche Prinzipien, die bewundert werden (5 Buchstaben)", "RUSSISCH": "Herkunft des Vornamens, der Kritik auslöst (8 Buchstaben)", "SCHMERZ": "Gefühl durch einen gemeinsamen Namen (7 Buchstaben)", "EMOTION": "Tiefe Gefühle, die die Beziehung prägen (7 Buchstaben)", "PROGRAMM": "Leidenschaft der erzählenden Person (8 Buchstaben)", "KONFLIKT": "Missverständnis, das die Beziehung belastet (8 Buchstaben)", } # Funktion zum Drucken des Gitters def print_grid(grid, number_grid, show_letters=True): print(" ", end=" ") for j in range(10): print(f"{j:2}", end=" ") print() for i in range(10): print(f"{i:2}", end=" ") for j in range(10): if number_grid[i][j] != 0: print(f"{number_grid[i][j]:2}", end=" ") elif show_letters and grid[i][j] != '.': print(f"{grid[i][j]:2}", end=" ") else: print(" . ", end="") print() # Drucke die Lösung print("Lösung des Kreuzworträtsels:") print_grid(grid, number_grid, show_letters=True) # Drucke das leere Rätsel mit Nummern print("\nKreuzworträtsel zum Lösen:") print_grid(grid, number_grid, show_letters=False) # Drucke die Hinweise print("\nHinweise:") print("Horizontal:") for word, row, col, direction in words: if direction == 'H': print(f"{word_numbers[word]}. {hints[word]} ({row},{col})") print("Vertikal:") for word, row, col, direction in words: if direction == 'V': print(f"{word_numbers[word]}. {hints[word]} ({row},{col})")
Kommentare
Kommentar veröffentlichen