# How many Amazons on chessboard?

Queen is combination of Bishop and Rook and Amazon is combination of queen and knight.

The question is how many Amazons can place on a standard chessboard that non of them attack each other without any other pieces allowed?

Hint:

It's obvious that it should be a smaller number than 9. Also 8 is impossible too. Because all 8-Queen solutions has at least two queens with knight's move position. So is it possible to fit 7 Amazons?

• fwiw, the "formal" name for such a piece is an "amazon". Also, "rook", not "rock." – Dennis Meng Oct 13 '14 at 16:01
• I'm pretty sure the most is 6, but I have to step away for a bit. If no one comes forth with the full proof by the time I get back, I'll post it. – Dennis Meng Oct 13 '14 at 16:10
• @DennisMeng Yeah, i don't know why I missed that text but I agree. 6 solutions are easy to find. I, personally, would need to simulate to remove the chance of a 7. – kaine Oct 13 '14 at 16:22
• I can only manage 6 – warspyking Oct 13 '14 at 18:22

The answer is 6. I am definitely not the first to say that but my search just ended. The solution above is easy to find and contains 6 amazons. I had done this by hand but my program found the same (but rotated) solution.

In Excel I wrote the following Macro:

Sub Playz()

While Range("D2").Value < 7
X = Range("D1").Value + 1
C = Range("D2").Value
While checkz(X) And X < 64
X = X + 1
Wend
If X = 64 Then
Range("D1").Value = Range("C" + CStr(Range("D2").Value)).Value
Range("C" + CStr(Range("D2").Value)).Clear
Else
Range("C" + CStr(Range("D2").Value + 1)).Value = X
Range("D1").Value = X
End If
Wend
End Sub

Function checkz(ByVal N As Integer) As Boolean

X = N Mod 8
Y = (N - X) / 8

J = 0
While J < 64
If Range("B" + CStr(J + 1)).Value And J <> N Then
S = J Mod 8
T = (J - S) / 8
If X = S Or Y = T Or X + Y = S + T Or X - Y = S - T Then
checkz = True
Exit Function
End If
If Abs(X - S) = 2 And Abs(Y - T) = 1 Then
checkz = True
Exit Function
End If
If Abs(X - S) = 1 And Abs(Y - T) = 2 Then
checkz = True
Exit Function
End If
End If
J = J + 1
Wend
checkz = False
End Function


The b column contains a counter to identify which cells are filled and which aren't. Cell D2 counts the number of cells in column C. It is much more complicated than it needs to be but was programmed originally for a more difficult puzzle.

The code looks for the next free unattacked square. If it cannot find one, it removes the largest one so far, and tries to find a valid larger one than that. This is an efficient algorithm for searching for a way to arrange chess pieces as long as the removal of one piece from an acceptable arrangement still yields an acceptable arrangement (ignoring the target number of pieces on the board). It could not find a solution for seven as Cell D1 reached 63.