Kutatóként dolgozol a PRISM-nél (Precariously Redirected Illumination Safety Management), ahol egy precíziós lézerkalibrációs rendszerrel foglalkozol, amely kísérleti kristályprizmákat tesztel. Ezeket a kristályokat következő generációs optikai számítógépekhez fejlesztik, és mindegyikük egyedi fénytörési tulajdonságokkal rendelkezik, amelyek a molekulaszerkezetéből adódnak. A labor lézerrendszere károsíthatja a kristályokat, ha azok váratlan megvilágítást kapnak, ezért kritikus fontosságú a pontos útvonal-előrejelzés.
Mielőtt aktiválod a lézertömböt, meg kell jósolnod, hogy pontosan milyen sorrendben találja el a lézer a kristályokat, a mintaazonosítójukkal megjelölve.
Vegyük a következő kristálytömb-konfigurációt:
{
"start": { "x": 0, "y": 0, "angle": 0 },
"prisms": [
{ "id": 1, "x": 10, "y": 10, "angle": -90 },
{ "id": 2, "x": 10, "y": 0, "angle": 90 },
{ "id": 3, "x": 30, "y": 10, "angle": 45 },
{ "id": 4, "x": 20, "y": 0, "angle": 0 }
]
}
A lézer az origóból (0, 0) indul, és 0°-os szögben, vízszintesen jobbra lő.
Íme a nyaláb útja lépésről lépésre:
1. lépés: A nyaláb az x tengely mentén halad (y = 0), és először a 2. kristályba fut a (10, 0) pozícióban.
Ennek a kristálynak 90° a törési szöge, ami azt jelenti, hogy a nyalábot az aktuális pályájára merőlegesen töri meg.
A nyaláb, amely eredetileg 0°-on haladt, most 90°-ra (egyenesen felfelé) irányul át.
2. lépés: A nyaláb most függőlegesen felfelé halad a (10, 0) pozícióból, és a (10, 10) pozícióban eltalálja az 1. kristályt.
Ennek a kristálynak -90° a törési szöge, így a nyalábot az aktuális irányához képest -90°-kal töri meg.
A nyaláb 90°-on haladt, így a törés után már 0°-on (90° + (-90°) = 0°) halad, ismét vízszintesen jobbra.
3. lépés: A (10, 10) pozícióból a nyaláb vízszintesen halad, és a (30, 10) pozícióban találkozik a 3. kristállyal.
Ez a kristály 45°-kal töri meg a nyalábot, és az irányát 45°-ra változtatja.
A nyaláb a tömbön túl az üres térbe folytatódik.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.