Nim-Züge im Normalspiel
Wähle einen Gewinnzug im normalen Nim aus höchstens 128 Haufen mit null bis einer Milliarde Objekten.
def nim_move(piles):
if type(piles) not in (list, tuple) or len(piles) > 128 or any(type(v) is not int or not 0 <= v <= 10**9 for v in piles):
raise ValueError("nim.piles")
balance = 0
for pile in piles:
balance ^= pile
if balance == 0:
return None
for index, pile in enumerate(piles):
reduced = pile ^ balance
if reduced < pile:
return index, reducedProjekt
Prüfe leere und verlorene Stellungen, liefere bei xor null keinen Zug und lehne negative oder boolesche Haufengrößen ab.
Vor dem Anwenden prüfen
Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
Modelle
Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.
def nim_move(piles):
if type(piles) not in (list, tuple) or len(piles) > 128 or any(type(v) is not int or not 0 <= v <= 10**9 for v in piles):
raise ValueError("nim.piles")
balance = 0
for pile in piles:
balance ^= pile
if balance == 0:
return None
for index, pile in enumerate(piles):
reduced = pile ^ balance
if reduced < pile:
return index, reducedTragen Sie eine Regeländerung bis in die nutzende Anwendung
NimClover ist ein KI-Programmierarbeitsbereich für Windows zur Entwicklung von Software mit ausdrücklichen Regeln und Entscheidungen. Wählen Sie den Projektordner und beschreiben Sie die zu implementierende oder zu korrigierende Regel. Der verbundene Assistent kann den relevanten Quellcode untersuchen und einen Vorschlag besprechen; akzeptierte Eingaben und beobachtbare Ergebnisse bleiben im Gespräch für Ihre Prüfung verfügbar.
Das Beispiel nim.py kann eine Aufgabe zur Zugauswahl unter Normalspielregeln konkretisieren. Fragen Sie, wie die Anwendung einen Zug darstellt, was sie tut, wenn die Hilfsroutine keine Auswahl zurückgibt, und ob das aktive Regelwerk den Annahmen der Funktion entspricht. Untersuchen Sie mit diesen Fragen Ihr eigenes Projekt. So wird eine kleine Beispielfunktion zur Softwareintegrationsaufgabe, ohne zu behaupten, eine Spiel-Engine gehöre zum Arbeitsbereich.
Für die Wahl eines uneingeschränkten KI-Modells verbinden Sie ein verfügbares Modell über einen unterstützten OpenAI-kompatiblen oder Anthropic-Endpunkt. Geben Sie bei Bedarf Zugangsdaten an und prüfen Sie die tatsächlichen Fähigkeiten. Testen Sie nach Prüfung der Änderungsvorschläge sowohl einen zurückgegebenen Zug als auch den Pfad ohne Auswahl über deren Aufrufer. Prüfen Sie, ob Zustandsänderungen zur zurückgegebenen Darstellung passen. Das hilfreiche Ergebnis ist eine durch Prüfungen gestützte, stimmige Funktion Ihrer Anwendung statt eines isolierten Algorithmus, der die Oberfläche nie korrekt erreicht.
Fragen zur Integration regelbasierter Entscheidungen
Bedeutet keine Zugauswahl, dass es keine legalen Züge gibt?
Nicht unbedingt. Interpretieren Sie den Rückgabewert der Hilfsroutine gemäß ihrem Vertrag und dem aktuellen Spielzustand. Klären Sie, wie der aufrufende Code Strategie und Legalität unterscheidet, bevor eine fehlende Auswahl zu einer Meldung oder zum Ende der Interaktion führt.
Was sollte ich zum Regelwerk angeben?
Nennen Sie Siegbedingung und Variantenregeln, die gültige Entscheidungen beeinflussen. Das Beispiel setzt Normalspiel voraus. Eine andere Regel für den letzten Zug benötigt eigene Überlegungen und Prüfungen statt einer unveränderten Hilfsroutine mit neuer Oberflächenbeschriftung.
Wie sollte ich einen zurückgegebenen Zug testen?
Prüfen Sie, ob der angegebene Eintrag existiert, der neue Wert zulässig ist und der Aufrufer ihn wie vorgesehen anwendet. Berücksichtigen Sie den resultierenden Anwendungszustand. Ein gültiges Paar aus der Hilfsroutine belegt nicht, dass die Oberfläche den richtigen Eintrag aktualisiert.
Kann dieser Ablauf zu einem vollständigen Spiel erweitert werden?
Weitere Projektfunktionen können Sie in zusätzlichen abgegrenzten Aufgaben entwickeln. Definieren Sie Darstellung, Eingabeverarbeitung und Zustandsübergänge separat und testen Sie ihre Integration. Der Programmierarbeitsbereich und ein Strategiebeispiel belegen nicht, dass diese Funktionen bereits implementiert sind.
NimClover · Aktualisiert 2026-10-25