5. kodutöö
1. Plokkskeem
Järgmisel plokkskeemil on kujutatud ühe veebilehe registreerimisvormi algoritm. Kirjuta programm, mis realiseerib plokkskeemil kirjeldatu.
Automaatkontroll. Veendu, et programm vastab täpselt plokkskeemile: programm peab küsima kasutajalt alguses kõiki kolme sõnet, nagu plokkskeemil kirjas, isegi kui parooli mittesobivuse saaks mõnel juhul tuvastada juba parooli esmakordse sisestamise järel. Pärast mittesobivuse tuvastamist tuleb küsida ainult parooli (kaks korda).
Tulemusfaili nimi peab olema kindlasti users.txt.
2. Põranda keskkoha värvimine
Kirjuta programm, mis küsib kasutaja käest:
- ristkülikukujulise Pykkari maailma mõõtmed,
- Pykkari esialgse asukoha ja
- Pykkari esialgse suuna.
Seejärel loob programm mõõtmetele vastava maailma, paigutab Pykkari nõutud suunaga nõutud positsioonile ning käivitab käsud, mis panevad Pykkari värvima põranda keskkoha tumedaks.
Täpsustused
- Loodud maailma servad peavad olema sein, ülejäänud ruudud peavad olema värvimata põrand.
- Loodud maailma mõõtmed on alati paaritud arvud (näiteks 5 × 5, 3 × 7, 9 × 13) ning peavad olema vähemalt 3 (muidu koosneks maailm ainult seintest).
- Kasutaja võib Pykkari suuna ette anda ilmakaarte tähistega (n, e, s, w, N, E, S, W).
- Kasutaja käest saadud sisendit tuleb kontrollida. Programm ei tohi kokku joosta, kui kasutaja sisestab midagi valesti (näiteks sisestab suvalise teksti seal, kus oodatakse täisarvu, või sisestab Pykkari algseks positsiooniks sellise, mis ei jää põranda piiridesse). Ebasobiva sisendi korral tuleb selle küsimist korrata niikaua, kuni sisend sobib.
Pykkari all oleva ruudu saab tumedaks värvida käsuga paint().
Näide dialoogist kasutajaga
Sisesta maailma laius: 9 Sisesta maailma kõrgus: asdf Vigane sisend! Proovime uuesti... Sisesta maailma kõrgus: 7 Sisesta Pykkari positsiooni x-koordinaat: 3 Sisesta Pykkari positsiooni y-koordinaat: 23 Liiga suur! Proovime uuesti... Sisesta Pykkari positsiooni y-koordinaat: 0 Liiga väike! Proovime uuesti... Sisesta Pykkari positsiooni y-koordinaat: 2 Sisesta Pykkari suund: S
Soovitus. Kui jääd dünaamiliselt maailma loomisega hätta, siis kirjuta programmi sisse mingi konkreetne maailm ja proovi lahendada vähemalt värvimise osa.
See ülesanne võib nõuda omajagu nuputamist ja pusimist, seega varu piisavalt aega! Automaatkontrolli sellel ülesandel ei ole.
Lisaks lahenduse korrektsusele on nüüd (ja edaspidi) väga tähtis ka koodi selgus. Kui saad programmi korralikult tööle, siis võib pool tööd veel ees olla – vaata programm põhjalikult üle ja ürita seda üht- või teistpidi ümber kirjutada, nii, et tulemus oleks võimalikult selge ja arusaadav. Enamasti saab programmi selgust parandada sobivate alamprogrammide sissetoomisega, eriti kui alamprogrammide nimed on hoolikalt valitud.