#!/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()