Die Herausforderung
Die Mathcad Community Challenge für November und Dezember 2025 basierte auf dem Spiel „Schiffe versenken“:
Kürzlich war ich in der Situation, einem 6- und einem 8-Jährigen das Brettspiel "Schiffe versenken" erklären zu müssen. (Kinder meiner Generation hatten Werbespots, die die Grundlagen des Spiels recht gut zu erklären schienen.) Während ich versuchte, ihnen das Konzept des Rasters und Suchalgorithmen zu erklären, fragte ich mich unweigerlich: „Wie könnte man das in Mathcad Prime umsetzen?“
Die Herausforderung dieses Monats, sollten Sie sie annehmen, ist relativ offen: Simulieren Sie verschiedene Aspekte des Spiels „Schiffe versenken“ in Mathcad. Hier sind einige Vorschläge:
- Schreiben Sie ein Programm, das die Schiffe auf dem Ozeangitter platziert. Die Schiffe müssen horizontal oder vertikal platziert werden, diagonale Platzierungen sind nicht zulässig. Die Schiffe dürfen sich nicht überlappen. Platzieren Sie die Schiffe zufällig oder nach einem optimierten Algorithmus?
- Alternativ können Sie auch erweiterte Eingabesteuerelemente verwenden, damit der Benutzer die Schiffe auf dem Ozeangitter platzieren kann.
- Zeigen Sie die Platzierung der Schiffe mithilfe der Plotting-Funktion an.
- Schreiben Sie einen Algorithmus für die Suche nach den Schiffen. Verwenden Sie etwas wie einen Zufallsweg? Eine Standard-Gittersuche? Ihren eigenen bevorzugten Algorithmus aus Ihrer Kindheit?
- Alternativ können Sie erweiterte Eingabesteuerelemente verwenden, damit der Benutzer seine eigenen Koordinaten eingeben kann. Verwenden Sie dieselben Steuerelemente, um dem Benutzer Feedback zu Treffern oder Fehlschlägen zu geben.
- Zeigen Sie die Treffer und Fehlschläge auf einem Diagramm oder einer Tabelle an.
- Können Sie Mathcad Prime so programmieren, dass es eine Reihe von Iterationen zum Platzieren und Aufspüren von Schiffen durchführt und dann Statistiken über die Anzahl der Schüsse auswertet, die zum Versenken der Flotte erforderlich sind?
Die Einsendungen
Zwei unserer treuen Teilnehmer haben Arbeitsblätter für die Challenge beigesteuert: Alan Stevens und Werner E.
Alans Arbeitsblätter
Alan war der Erste, und seine Beiträge sind immer interessant, da er die Express-Version von Mathcad Prime verwendet.
Alans erstes Arbeitsblatt enthält eine mit Nullen gefüllte 10 x 10-Matrix. Spieler A ersetzt verschiedene Elemente der Matrix durch die Zahl Eins, um die Position der Schiffe darzustellen. Ein XY-Diagramm zeigt dann die Position anhand von Punkten und ausgefüllten Kästchen an. Eine zweite 10 x 10-Matrix stellt die Schüsse von Spieler B dar. Ein ausgeblendeter Bereich enthält die Logik für die Registrierung von Treffern und Fehlschüssen. Mir gefällt die Verwendung von doppelten Summen, insbesondere für die Verfolgung der Gesamtzahl der Schüsse und Treffer. Ein zweites XY-Diagramm zeigt die Treffer und Fehlschüsse von Spieler B mit roten und schwarzen Quadraten. Es ist eine äußerst übersichtliche und prägnante Verwendung von Matrizen, Operatoren und Diagrammen.
Alans zweites Arbeitsblatt fügt die traditionelle Buchstaben- und Zahlennotation für das Schlachtschiff-Raster hinzu. Spieler A lokalisiert die Schiffe mit Rasternotation und Spieler B gibt seine Schüsse in einer von fünf Matrizen in traditioneller Rasternotation ein. Dies ist eine großartige schrittweise Verbesserung, um dem Gefühl des Brettspiels gerecht zu werden.
In Version 3 platziert der „Computer” (Mathcad) die Schiffe für Sie, indem er einen ausgeklügelten Vektor von „if”-Funktionen mit Zufallszahlen verwendet. Dadurch vermeiden Sie das inhärente Problem, „gegen sich selbst Schach zu spielen”.
Version 4 kehrt das Szenario um: Der Benutzer platziert die Schiffe und der „Computer” (Mathcad) gibt zufällige Schüsse ab, um die Flotte zu lokalisieren. Mir gefällt, wie das Arbeitsblatt die Gesamtzahl der erforderlichen Schüsse verfolgt und wie orangefarbene Punkte in den XY-Plot integriert wurden, um nicht angegriffene Positionen darzustellen.
Als ich mir die Gesamtzahl der Schüsse in Version 4 (84) ansah, fragte ich mich, wie viele Schüsse ein Computer durchschnittlich benötigen würde, um die Flotte zu versenken. Glücklicherweise hat Alan diese Frage in Version 5 mit einer Monte-Carlo-Simulation von 10.000 Versuchen beantwortet. Der Mittelwert liegt bei erstaunlichen 95,4!
Auch ohne die volle Funktionalität von Mathcad Prime ist dies eine außergewöhnlich unterhaltsame Reihe von Arbeitsblättern. Das macht mir Lust, meine Jagdfähigkeiten gegen den Computer zu testen.
Sehen Sie sich auf dem Mathcad-YouTube-Kanal an, wie David Newman die Versionen 3 und 4 von Alans Arbeitsblättern vorstellt, während er die Schiffe des Computers jagt:
Werners Arbeitsblätter
Wie immer hat Werner erstklassige Arbeitsblätter geliefert, die Sie begeistern werden.
Das erste ist ein elegantes einseitiges Dokument, dank zusammengefasster Bereiche und im Entwurfsmodus ausgeblendeter Informationen. Apropos, dieser „Cheat-Modus“ fasziniert mich. Werner nutzt ausgiebig die erweiterten Eingabesteuerungsfunktionen von Mathcad Prime 11, darunter Schieberegler, Schaltflächen und Textfelder.
Ich wollte fast gar nicht einen Blick auf den Code werfen. Das ist so ähnlich, wie wenn man einen großartigen Film sieht und so viel Spaß hat, dass man sich niemals die Hinter-den-Kulissen-Aufnahmen oder den Kommentar des Regisseurs ansehen möchte. Man möchte die Magie nicht zerstören. Ich habe jedoch einen Blick darauf geworfen, und es handelt sich um eine ganze Reihe von Programmen mit den erforderlichen „for“- und „if“-Konstrukten. Das größte Textfeld enthielt auch ziemlich viel JScript.
Das zweite Arbeitsblatt hat eine zusätzliche Schaltfläche für den ausführlichen Modus. Das gefiel mir. Hier wurde angezeigt, welches Schiff getroffen wurde. Es gibt auch ein cooles Feld, in dem die Anzahl der Treffer jedes Schiffes angezeigt wird. Wenn man eines versenkt, werden sowohl das Feedback-Textfeld als auch der Umriss des Schiffes auf dem Spielfeld umrandet. Das Feedback zum Spiel macht süchtig, wie eine Handy-App. Das ist und bleibt meine neue Lieblingsbeschäftigung, um mich von der Arbeit abzulenken.
Dave Martins sehr glücklicher Bestwert von 32 Treffern beim Spielen auf Werners zweitem Arbeitsblatt (verbose mode on).
David Newman hat auch ein Video für den Mathcad-YouTube-Kanal produziert, in dem er Werners verbose mode vorstellt:
Was können wir aus dem Spiel „Schiffe versenken“ in Mathcad Prime lernen?
Die sogenannten „Kinderspiele“ sind überraschend komplex. Wir bringen Kindern diese Spiele nicht nur bei, um sie zu beschäftigen, damit wir unsere Arbeit erledigen können, oder um ihren Charakter zu stärken, indem sie Geduld, Abwarten und Fairness lernen. Unabhängig davon, ob wir Erwachsenen uns der Vorteile bewusst sind, findet die Spieltheorie in vielen Bereichen des täglichen Lebens Anwendung, beispielsweise bei geschäftlichen Entscheidungen, Verhandlungen und der Konfliktlösung.
Vor der Herausforderung diskutierten David Newman und ich, ob es möglich wäre, ein Brettspiel in Mathcad Prime zu simulieren. Wieder einmal hat die Community unsere Vorstellungen davon, was mit diesem Tool für technische Berechnungen möglich ist, erweitert.
Sie sollten sich auf jeden Fall die Arbeitsblätter herunterladen und selbst spielen. Wenn Sie Mathcad Prime nicht haben, können Sie sich die Videos oben ansehen, um einen Eindruck von der Erfahrung zu bekommen, aber Sie können auch die 30-Tage-Testversion hier herunterladen.
Seien Sie 2026 dabei, wenn unsere erste Herausforderung von "internationalen Intrigen aus der Stadt der Lichter" inspiriert ist!
Bleiben Sie mit Mathcad Minute auf dem Laufenden!
Abonnieren Sie den Mathcad-Newsletter, um zu erfahren, wann neue Community-Herausforderungen online gehen, und vieles mehr!
Jetzt anmelden