#!/usr/bin/env python3 """ 测试存档界面显示数量修改 验证能否显示10条存档记录 """ import sys import os sys.path.append(os.path.dirname(os.path.abspath(__file__))) from simple_save_manager import simple_save_manager import json from datetime import datetime def create_test_saves(): """创建测试存档文件""" print("=== 创建测试存档文件 ===") # 确保saves目录存在 if not os.path.exists("saves"): os.makedirs("saves") # 创建简单的测试迷宫数据 test_maze_data = { "maze": [ ["#", "#", "#", "#", "#"], ["#", "S", " ", " ", "#"], ["#", " ", "#", " ", "#"], ["#", " ", " ", "E", "#"], ["#", "#", "#", "#", "#"] ], "metadata": { "name": "测试迷宫", "test": True } } # 创建12个测试存档(超过10个来测试显示限制) for i in range(1, 13): filename = f"saves/test_save_{i:02d}.json" # 修改迷宫名称 test_data = test_maze_data.copy() test_data["metadata"] = test_maze_data["metadata"].copy() test_data["metadata"]["name"] = f"测试迷宫_{i:02d}" test_data["metadata"]["save_time"] = datetime.now().isoformat() with open(filename, 'w', encoding='utf-8') as f: json.dump(test_data, f, indent=2, ensure_ascii=False) print(f"创建: {filename}") print(f"✅ 创建了12个测试存档文件") def check_save_list(): """检查存档列表""" print("\n=== 检查存档列表 ===") save_list = simple_save_manager.get_save_list() print(f"找到存档数量: {len(save_list)}") for i, save_info in enumerate(save_list): print(f"{i+1:2d}. {save_info['name']} ({save_info['format']})") return len(save_list) def calculate_display_capacity(): """计算显示容量""" print("\n=== 计算显示容量 ===") from config import get_button_positions positions = get_button_positions() save_area = positions['save_list_area'] print(f"存档区域尺寸: {save_area[2]}x{save_area[3]} (宽x高)") # 计算可用高度 title_height = 25 hint_height = 25 start_offset = 55 # 实际开始位置偏移 available_height = save_area[3] - start_offset item_height = 25 max_items = available_height // item_height print(f"标题和提示占用: {start_offset}像素") print(f"可用高度: {available_height}像素") print(f"每项高度: {item_height}像素") print(f"理论最大显示: {max_items}条") return max_items def test_ui_layout(): """测试UI布局说明""" print("\n=== UI测试说明 ===") print() print("现在可以测试存档界面显示效果:") print("1. 运行主程序: python main.py") print("2. 按 Ctrl+L 打开存档界面") print("3. 验证能否看到10条存档(如果存档数量足够)") print("4. 使用↑↓键测试所有存档是否可选择") print() print("预期结果:") print("- 存档界面高度增加到300像素") print("- 最多可显示约9-10条存档") print("- 界面不会截断或重叠") print("- 所有存档都可以正常选择和加载") print() def cleanup_test_files(): """清理测试文件""" response = input("是否删除测试存档文件? (y/n): ") if response.lower() == 'y': print("\n=== 清理测试文件 ===") for i in range(1, 13): filename = f"saves/test_save_{i:02d}.json" if os.path.exists(filename): os.remove(filename) print(f"删除: {filename}") print("✅ 测试文件清理完成") def main(): print("开始测试存档界面显示数量...") # 计算理论容量 max_capacity = calculate_display_capacity() # 创建测试文件 create_test_saves() # 检查存档列表 save_count = check_save_list() print(f"\n=== 结果分析 ===") print(f"理论最大显示容量: {max_capacity}条") print(f"实际存档数量: {save_count}条") if max_capacity >= 10: print("✅ 界面尺寸足够显示10条存档") else: print(f"❌ 界面尺寸只能显示{max_capacity}条存档") # UI测试说明 test_ui_layout() # 可选清理 cleanup_test_files() if __name__ == "__main__": main()