如何实现load_board与save_board函数处理棋盘文件?
实现Python棋盘读写函数
先得定义个Board类,用来封装棋盘数据,同时实现__str__方法,让打印对象时能直接输出指定格式的棋盘:
class Board: def __init__(self, grid): self.grid = grid # grid是二维列表,存着每行的棋盘字符 def __str__(self): return '\n'.join(''.join(row) for row in self.grid)
1. 实现load_board(filename)函数
这个函数读入指定文本文件,把每行的棋盘字符解析成二维列表,最后返回Board对象:
def load_board(filename): grid = [] with open(filename, 'r', encoding='utf-8') as f: for line in f: # 只去掉行尾的换行符,保留原始字符 line_content = line.rstrip('\n') grid.append(list(line_content)) return Board(grid)
2. 实现save_board(filename, board)函数
这个函数把Board对象里的棋盘数据写入文件,确保格式和load_board能识别的一致:
def save_board(filename, board): with open(filename, 'w', encoding='utf-8') as f: for row in board.grid: # 把每行的字符列表转成字符串,加换行符后写入 f.write(''.join(row) + '\n')
调用示例
# 加载棋盘文件 b = load_board("l19.txt") # 打印棋盘(直接输出指定格式) print(b) # 保存棋盘到新文件 save_board("l19b.txt", b)
注意点
- 读取文件时只用
rstrip('\n'),避免误删行尾可能存在的空格,保证原格式完整。 - 写入时每行末尾加换行符,确保生成的文件和原文件完全一致。
Board类的__str__方法让打印操作直接输出可读的棋盘样式。
内容的提问来源于stack exchange,提问作者Anne_Music
相关产品推荐
相关产品推荐

