100 lines
3.4 KiB
Python
100 lines
3.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
测试动态UI布局功能
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from maze import Maze
|
|
from config import get_button_positions, MAZE_SIZE
|
|
|
|
def test_dynamic_ui():
|
|
"""测试动态UI布局功能"""
|
|
print("=== 测试动态UI布局功能 ===\n")
|
|
|
|
# 测试不同大小的迷宫
|
|
test_cases = [
|
|
("小迷宫", 10), # 10x10
|
|
("中迷宫", 15), # 15x15
|
|
("大迷宫", 20), # 20x20
|
|
("超大迷宫", 25), # 25x25
|
|
]
|
|
|
|
for name, size in test_cases:
|
|
print(f"{name} ({size}x{size}):")
|
|
|
|
# 创建迷宫实例
|
|
maze = Maze(wall_size=40, maze_size=size*40, file_name="test.csv")
|
|
|
|
# 模拟网格数据(创建指定大小的迷宫)
|
|
maze.grid = [['1' for _ in range(size)] for _ in range(size)]
|
|
maze.size = size
|
|
|
|
# 更新显示尺寸
|
|
maze.update_display_size()
|
|
|
|
print(f" 实际墙壁尺寸: {maze.actual_wall_size}")
|
|
print(f" 实际显示尺寸: {maze.actual_display_size}")
|
|
|
|
# 测试按钮位置
|
|
button_positions = get_button_positions(maze.actual_display_size)
|
|
print(f" 开始按钮位置: {button_positions['start_button']}")
|
|
print(f" 保存按钮位置: {button_positions['save_button']}")
|
|
print(f" 加载按钮位置: {button_positions['load_button']}")
|
|
print()
|
|
|
|
# 测试加载不同存档文件的效果
|
|
print("=== 测试加载不同存档文件 ===\n")
|
|
|
|
saves_dir = "saves"
|
|
if os.path.exists(saves_dir):
|
|
save_files = [f for f in os.listdir(saves_dir) if f.endswith('.json')][:3]
|
|
|
|
for save_file in save_files:
|
|
print(f"加载存档: {save_file}")
|
|
maze = Maze(wall_size=40, maze_size=800, file_name="test.csv")
|
|
|
|
full_path = os.path.join(saves_dir, save_file)
|
|
if maze.load_game(full_path):
|
|
print(f" 迷宫大小: {maze.size}x{maze.size}")
|
|
print(f" 实际显示尺寸: {maze.actual_display_size}")
|
|
print(f" 墙壁尺寸: {maze.actual_wall_size}")
|
|
|
|
# 计算按钮位置
|
|
button_positions = get_button_positions(maze.actual_display_size)
|
|
print(f" 控制面板起始X: {button_positions['start_button'][0]}")
|
|
print()
|
|
else:
|
|
print(f" 加载失败")
|
|
print()
|
|
|
|
print("=== 按钮位置适应性测试完成 ===")
|
|
|
|
def test_button_positions():
|
|
"""测试按钮位置计算函数"""
|
|
print("\n=== 测试按钮位置计算函数 ===\n")
|
|
|
|
test_sizes = [400, 600, 800, 1000, 1200]
|
|
|
|
for size in test_sizes:
|
|
print(f"迷宫显示尺寸: {size}")
|
|
positions = get_button_positions(size)
|
|
|
|
print(f" 开始按钮: {positions['start_button']}")
|
|
print(f" 存档区域: {positions['save_list_area']}")
|
|
|
|
# 检查按钮是否在合理位置(不超出屏幕范围)
|
|
control_x = positions['start_button'][0]
|
|
if control_x < 1500: # UI_WIDTH
|
|
print(f" ✓ 按钮位置合理")
|
|
else:
|
|
print(f" ✗ 按钮位置可能超出屏幕")
|
|
print()
|
|
|
|
if __name__ == "__main__":
|
|
test_dynamic_ui()
|
|
test_button_positions()
|