Nākotne sāksies šodien, ja vien tu
palīdzēsi. Mums ir droni, kuri spēj
nogādāt sūtījumus visā Latvijā. Tavs uzdevums
ir izveidot loģiku, kas ļaus šiem droniem
veikt piegādi, bet esi uzmanīgs - katra kļūda
var maksāt drona dzīvību...
Balvu fonds
3 portatīvie datori MacBook Air labāko risinājumu izstrādātājiem.
Datoru varēs iegūt, ja risinājums būs
pilnvērtīgs un ja iepriekšējā konkursā
neieguvi datoru. Ja ieguvi, tad būs cita
motivācijas balva.
3
calculateDeliveryPlan($home, $dst, $pkg)
Izveido funkciju calculateDeliveryPlan($home, $dst, $pkg), kura saņem:
- $home - drona bāzes stacijas koordinātas JSON fromāts. Piemērs: {“lat”:57.3183,“long”:25.2833}
- $dst - 10 piegādes vietu koordinātes JSON formātā. Saīsināts piemērs: [{"lat":57.1540,"long":24.8558},{"lat":56.6539,"long":23.7230},{"lat":57.0122,"long":24.9544}]
- $pkg - 10 paciņu masas JSON formātā. Saīsināts piemērs: [156, 450, 378]
Ņemot vērā visus iepriekš minētos uzdevuma nosacījumus un drona iespējas,
funkcija aprēķina paciņu piegādes plānu tā, lai drons:
- kopumā nolidotu pēc iespējas
mazāk kilometru,
- viena lidojuma laikā paciņas ar lielāko masu piegādātu vispirms,
- bāzē atgrieztos bez kravas,
- neizlādētos lidojuma laikā.
Piegādes plāna izvades piemērs
Izveidotā funkcija skola.hex.lv konsolē vai HTML lapā izvada pilnu paciņu piegādes plānu (piemērā plāns ir saīsināts).
- Paņem 1. paciņu, masa 450 grami
- Paņem 2. paciņu, masa 378 grami
- Lido 31.56 km uz 0. vietu, koordinātas: 57.1540, 24.8558
- Noliek 1. paciņu, masa 450 grami
- Lido 16.85 km uz 2. vietu, koordinātas: 57.0122, 24.9544
- Noliek 2. paciņu, masa 378 grami
- Lido 39.39 km uz bāzi un uzlādē akumulatoru
- Paņem 0. paciņu, masa 156 grami
- Lido 119.97 km uz 1. vietu, koordinātas: 56.6539, 23.7230
- Lido 119.97 km uz bāzi un uzlādē akumulatoru
- Visas paciņas nogādātas veiksmīgi
Piegādes plāna izvades nosacījumi
- Paciņas un piegādes vietas numurē no 0. līdz 9.
- Ja iespējami vairāki piegādes plāni, izvadīt var jebkuru no tiem.
- Atkarībā no tā, vai funkciju veido skola.hex.lv vai citur, rindiņu atdalīšanai vari izmantot gan \n, gan <ul><li></li></ul>, gan citus paņēmienus.
- Saglabā šo funkciju datnē drone-logic.php
- Šajā datnē var atrasties arī citas nepieciešamās funkcijas.
- Veiksmīgs vizuālais noformējums šīs funkcijas izvadē var dot papildu punktus.