Formát debugovacího výstupu

This commit is contained in:
Jakub Pelc 2025-03-06 15:22:54 +01:00
parent b2debdfb57
commit cd93ccb063

View file

@ -128,6 +128,19 @@ Všimněte si, že simulace má několik neintuitivních zjednodušení a vlastn
Dále, pro detekci průsečíku lodi s asteroidem či cílem schválně používáme `euclidean_distance`, která má odmocninu zaokrouhlenou dolů.
Sice by kolize šly počítat exaktně pomocí druhých mocnin vzdálenosti, ale v okrajových případech bychom naráželi na limity velikosti čísel.
Dejte pozor, že toto neexaktní počítání kolizí je třeba implementovat i do akcelerační struktury pro hledání blízkých asteroidů a cílů,
pokud nějakou budete používat.
Naše rustová (vyhodnocovadlo) i typescriptová (webová vizualizace) implementace používá místo exaktní `isqrt` klasickou float64 odmocninu, kterou poté zaokrouhlí dolů na celé číslo.
Naše rustová (vyhodnocovadlo) i typescriptová (webová vizualizace) implementace používá místo exaktní `isqrt` klasickou "float64" odmocninu, kterou poté zaokrouhlí dolů na celé číslo.
Pro rozsahy hodnot relevantní v této úloze dávají obě funkce stejné výsledky.
#### Debugování pomocí webové vizualizace
Do [webové vizualizace](https://kvaleya.gitlab.io/asteracer/) můžete nahrát svou sadu instrukcí, kterou stránka poté vyhodnotí.
Pro debugování se může hodit stáhnout si z ní "záznam simulace" následujícího formátu:
Záznam obsahuje jeden řádek pro každou vstupní instrukci.
Každý řádek popisuje stav světa po vykonání dané instrukce.
První dvě čísla jsou X a Y pozice lodi, třetí a čtvrté číslo je X a Y rychlost lodi.
Poté následuje několik jedniček nebo nul, kdy každá odpovídá jednomu cíli.
Pokud už byl v simulaci daný cíl dosažen, má hodnotu 1, jinak má hodnotu 0.