def setup_armies(self): # Attacker left side, Defender right side for i in range(self.size): if i < self.size//2: self.grid[i][0] = Unit(random.choice(["Infantry","Archer","Cavalry"]), "attacker") self.grid[i][1] = Unit(random.choice(["Infantry","Archer"]), "attacker") else: self.grid[i][self.size-1] = Unit(random.choice(["Infantry","Archer","Cavalry"]), "defender") self.grid[i][self.size-2] = Unit(random.choice(["Infantry","Archer"]), "defender")

// Contar unidades restantes function countUnits(side) let count = 0; for (let i = 0; i < GRID_SIZE; i++) for (let j = 0; j < GRID_SIZE; j++) if (grid[i][j].side === side && grid[i][j].unit !== null) count++; return count;

function addLog(msg) const logDiv = document.getElementById("combat-log"); const p = document.createElement("div"); p.innerHTML = `> $msg`; logDiv.appendChild(p); logDiv.scrollTop = logDiv.scrollHeight; if (logDiv.children.length > 30) logDiv.removeChild(logDiv.children[0]);

<script> // ---------- CONFIGURACIÓN ---------- const GRID_SIZE = 10; let grid = []; let currentTurn = "attacker"; // attacker or defender let selectedUnit = null; // x, y

def count_units(self, side): return sum(1 for i in range(self.size) for j in range(self.size) if self.grid[i][j] and self.grid[i][j].side == side)

def change_turn(self): self.current_turn = "defender" if self.current_turn == "attacker" else "attacker" print(f"\n🔄 Turno cambiado a self.current_turn.upper()")

// Terrenos const TERRAIN = PLAIN: name: "🌾", dmgModAttacker: 1.0, dmgModDefender: 1.0, defBonus: 0 , FOREST: name: "🌲", dmgModAttacker: 0.9, dmgModDefender: 1.1, defBonus: 2 , HILL: name: "⛰️", dmgModAttacker: 1.15, dmgModDefender: 0.95, defBonus: 1 ;