Schreiben Sie ein Programm, das beim Blick auf einen Schachtisch sagen kann, ob es einen Scheck oder einen Schachmatt gibt.
Eingabe : Eine Schachtabelle in Textform, wobei die letzte Zeile der Eingabe der erste Rang ist (die Startzeile von Weiß).
Die Startposition in dieser Eingabe würde folgendermaßen aussehen (Leerzeichen ist ein leeres Quadrat, Großbuchstaben sind Weiß): Warum werden die Leerzeichen hier nicht angezeigt?
rnbqkbnr
pppppppp
PPPPPPPP
RNBQKBNR
Das Programm sollte je nach Situation eine oder mehrere der folgenden Angaben machen (natürlich ohne Anführungszeichen):
- "Der weiße König ist in Schach!" (Wenn Sie bereits Schachmatt haben, zeigen Sie dies nicht an!)
- "Der schwarze König ist in Schach!" (Wenn Sie bereits Schachmatt haben, zeigen Sie dies nicht an!)
- "Der weiße König ist in Schachmatt!"
- "Der schwarze König ist in Schachmatt!"
- "Weiß ist in einer Pattsituation!" (Es würde eine Pattsituation geben, wenn Weiß umziehen würde - optional )
- "Schwarz ist in einer Pattsituation!" (Es würde eine Pattsituation geben, wenn Schwarz sich bewegen würde - optional )
- "Beide Könige sind vorerst in Sicherheit." (wenn keiner der oben genannten Punkte zutrifft)
Die Eingabe ist garantiert korrekt und eine legale Schachposition (keine zwei Könige derselben Farbe, keine zwei Könige in Schach usw.).
Ergebnis:
Die Punktzahl ist die Anzahl der Charaktere, der niedrigste Gewinn, frühestens 10 Tage nach der ersten gültigen Antwort. Wenn die optionale Patt-Bewertung implementiert ist, wird die Größe um 20% verringert (in dieser Situation wird davon ausgegangen, dass kein Passant durchgeführt werden kann).
Antworten:
C 837-20% = 669,6 Zeichen
Basierend auf dieser Antwort . Dort finden Sie einige Erklärungen zur Implementierung.
Das Original ist ziemlich gut golfen, die Modifikationen nicht so sehr, also gibt es Raum für Verbesserungen.
Ich wäre auch nicht überrascht, Fehler zu finden, meine Qualitätssicherung war nicht sehr streng.
quelle