Ein 8x8-Schachbrett soll durch zwei verschiedene Werte dargestellt werden, wobei ein Wert ein leeres Quadrat und der andere eine Dame ist. In den folgenden Beispielen verwende ich 0en als leere Felder und 1en als Damen. Beispielsweise:
ist gegeben durch
1 0 1 1 1 0 0 0
1 0 1 0 1 0 1 1
1 0 1 0 1 1 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0
0 1 0 0 0 1 1 1
0 1 1 1 0 1 0 1
Betrachten Sie die Anzahl der angreifenden Königinnenpaare, die mindestens ein Quadrat entfernt sind (zur Erinnerung: Königinnen greifen orthogonal und diagonal an). Im obigen Beispiel zeigt das folgende unglaubliche hässliche Diagramm alle diese Paare als Pfeile.
Es wurden oben 43 Paare gefunden, die den folgenden Testfall ergeben:
Input:
1 0 1 1 1 0 0 0
1 0 1 0 1 0 1 1
1 0 1 0 1 1 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0
0 1 0 0 0 1 1 1
0 1 1 1 0 1 0 1
Output: 43
Herausforderung
Schreiben Sie ein Programm, das bei einem Board-Status, der durch zwei unterschiedliche Werte dargestellt wird, die Anzahl der Königinnenpaare ausgibt, die sich gegenseitig mit mindestens einem Quadrat dazwischen angreifen.
- Sie können in einem beliebigen Format eingeben, das am bequemsten ist und zwei Werte zur Darstellung der leeren Quadrate und Damen verwendet, z. B. eine Zeichenfolge von 64 "." S für leere Quadrate und "Q" s für Damen in Zeilen von unten nach oben (8x8) Matrix von Booleschen Werten, eine Liste mit ganzen Zahlen 0 und 1 usw., sofern dies in Ihrer Lösung erläutert wird
- Die Ausgabe ist eine Ganzzahl
- Es gelten Standard-E / A-Methoden und Standard-Regelungslücken sind verboten
- Dies ist Codegolf, also gewinnt die kürzeste Antwort in Bytes
Testfälle:
Verwenden des 0- und 1-Formats, wobei 0 leere Felder und 1 Damen sind:
Input:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Output: 0
Input:
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 0
Input:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Output: 1
Input:
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0
0 0 0 0 1 0 1 0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0
0 0 0 0 0 0 0 0
Output: 10
Input:
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 4
Input:
1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 11