我正在編寫一個程序來玩連接四個Python,我不確定如何解決在某些區域拋出的「預期縮進塊」錯誤。任何時候我嘗試運行[row] [col]部分,都會引發錯誤。我使用的一些示例代碼,以幫助我發展我自己和這裏的我使用的是什麼:預計Python遊戲中的縮進塊
import random
def winner(board):
"""This function accepts the Connect 4 board as a parameter.
If there is no winner, the function will return the empty string "".
If the user has won, it will return 'X', and if the computer has
won it will return 'O'."""
# Check rows for winner
for row in range(6):
for col in range(3):
if (board[row][col] == board[row][col + 1] == board[row][col + 2] ==\
board[row][col + 3]) and (board[row][col] != " "):
return board[row][col]
# Check columns for winner
for col in range(6):
for row in range(3):
if (board[row][col] == board[row + 1][col] == board[row + 2][col] ==\
board[row + 3][col]) and (board[row][col] != " "):
return board[row][col]
# Check diagonal (top-left to bottom-right) for winner
for row in range(3):
for col in range(4):
if (board[row][col] == board[row + 1][col + 1] == board[row + 2][col + 2] ==\
board[row + 3][col + 3]) and (board[row][col] != " "):
return board[row][col]
# Check diagonal (bottom-left to top-right) for winner
for row in range(5, 2, -1):
for col in range(3):
if (board[row][col] == board[row - 1][col + 1] == board[row - 2][col + 2] ==\
board[row - 3][col + 3]) and (board[row][col] != " "):
return board[row][col]
# No winner: return the empty string
return ""
def display_board(board):
print " 1 2 3 4 5 6 7"
print "1: " + board[0][0] + " | " + board[0][1] + " | " + board[0][2] + " | " + board[0][3] + " | " + board[0][4] + " | " + board[0][5] + " | " + board[0][6] + " | " + board[0][7]
print " ---+---+---+---+---+---+---"
print "2: " + board[1][0] + " | " + board[1][1] + " | " + board[1][2] + " | " + board[1][3] + " | " + board[1][4] + " | " + board[1][5] + " | " + board [1][6] + " | " + board [1][7]
print " ---+---+---+---+---+---+---+"
print "3: " + board[2][0] + " | " + board[2][1] + " | " + board[2][2] + " | " + board[2][3] + " | " + board [2][4] + " | " + board [2][5] + " | " + board [2][6] + " | " + board [2][7]
print " ---+---+---+---+---+---+---+"
print "4: " + board[3][0] + " | " + board[3][1] + " | " + board[3][2] + " | " + board[3][3] + " | " + board [3][4] + " | " + board [3][5] + " | " + board [3][6] + " | " + board [3][7]
print " ---+---+---+---+---+---+---+"
print "5: " + board[4][0] + " | " + board[4][1] + " | " + board[4][2] + " | " + board[4][3] + " | " + board [4][4] + " | " + board [4][5] + " | " + board [4][6] + " | " + board [4][7]
print " ---+---+---+---+---+---+---+"
print "6: " + board[5][0] + " | " + board[5][1] + " | " + board[5][2] + " | " + board[5][3] + " | " + board [5][4] + " | " + board [5][5] + " | " + board [5][6] + " | " + board [5][7]
print
def make_user_move(board):
try:
valid_move = False
while not valid_move:
col = input("What col would you like to move to (1-7):")
for row in range (6,0,-1):
if (1 <= row <= 6) and (1 <= col <= 7) and (board[row-1][col-1] == " "):
board[row-1][col-1] = 'X'
valid_move = True
break
else:
print "Sorry, invalid square. Please try again!\n"
except NameError:
print "Only numbers are allowed."
except IndexError:
print "You can only select columns from (1-7), and rows from (1-6)."
def make_computer_move(board):
#代碼需要在這裏... valid_move =假 而不是valid_move: 行= random.randint (0,5) col = random.randint(0,6) 用於行範圍(5,0,-1): if board [row] [col] ==「」: board [row] [山口] = 「O」 valid_move =真 斷裂
def main():
free_cells = 42
users_turn = True
count = 1
ttt_board = [ [ " ", " ", " ", " ", " ", " "," ", " "], [ " ", " ", " ", " ", " "," ", " ", " "], [ " ", " ", " ", " ", " ", " ", " ", " "], [ " ", " ", " ", " ", " ", " ", " ", " "], [ " ", " ", " ", " ", " ", " ", " ", " "], [ " ", " ", " ", " ", " ", " ", " ", " "] ]
print "\nHALL OF FAME \n"
try:
hall_of_fame = open("HallOfFame.txt", 'r')
for name in hall_of_fame:
print str(count) + ".", name
print
count += 1
hall_of_fame.close()
except IOError:
print "No Human Has Ever Beat Me.. mwah-ha-ha-ha!\n"
choice = raw_input("Would you like to go first? (y or n): ")
if (choice == 'y' or choice=='Y'):
users_turn = True
elif (choice == 'n' or choice =='N') :
users_turn = False
else:
print 'invalid input'
while not winner(ttt_board) and (free_cells > 0):
display_board(ttt_board)
if users_turn:
make_user_move(ttt_board)
users_turn = not users_turn
else:
make_computer_move(ttt_board)
users_turn = not users_turn
free_cells -= 1
display_board(ttt_board)
if (winner(ttt_board) == 'X'):
print "You Won!"
print "Your name will now be added to the Hall of Fame!"
hall_of_fame = open("HallOfFame.txt", 'a')
name = raw_input("Enter your name: ")
hall_of_fame.write(name+ '\n')
print "Your name has been added to the Hall of Fame!"
hall_of_fame.close()
print "\nGAME OVER"
elif (winner(ttt_board) == 'O'):
print "The Computer Won!"
print "\nGAME OVER"
else:
print "Stalemate!"
print "\nGAME OVER \n"
#start the game
main()
縮進在Python中很重要。正如現在所寫,這是不正確的格式。 – davidism 2014-10-01 03:51:35
@davidism縮進是錯誤的,因爲這是問題的一部分:)。 (雖然他們可能寫了一些錯誤。) – W1ll1amvl 2014-10-01 04:39:03
@ W1ll1amvl我的基本觀點是,我們不是一個錯字糾正服務。事實上,這有一個特別的原因。如果有關於此代碼的任何有效問題,必須先糾正。 – davidism 2014-10-01 04:58:44