From cd93ccb063b7da8d595bf8bc53ed72291d4fb751 Mon Sep 17 00:00:00 2001 From: Jakub Pelc <jakub.pelc@email.cz> Date: Thu, 6 Mar 2025 15:22:54 +0100 Subject: [PATCH] =?UTF-8?q?Form=C3=A1t=20debugovac=C3=ADho=20v=C3=BDstupu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- specifikace.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/specifikace.md b/specifikace.md index 3b3dccd..694ab63 100644 --- a/specifikace.md +++ b/specifikace.md @@ -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.