回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在创建一个tictactoe游戏,有些代码不会在if语句中执行。你知道吗</p>
<p>整个代码在这里:</p>
<pre><code>import random
BoardValues = [" ", " ", " ", " ", " ", " ", " ", " ", " "]
BoardValuesToWin = [0, 0, 0, 0, 0, 0, 0, 0, 0]
player1Is_X = True
player1Score = 0
player2Score = 0
switchToTurnOfO = False
def playerSymbol():
global player1
player1 = ""
while not (player1 == "X" or player1 == "O"):
player1 = input("Choose a side, it must be \"O\" or \"X\"").upper().replace(" ", "")
if player1 == "X":
player1Is_X = True
playerName()
elif player1 == "O":
player1Is_X = False
playerName()
def playerName():
global player1Name
global player2Name
player1Name = ""
player2Name = ""
print(f"Player 1 defined as {player1}")
player1Name = input("Player 1, please specify your name")
player2Name = input("Your turn to specify your name, Player 2")
displayBoard()
def displayBoard():
print(f"\n{player1Name}: {player1Score}\t {player2Name}: {player2Score} ")
print(f" | | ")
print(f" {BoardValues[0]} | {BoardValues[1]} | {BoardValues[2]} ")
print(f" | | ")
print(f"-------|-------|-------")
print(f" | | ")
print(f" {BoardValues[3]} | {BoardValues[4]} | {BoardValues[5]} ")
print(f" | | ")
print(f"-------|-------|-------")
print(f" | | ")
print(f" {BoardValues[6]} | {BoardValues[7]} | {BoardValues[8]} ")
print(f" | | ")
starterPlayer()
def starterPlayer():
randomStart = random.randint(0, 1)
starter = "xStarts" if randomStart == 0 else "oStarts"
if starter == "xStarts":
switchToTurnOfO = False
gameStartsWithX(switchToTurnOfO)
else:
switchToTurnOfO = True
gameStartsWithO(switchToTurnOfO)
def gameStartsWithX(switchToTurnOfO):
position = 0
if player1Is_X == True:
if switchToTurnOfO == False:
if (sum((BoardValuesToWin[0], BoardValuesToWin[1], BoardValuesToWin[2])) and sum(
(BoardValuesToWin[3], BoardValuesToWin[4], BoardValuesToWin[5])) and sum(
(BoardValuesToWin[6], BoardValuesToWin[7], BoardValuesToWin[8])) and sum(
(BoardValuesToWin[0], BoardValuesToWin[3], BoardValuesToWin[6])) and sum(
(BoardValuesToWin[1], BoardValuesToWin[4], BoardValuesToWin[7])) and sum(
(BoardValuesToWin[2], BoardValuesToWin[5], BoardValuesToWin[8]))) != 300 or -300:
position = int(input("Take a look at the NUMPAD and choose a number for the position of your marker!"))
BoardValues[position] = "X"
BoardValuesToWin[position] += 100
switchToTurnOfO = False
displayBoardAfter_X_Played()
else:
pass
def gameStartsWithO(switchToTurnOfO):
position = 0
if player1Is_X == False:
if switchToTurnOfO == False:
if (sum((BoardValuesToWin[0], BoardValuesToWin[1], BoardValuesToWin[2])) and sum(
(BoardValuesToWin[3], BoardValuesToWin[4], BoardValuesToWin[5])) and sum(
(BoardValuesToWin[6], BoardValuesToWin[7], BoardValuesToWin[8])) and sum(
(BoardValuesToWin[0], BoardValuesToWin[3], BoardValuesToWin[6])) and sum(
(BoardValuesToWin[1], BoardValuesToWin[4], BoardValuesToWin[7])) and sum(
(BoardValuesToWin[2], BoardValuesToWin[5], BoardValuesToWin[8]))) != 300 or -300:
position = int(input("Take a look at the NUMPAD and choose a number for the position of your marker!"))
BoardValues[position] = "O"
BoardValuesToWin[position] -= 100
switchToTurnOfO = True
displayBoardAfter_O_Played()
else:
pass
def displayBoardAfter_X_Played():
print(f"\n{player1Name}: {player1Score}\t {player2Name}: {player2Score} ")
print(f" | | ")
print(f" {BoardValues[0]} | {BoardValues[1]} | {BoardValues[2]} ")
print(f" | | ")
print(f"-------|-------|-------")
print(f" | | ")
print(f" {BoardValues[3]} | {BoardValues[4]} | {BoardValues[5]} ")
print(f" | | ")
print(f"-------|-------|-------")
print(f" | | ")
print(f" {BoardValues[6]} | {BoardValues[7]} | {BoardValues[8]} ")
print(f" | | ")
gameStartsWithO(switchToTurnOfO)
def displayBoardAfter_O_Played():
print(f"\n{player1Name}: {player1Score}\t {player2Name}: {player2Score} ")
print(f" | | ")
print(f" {BoardValues[0]} | {BoardValues[1]} | {BoardValues[2]} ")
print(f" | | ")
print(f"-------|-------|-------")
print(f" | | ")
print(f" {BoardValues[3]} | {BoardValues[4]} | {BoardValues[5]} ")
print(f" | | ")
print(f"-------|-------|-------")
print(f" | | ")
print(f" {BoardValues[6]} | {BoardValues[7]} | {BoardValues[8]} ")
print(f" | | ")
gameStartsWithX(switchToTurnOfO)
playerSymbol()
</code></pre>
<p>当它到达<code>def gameStartsWithX(switchToTurnOfO):</code>函数时,它有时执行输入,有时不执行,但是当我在那里写<code>print("something)</code>时,即使在输入之后,它每次都执行,即使输入没有执行</p>
<p>我真的不知道有什么问题。你知道吗</p>
<p>提前谢谢。你知道吗</p>