
Nell'immensa distesa della Nebulosa Galaxia, sta per verificarsi un raro fenomeno nel sistema stellare di Lumoria. I pianeti, che ruotano attorno al Sole Lumoriano, si stanno allineando in una danza celeste che si verifica solo una volta ogni pochi millenni. Questo allineamento ha un effetto unico su come la luce del Sole Lumoriano raggiunge ogni pianeta.
Il tuo compito è calcolare l'intensità della luce che ogni pianeta riceve durante questo allineamento. Dati le distanze dei pianeti dal Sole Lumoriano e le loro posizioni relative, determina quali pianeti potrebbero sperimentare una diminuzione dell'intensità della luce a causa delle ombre proiettate su di essi da altri pianeti.
- Dati Planetari:
Nome del Pianeta | Distanza (UA) | Dimensione (km) |
---|---|---|
Mercuria | 0.4 | 4879 |
Earthia | 1 | 12742 |
Marsia | 1.5 | 6779 |
Venusia | 0.7 | 12104 |
I pianeti non sono ordinati per la loro distanza dal Sole Lumoriano, quindi dovrai gestire questo.
- Dinamiche della Luce:
- Se un pianeta più piccolo si trova dietro a un pianeta più grande (rispetto al Sole Lumoriano), sarà in ombra e non riceverà luce (
Nessuna
). - Se un pianeta più grande si trova dietro a un pianeta più piccolo (rispetto al Sole Lumoriano), avrà luce
Parziale
. - Se un pianeta è in ombra di più pianeti, sarà contrassegnato come
Nessuna (Ombre Multiple)
. - Se due pianeti sono di dimensioni simili e si trovano vicini l'uno all'altro in allineamento, potrebbero eclissarsi parzialmente l'un l'altro, ma per semplicità, puoi considerare che entrambi ricevano luce piena.
- Output:
- Il tuo sistema dovrebbe produrre un elenco di pianeti e l'intensità della luce che ricevono:
Piena
,Parziale
,Nessuna
, oNessuna (Ombre Multiple)
.
- Il tuo sistema dovrebbe produrre un elenco di pianeti e l'intensità della luce che ricevono:
- Usa GitHub Copilot e scrivi la simulazione in qualsiasi linguaggio tu preferisca.
- Concentrati su un codice chiaro e conciso che gestisca i controlli dei pianeti in modo efficiente. Chiedi a GitHub Copilot/Chat, "Come posso rendere questo codice più leggibile e manutenibile?".
- Creare una rappresentazione SVG visuale per i pianeti è opzionale ma incoraggiata se hai tempo.
- Usa un'applicazione console per visualizzare l'output.
- Ordina l'elenco dei pianeti in base alla loro distanza dal Sole Lumoriano.
- Attraversa l'elenco ordinato dei pianeti.
- Per ogni pianeta, controlla i pianeti che sono più vicini al Sole Lumoriano per vedere se proiettano un'ombra su altri pianeti.
- Mostra l'intensità della luce che ogni pianeta riceve.
- Se stai usando un GitHub Codespace, sei pronto per partire!
- Se stai eseguendo localmente, assicurati di avere installato il tuo linguaggio/framework di destinazione.
- Crea una cartella per il tuo codice.
- JavaScript: Crea una cartella chiamata
lumoria
e aggiungi un file chiamatoapp.js
. - Python: Crea una cartella chiamata
lumoria
e aggiungi un file chiamatoapp.py
. - C#: Crea una cartella chiamata
lumoria
e eseguidotnet new console
.
- JavaScript: Crea una cartella chiamata

Prima di tutto, dovrai inserire i pianeti in una struttura dati con cui puoi lavorare.
-
Copia la tabella Markdown mostrata in precedenza.
-
Apri la vista Chat di GitHub Copilot e inserisci il seguente testo. Sostituisci il tuo linguaggio di scelta con "JavaScript".
trasforma questo elenco markdown in un array di oggetti JavaScript
-
Incolla la tabella Markdown sotto il tuo commento e premi INVIO
-
Inserisci l'array di pianeti generato nel tuo codice
// light intensity array
// traverse the sorted array
// create an object to track the count of Larger and Smaller planets that are closer to the sun than the current planet
// for all the planets that come before this planet in the planets array, increment Larger if they are larger than the current planet or Smaller if they are smaller than the current planet
// if count.larger === 0 and count.smaller === 0 push planet name and "Full" to lightIntensity
// if count.smaller > 0 and count.larger === 0 push planet name and "Partial" to lightIntensity
// if count.larger === 1 push planet name and "None" to lightIntensity
// if count.larger > 1 push planet name and "None (Multiple Shadows)" to lightIntensity
// print the lightIntensity array
Vedi se puoi usare Copilot per scoprire la complessità (notazione BigO) del codice.
- Apri la vista Chat di GitHub Copilot nella barra laterale se non è già aperta. Assicurati che il tuo file di soluzione sia ancora aperto.
- Chiedi a Copilot Chat qual è la complessità del codice.
- Chiedi a Copilot Chat di rendere il codice più efficiente.
- Chiedi di nuovo la complessità - è migliorata?
- Evidenzia tutto il codice con Ctrl/Cmd+A.
- Premi Ctrl/Cmd+I per aprire la chat inline.
- Digita "/doc"
- Chiedi a Copilot Chat di documentare la funzione.
- Apri la Chat di GitHub Copilot nella barra laterale.
- Digita "/simplify" e premi Enter. Puoi anche aggiungere qualsiasi testo desideri dopo "/simplify" per dare più istruzioni a Copilot.
- Cosa ti ha suggerito Copilot Chat per semplificarlo?
Anche la Chat di Copilot può aiutarti! Basta copiare il messaggio di errore e incollarlo in Chat. Spesso è tutto ciò di cui Copilot ha bisogno per risolvere il tuo problema