3. naloga

Obračanje jogija

Imamo jogi v obliki kvadra. Odvisno od tega, kako ga obrnemo, se lahko naša glava znajde na enem od štirih možnih mest, kot kaže leva slika spodaj:


Sivo pobarvani elipsi kažeta dva možna položaja glave na eni strani jogija, črtkani elipsi pa še dva možna položaja glave na drugi strani jogija.

Spati želimo tako, da imamo glavo na najmanj obrabljenem delu, zato smo pripravljeni jogi občasno obrniti - zavrtimo ga za 180 stopinj okrog ene od osi x, y ali z (desna slika zgoraj kaže, kam je usmerjena katera os), tako da bo potem naša glava na kakšnem od ostalih treh možnih mest na jogiju.

Napiši funkcijo ObrniJogi(n), ki jo bo uporabnik poklical, ko bo pripravljen obrniti jogi, ona pa mu mora primerno svetovati, po kateri osi naj obrne jogi za 180 stopinj, da bo imel glavo na najmanj obrabljenem delu (torej na tistem, na katerem je doslej spal najmanj dni). Funkcija naj vrne enega od znakov ’x’, ’y’, ’z’; če pa je bolje, da uporabnik trenutno jogija sploh ne obrača, naj tvoja funkcija vrne znak ’n’. Uporabnik potem obrne jogi v skladu z rezultatom, ki ga vrne tvoja funkcija, in vse odtlej do naslednjega klica vsak dan spi na njem v njegovem sedanjem položaju (jogija torej nikoli ne obrača na lastno pest).

Kot parameter n bo tvoja funkcija dobila število dni od zadnjega klica (toliko dni je uporabnik spal na dosedanjem mestu).

Predpostavi, da uporabnik tvojo funkcijo prvič pokliče z n = 0 in da dotlej na jogiju ni še nikoli spal. Poleg funkcije ObrniJogi lahko deklariraš tudi poljubne globalne spremenljivke (oz. spremenljivke zunaj svoje funkcije) in jih po želji inicializiraš.