The Descent

 

Tikslas

Jums reikia sunaikinti kalnus prieš laivui į juos įsirėžiant. Norint tai padaryti, kiekvieno skridimo metu jums reikia šauti į aukščiausią kalną.

 

Taisyklės

Kiekvieno žaidimo ėjimo metu jums yra duodami aukščiai visų 8 kalnų imant juos nuo kairės į dešinę pusę.

Kiekvieno ėjimo gale jums reikia šauti į aukščiausią kalną, nurodant kalno numerį nuo 0 iki 7.

 

Šaunant į kalną jis nėra iškart sunaikinamas. Tiesiog sumažinamas jo aukštis. Be to jūsų laivas po kiekvieno ėjimo leisis vis žemiau.

 

Pergalės sąlygos

Jeigu visi kalnai sunaikinti, jūs laimite

 

Pralaimėjimo sąlygos

• Jūsų laivas atsitrenkė į kalną

• Jūs spausdinate atsakymą netinkamu formatu

• Jūsų programa viršija leistiną laiką

 

Žaidimo duomenys 

Viduje begalinio ciklo while(1) jūs skaitote visų kalnų aukščius ir spausdinate kalno į kurį ruošiatės šauti eilės numerį.

 

Apribojimai

0 <= mountainH <= 9

Atsakymo laikas vienam ėjimui yra <= 100 ms

 

Sprendimas

Skaitant duomenis jums reikia išsirinkti aukščiausią kalną ir tuo pačiu metu išsaugoti jo eilės numerį. Kad galėtume saugoti duomenis, mums reikės papildomų kintamųjų. Didžiausiam aukščiui saugoti sukuriame kintamąjį maxH, o eilės numeriui - shootNr. Šiuos kintamuosius reikia sukurti prieš for ciklą. Kadangi mes ieškome didžiausio kalno, tai mūsų pradinis kintamasis maxH pačioje pradžioje privalo būti lygus 0. Kai perskaitome kalno aukštį, jūs galite sąlygos (if) sakinio pagalba patikrinti ar jis yra aukštesnis už jūsų šiuo metu išsaugotą kalną, jeigu taip, tada maxH įgauna reikšmę mountainH, o shootNr išsaugo jo eilės numerį i. Dabar jums belieka po ciklo for išspausdinti išrinkto didžiausio kalno numerį, tai bus kintamasis shootNr.

 

Kodas programai

Siūlau pradžioje pabandyti parašyti kodą patiems arba su mokytojo pagalba. Žiūrėkite kas parašyta žemiau tik tuo atveju jeigu visiškai nežinote ką daryti.

Descent1