153 lines
4.4 KiB
Python
153 lines
4.4 KiB
Python
#!/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()
|