Il mio liceo e molti altri implementano un tipo di programma chiamato un programma a blocchi rotanti. Questo è un modo per le persone di avere 8 lezioni, ma di avere 6 periodi in un giorno di scuola.
Ci sono quattro giorni in un programma a blocchi che si ripetono più volte e non hanno nulla a che fare con i giorni effettivi della settimana. A ciascuno è assegnato un numero [1-4].
Il modo in cui il programma funziona è che si elencano tutte le lezioni del mattino, periodi 1-4: [1, 2, 3, 4]. Questo è il vostro programma per il primo giorno, o il giorno 1. Il resto dei giorni basta ruotare l'elenco: [2, 3, 4, 1], [3, 4, 1, 2], [4, 1, 2, 3].
Tuttavia, l'ultimo periodo del mattino viene "lasciato cadere" e quel giorno non si vede quell'insegnante. Di qui le giornate sono: [1, 2, 3], [2, 3, 4], [3, 4, 1], [4, 1, 2].
Il pomeriggio è lo stesso, eccetto che utilizza periodi 5-8invece: [5, 6, 7], [6, 7, 8], [7, 8, 5], [8, 5, 6].
Il tuo compito
È difficile tenere traccia di tutte queste rotazioni, quindi devi scrivere un programma per stampare il mio programma dato che giorno è come input. Il tuo codice deve posizionare Homeroom e Lunch nei punti corretti. Ecco l' output esatto che il tuo codice deve avere per gli input 1-4:
Homeroom Homeroom Homeroom Homeroom
Period 1 Period 2 Period 3 Period 4
Period 2 Period 3 Period 4 Period 1
Period 3 Period 4 Period 1 Period 2
Lunch Lunch Lunch Lunch
Period 5 Period 6 Period 7 Period 8
Period 6 Period 7 Period 8 Period 5
Period 7 Period 8 Period 5 Period 6
Ma aspetta - Un'altra cosa!
A volte, il primo giorno di scuola o altri giorni speciali, la mia scuola ha un "Giorno 0". Questo significa solo che avrò tutte le mie lezioni quel giorno insieme a casa e pranzo. Il tuo codice dovrà occuparsi del Day 0. Ecco l'output per un giorno 0:
Homeroom
Period 1
Period 2
Period 3
Period 4
Lunch
Period 5
Period 6
Period 7
Period 8
Questo è code-golf quindi vince il codice più breve in byte !
1, 2, 3, 5, 6, 7?