Javier-Jimenez99's picture
Actualizar README.md con secciones de demostración y arquitectura, y mejorar la interfaz de usuario en app.py para manejar bloques HTML. También se corrigen comentarios y traducciones en obr.py y test.py.
18f4e71
from tools.obr import (
create_shape,
create_token,
game_state,
move_item,
delete_item,
fill_fog,
clear_fog,
add_token_light,
animate_token_viewport,
insert_map,
clean_map
)
import time
# === TEST FUNCTION ===
def test_function(tab_id):
"""Test function that demonstrates all OBR functionalities"""
results = []
try:
# 1. Clean the map
results.append({"step": "1. Cleaning map", "result": clean_map(tab_id)})
time.sleep(1)
# 2. Clear fog
results.append({"step": "2. Clearing fog", "result": clear_fog(tab_id)})
time.sleep(1)
# 3. Insert map
results.append({"step": "3. Inserting map", "result": insert_map(tab_id, "FOREST")})
time.sleep(1)
# 4. Create geometric shapes (red circles in diagonal)
for i in range(0, 30, 6):
shape_result = create_shape(
width=2,
height=2,
x=i,
y=i,
shape_type="CIRCLE",
fill_color="#FF0000",
stroke_color="#FF0000",
tab_id=tab_id
)
results.append({"step": f"4. Creating circle at ({i},{i})", "result": shape_result})
time.sleep(0.5)
# 5. Create main token (Knight)
knight_result = create_token(
name="Knight",
type="KNIGHT",
x=0,
y=0,
size=1,
tab_id=tab_id
)
knight_id = [i for i in knight_result['result']["gameState"]['images'] if i["name"] == "Knight"][0]["id"]
results.append({"step": "5. Creating Knight", "result": knight_result, "token_id": knight_id})
time.sleep(1)
# 6. Move the knight to intermediate position
if knight_id:
results.append({"step": "6. Moving Knight to (14,14)", "result": move_item(tab_id, knight_id, 14, 14)})
time.sleep(1)
# 7. Move the knight to final position
results.append({"step": "7. Moving Knight to (29,29)", "result": move_item(tab_id, knight_id, 29, 29)})
time.sleep(1)
# 8. Create dragon token
dragon_result = create_token(
name="Red Dragon",
type="DRAGON",
x=14,
y=14,
size=3,
tab_id=tab_id
)
dragon_id = [i for i in dragon_result['result']["gameState"]['images'] if i["name"] == "Red Dragon"][0]["id"]
results.append({"step": "8. Creating Red Dragon", "result": dragon_result, "token_id": dragon_id})
time.sleep(1)
# 9. Animate viewport to dragon
if dragon_id:
results.append({"step": "9. Animating viewport to dragon", "result": animate_token_viewport(tab_id, dragon_id)})
time.sleep(1)
# 10. Fill with fog
results.append({"step": "10. Filling with fog", "result": fill_fog(tab_id)})
time.sleep(1) # 11. Add light to knight
if knight_id:
results.append({"step": "11. Adding light to Knight", "result": add_token_light(tab_id, knight_id, 5)})
time.sleep(1)
# 12. Move knight back to center
results.append({"step": "12. Moving Knight back to (14,14)", "result": move_item(tab_id, knight_id, 14, 14)})
time.sleep(1)
# 13. Animate viewport to knight
results.append({"step": "13. Animating viewport to Knight", "result": animate_token_viewport(tab_id, knight_id)})
time.sleep(1)
# 14. Get final game state
final_state = game_state(tab_id)
results.append({"step": "14. Final game state", "result": final_state})
time.sleep(5)
#15. Clean map at the end
results.append({"step": "15. Cleaning map", "result": clean_map(tab_id)})
return {
"success": True,
"message": "Test completed successfully",
"total_steps": len(results),
"results": results
}
except Exception as e:
return {
"success": False,
"error": str(e),
"completed_steps": len(results),
"results": results
}