Prizma

Prizma

Közepes

Bevezetés

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.

Utasítások

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.

Példa teszteset

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 }
  ]
}

Mi történik

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.

"Egy grafikon, amely egy lézernyaláb útját mutatja három prizmán megtörve.""Egy grafikon, amely egy lézernyaláb útját mutatja három prizmán megtörve."

x86-64 Assembly-specifikus megjegyzések

Feltételezheted, hogy a lézersugár előbb-utóbb mindig kijut az üres térbe. Az útja soha nem folytatódik a végtelenségig a prizmákon keresztül.


Forrás

FraSangaA hivatkozás új ablakban vagy lapon nyílik meg
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
x86-64 Assembly Exercism

Készen állsz elkezdeni a(z) Prizma feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) x86-64 Assembly nyelvet 22 fogalom130 feladat segítségével, valódi emberi mentorálással, mindez ingyen.