Tracks
/
Python
Python
/
Übungen
/
Minesweeper
Minesweeper

Minesweeper

Mittel

Einführung

Minesweeper ist ein beliebtes Spiel, bei dem du die Minen mithilfe von Zahlenhinweisen finden musst. Diese Hinweise zeigen an, wie viele Minen direkt (horizontal, vertikal oder diagonal) an ein Feld angrenzen.

Anleitung

Deine Aufgabe ist es, in einem fertigen Minesweeper-Spielfeld die Minenzahlen in die leeren Felder einzutragen. Das Spielfeld selbst ist ein Rechteck aus Feldern, die entweder leer (' ') oder eine Mine ('*') sind.

Für jedes leere Feld zählst du die Anzahl der Minen, die daran angrenzen (horizontal, vertikal und diagonal). Wenn das leere Feld keine angrenzenden Minen hat, lass es leer. Andernfalls ersetzt du es durch die Anzahl der angrenzenden Minen.

Zum Beispiel bekommst du vielleicht ein 5 x 4 großes Spielfeld wie dieses (die leeren Felder werden hier zur Anzeige auf dem Bildschirm mit dem Zeichen '·' dargestellt):

·*·*·
··*··
··*··
·····

Dein Code soll daraus dieses machen:

1*3*1
13*31
·2*2·
·111·

Ausnahmemeldungen

Manchmal ist es notwendig, eine Ausnahme auszulösen. Wenn du das tust, solltest du immer eine aussagekräftige Fehlermeldung angeben, die zeigt, woher der Fehler kommt. Das macht deinen Code lesbarer und hilft beim Debuggen erheblich. Wenn du weißt, dass die Fehlerquelle von einem bestimmten Typ ist, kannst du eine der eingebauten Fehlertypen auslösen, solltest aber trotzdem eine aussagekräftige Meldung angeben.

Diese Übung verlangt, dass du die raise-Anweisung verwendest, um einen ValueError zu „werfen“, wenn die Funktion board() fehlerhafte Eingaben erhält. Die Tests bestehen nur, wenn du sowohl raise als auch exception verwendest und eine Meldung dazu mitgibst.

Um einen ValueError mit einer Meldung auszulösen, schreibst du die Meldung als Argument an den exception-Typ:

# when the board receives malformed input
raise ValueError("The board is invalid with current input.")
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Python Exercism

Bereit, mit Minesweeper zu starten?

Melde dich bei Exercism an, um Python mit 17 Konzepte146 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.

Tauche tiefer in Minesweeper ein!

Wir schauen uns verschachtelte for-Schleifen an, den geschickten Einsatz von min/max zur Vereinfachung der Bereichsprüfung, funktionale Pipelines und die Verwendung zweidimensionaler Matrizen.