简介:我使用2 for循环遍历10x10板,这样做是为了将所有位置保存到文本文件中。我是这个的初学者,这就是为什么我的代码看起来很简单。
问题:我需要在第一个for循环的每次迭代后在文本文件中打印一个新行。我已经完成了实际的保存部分。
链接到当前和所需的输出:http://pastebin.com/Un12u5L8
代码:
def SaveGame(Board):
Save_file = open('SaveFile.txt', 'w')
for row in range (BOARDDIMENSION):
for col in range (BOARDDIMENSION):
save = Board[row][col]
Save_file.write(save)
Save_file.close()
当前输出:--D----------D----------D------BBBB--A------m--A---------A---------A-------S-A--------S------PP--S--
所需输出:与上述相同,但每10次后就会生成一个新行
我尝试使用\n
,但收到了此错误:
UnicodeEncodeError:' ascii'编解码器不能对字符' \ uf709'进行编码。位置1:序数不在范围内(128)
谢谢,我希望我遵守规则,我确实搜索了这个问题,但没有找到符合我需求的问题。
答案 0 :(得分:0)
在内循环的末尾写一个新行。
def SaveGame(Board):
Save_file = open('SaveFile.txt', 'w')
for row in range (BOARDDIMENSION):
for col in range (BOARDDIMENSION):
save = Board[row][col]
Save_file.write(save)
Save_file.write('\n')
Save_file.close()
目前还不清楚board
是什么,是列表列表还是字符串列表?无论如何,更好的方法是:
def save_game(board):
with open('SaveFile.txt', 'w') as save_file:
for row in board:
save_file.write('{}\n'.format(''.join(row)))