Python mit any () und all (), um zu überprüfen, ob eine Liste einen oder einen anderen Satz von Werten enthält

Mein Code ist für ein Tic Tac Toe-Spiel und die Überprüfung auf einen Ziehungszustand, aber ich denke, diese Frage könnte im Allgemeinen nützlicher sein.

Ich habe eine Liste, die das Board repräsentiert. Sie sieht folgendermaßen aus:

board = [1,2,3,4,5,6,7,8,9]

Wenn ein Spieler einen Zug macht, wird das int, auf dem er sich bewegt, durch seinen Marker ('x' oder 'o') ersetzt. Ich habe bereits Checks eingerichtet, um nach einem Gewinnstatus zu suchen. Was ich nicht tun kann, ist nach einem Unentschieden zu suchen Zustand, in dem keiner der Listenwerte ints ist, aber kein Gewinnzustand festgelegt wurde.

Den Code habe ich bisher:

if any(board) != playerOne or any(board) != playerTwo:
    print 'continue'
elif all(board) == playerOne or playerTwo:
    print 'Draw'

Die if-Anweisung funktioniert, die elif-Anweisung nicht. Ich denke, das Problem ist mein 'oder' -Operator. Ich möchte überprüfen, ob es sich bei jedem Element auf dem Board um einen playerOne-Marker oder einen playerTwo-Marker handelt Code:

elif all(board) == playerOne or all(board) == playerTwo:

Ich würde nachsehen, ob jeder Platz auf dem Brett Spieler Eins ist oder jeder Platz auf dem Brett Spieler Zwei ist, was nicht der Fall sein wird.

Wie überprüfe ich, ob das Board von einer Kombination aus playerOne-Markern und playerTwo-Markern belegt ist?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage