我正在嘗試制作一個回圈,以在一輪結束時保存連接四的游戲中的進度。csv 必須按如下方式顯示游戲板。每個空白點用“0”表示,“O”用“2”表示,“X”用 1 表示。現在,這個回圈應該回圈并更改csv 檔案,我將所有內容都堆疊在一列中。這是為什么?
if turn == 'X':
turn = "O"
else:
board_deepcopy = copy.deepcopy(my_board)
ans = input('Type s to save your progress : ')
if ans == 's':
nop = input('Type in the name of your save file :')
f = open(nop '.csv', 'a', newline = '')
writer = csv.writer(f)
for y in range(board_col):
list1 = []
for l in range(board_col):
if my_board[y][l] == 'X':
board_deepcopy[y][l] = '1'
list1.append(board_deepcopy[y][l])
writer.writerow(list1[l])
elif my_board[y][l] == 'O':
board_deepcopy[y][l] = '2'
list1.append(board_deepcopy[y][l])
writer.writerow(list1[l])
else:
board_deepcopy[y][l] = '0'
list1.append(board_deepcopy[y][l])
writer.writerow(list1[l])
f.close()
turn = 'X'
(顯示 8 列和 8 行的板的示例,第 1 列有“X”,第 2 列有“O”:) windows 終端:
1 2 3 4 5 6 7 8
________________________________________
A|' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '|
B|' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '|
C|' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '|
D|' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '|
E|' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '|
F|' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '|
G|' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '|
H| X O ' ' ' ' ' ' ' ' ' ' ' '|
---------------------------------------
csv顯示:
A B C D E F G H
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 1
...
16 2
17 0
18 0
19 0
...
64 0
uj5u.com熱心網友回復:
你的for回圈沒有做你想做的事。您正在追加到您的串列中,但隨后您直接將新追加的元素保存到您的csv file. 您要做的是在inner for loop完成檔案后保存整個串列,然后繼續使用outer for loop. 以下是我認為您想要設計回圈的方式:
import csv
board_col = 4
my_board = [['X', '0', '0', '0'],
['0', 'X', '0', '0'],
['0', '0', 'X', '0'],
['0', '0', '0', 'X']]
f = open('try.csv', 'a', newline = '')
writer = csv.writer(f)
for y in range(board_col):
list1 = []
for l in range(board_col):
if my_board[y][l] == 'X':
list1.append('1')
elif my_board[y][l] == 'O':
list1.append('2')
else:
list1.append('0')
writer.writerow(list1)
f.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/416266.html
標籤:
