这是我第一次编码。我把它当做一个选修模块。我不得不给一个ai_player编程,让它从随机玩转到获胜,然后我就卡住了。任何建议都将不胜感激。游戏是连接4。我一直收到“对象没有属性”的错误。
import random
import time
def board():
for i in range(0, 8, 1):
for j in range(0, 10, 1):
board[i][j] = 0
return board
def move(board, valid_move):
start_time = time.time()
x = 0
while x == 0:
i = range(7, -1, -1)
j = range(0, 10, 1)
first_move = board[i][j]
board[7][4] = 1
if board[i-1][j] == 0: #above
first_move = [i, j]
x = 1
print " valid above"
return j
elif (board[i][j+1] == 0 and (i <= 7 and j <= 9)) or (board[i-1][j+1] == 0 and (i <= 7 and j <= 9)) or (board[i-1][j+1] == 0 and (i <= 7 and j <= 9)): #right
first_move = [i, (j+1)]
x = 1
print " valid right"
return (j+1)
elif board[i][j-1] == 0 or board[i-1][j-1] == 0 or board[i-1][j-1] == 0: #left
first_move = [i, (j-1)]
x = 1
print " valid left"
return (j-1)
else:
r = random.randint(0, 7)
c = random.randint(0, 9)
first_move = [r, c]
x = 1
print " random move"
return c
end_time = time.time() - start_time
print end_time
return first_move
File "F:/5. Fifth year/1st Semester/MPR 213 2016/Project 2016/attempts.py", line 20, in board
board[i][j] = 0
TypeError: 'function' object has no attribute '__getitem__'
发布于 2016-05-06 15:08:00
看起来您正在尝试创建一个名为board
的多维列表。但这并不是这样做的,您实际所做的是创建了一个名为board
的函数,然后尝试对该函数进行索引,由于它不是一个列表,因此失败了。
要创建board
,请使用类似于
board = [[0] * 10 for i in range(0, 8)]
https://stackoverflow.com/questions/37075176
复制相似问题