0
我正在研究python中的簡單掃雷遊戲,並且試圖創建一個將地雷插入空板的函數。Python:在隨機索引中更改列表元素
注意,板是在列表中的一個列表的形式,像這樣:
[[col, col, col...],[col,col,col...],[...],[...]...]
我的功能看起來是這樣的:
def insert_mines(NUM_MINES):
for mine in range(NUM_MINES):
rand_row = randint(0, NUM_ROWS - 1)
rand_col = randint(0, NUM_COLS - 1)
if BOARD[rand_row][rand_col] == 'O':
BOARD[rand_row][rand_col] = 'X'
NUM_MINES = NUM_MINES - 1
else:
BOARD[rand_row][rand_col] = 'X'
print NUM_MINES
當我num_mines = 96運行,它從不打印零點,這是所有地雷插入後應打印的內容。
這可能是什麼原因造成的?
請注意'X'代表礦井,'O'只是一個沒有礦井的電路板空間。
的建議順便說一句,分發礦山最均勻的辦法是把在你的網格前面需要的地雷數量,然後洗牌。 – 2014-10-17 04:02:26
不能保證經過96次迭代後,所有的空白空間將被選中並替換爲我的,因爲採樣在網格上均勻地完成;即採樣的索引可能會重複。 – 2014-10-17 04:06:34