diff --git a/etusivu.py b/etusivu.py index e032d8ffa848234832c44616b5c3de87049c9882..01494a57a3b2d18c57453a1482edf9dbbc947c0f 100644 --- a/etusivu.py +++ b/etusivu.py @@ -1,23 +1,166 @@ -elokuvat = {} #Tää on vaan raakaversio ja muutellaan näitä sitä mukaan kun keksitään hyviä nimiä ja tietoja -elokuvat["elokuva1"] = "ikaraja, kesto, arvostelu" -elokuvat["elokuva2"] = "ikaraja, kesto, arvostelu" -elokuvat["elokuva3"] = "ikaraja, kesto, arvostelu" -elokuvat["elokuva4"] = "ikaraja, kesto, arvostelu" -elokuvat["elokuva5"] = "ikaraja, kesto, arvostelu" +elokuvalista = {'Nälkäpeli': ('2h 37min', 16), 'Dune': ('3h 30min', 12), 'Megalodon': ('2h 45min', 16)} -elokuva_lista = [elokuva1, elokuva2, elokuva3, elokuva4, elokuva5] +elokuva_lista = ["Nälkäpeli", "Dune", "Megalodon"] def elokuvien_tiedot(elokuva: tuple): - ikaraja, kesto, arvostelu = elokuva - print(f"{ikaraja}, {kesto}, {arvostelu}") + ikaraja, kesto = elokuva + print(f"{ikaraja}, {kesto}") #Yritin tehdä sen listan ja siihen liittyvän sanakirjan, että pystyis tarkasteelee niitä elokuvia erikseen #toi arvostelu tosi hauska lisä mun mielestä, mitä asteikkoa käytetään? 1-5? tähdet ois kivat mut en tiiä mistä ne sais (annukka) + def varaus(): - print("Tähän tulee varausjärjestelmä! :)") - #tähän siis kasataan varausjärjestelmä, tai sit tähän laitetaan toinen funktio joka sit määritellään aiemmin + + eka_sali = [[1,2,3,4,5,6,7,8,9,10], + [11,12,13,14,15,16,17,18,19,20], + [21,22,23,24,25,26,27,28,29,30], + [31,32,33,34,35,36,37,38,39,40], + [41,42,43,44,45,46,47,48,49,50], + [51,52,53,54,55,56,57,58,59,60], + [61,62,63,64,65,66,67,68,69,70], + [71,72,73,74,75,76,77,78,79,80], + [81,82,83,84,85,86,87,88,89,90], + [91,92,93,94,95,96,97,98,99,100]] + + toka_sali = [[1,2,3,4,5,6,7], + [8,9,10,11,12,13,14], + [15,16,17,18,19,21,22], + [23,24,25,26,27,28,29], + [30,31,32,33,34,35,36], + [37,38,39,40,41,42,43], + [44,45,46,47,48,49,50]] + + kolmas_sali = [[1,2,3,4,5,], + [6,7,8,9,10], + [11,12,13,14,15], + [16,17,18,19,20], + [21,22,23,24,25]] + + + salit={"1 sali":eka_sali, "2 sali": toka_sali, "3 sali":kolmas_sali} + elokuvalista = {'Nälkäpeli': ('2h 37min', 16), 'Dune': ('3h 30min', 12), 'Megalodon': ('2h 45min', 16)} + + naytosajat = {'Nälkäpeli': [["12.12", "12:00", "3 sali" ], + ["13.12", "14:30", "2 sali"], + ["14.12", "15:45", "1 sali"]], + 'Dune': [["13.12", "20:00", "2 sali"], + ["14.12", "21:00", "3 sali"], + ["15.12", "20:30", "1 sali"]], + 'Megalodon': [["12.12", "15:00", "3 sali"], + ["14.12", "17:00", "1 sali"], + ["16.12", "16:30", "2 sali"]]} + + varaukset = {} + + def tallennavaraus(varaaja, elokuva, aika, paiva, saliNimi, paikka): #tallentaa uuden varauksen varaukset.txt tiedostoon + with open("varaukset.txt", "a") as tiedosto: + rivi = f"{varaaja},{elokuva},{aika},{paiva},{saliNimi},{paikka}" + "\n" + tiedosto.write(rivi) + varaukset[varaaja]=f"{varaaja},{elokuva},{aika},{paiva},{saliNimi},{paikka}" + + def haevaraukset(): #hakee varaukset varaukset.txt tiedostosta + global varaukset + varaukset.clear() + with open("varaukset.txt", "r") as tiedosto: + for rivi in tiedosto: + tiedot=rivi.strip().split(",") + varaukset[tiedot[0]]=",".join(tiedot[1:]) + + def tulosta_naytokset(elokuva): #tulostaa elokuvan kaikki näytökset + for i in range(len(naytosajat[elokuva])): + print(naytosajat[elokuva][i][0], naytosajat[elokuva][i][1], naytosajat[elokuva][i][2]) + + def tulosta_sali(salit): #tulostaa näytöksen salin + for rivi in salit: + print(rivi) + + + def varaa_paikka(sali, paikka): + for rivi in sali: + for penkki in rivi: + if penkki == paikka: + penkki == "X" + + def on_varattavissa(sali, paikka): + for rivi in sali: + for penkki in rivi: + if penkki == paikka: + if penkki == "X": + return False + return True + + def tee_varaus(elokuva,naytos): #paikan varaamninen tehdään tällä funktiolla + onVarannut = False + salikartta = naytosajat[elokuva][naytos][2] + + paikka = int(input("Anna paikan numero: ")) + if on_varattavissa(salikartta, paikka): + varaa_paikka(salikartta, paikka) + onVarannut = True + else: + print("Varaa toinen paikka.") + return paikka + + def tulostaVaratut(paiva,aika): #funktio, joka tulostaa varatut paikat X:nä salikartassa + paikat = [] + sali="" + for varaus in varaukset: + jaettu=varaukset[varaus].split(",") + time=jaettu[1] + date=jaettu[2] + sali=jaettu[-2] + if date==paiva and time==aika: + paikat.append(jaettu[-1]) + for rivi in salit[sali]: + for paikka in rivi: + if str(paikka) in paikat: + print("X",end=" ") + else: + print(paikka,end=" ") + print() + + def varaa_elokuva(): #itse elokuvan ja paikan varaaminen on tämän funktion alla + elokuvaValittu = False + while not elokuvaValittu: + for i in elokuvalista: + print(i) #listaa elokuvat, mitä nähtävissä + elokuva = input("Valitse haluamasi elokuva: ")#syötetään haluttu elokuvan nimi + if elokuva in naytosajat: #käy läpi onko elokuva näytosajat sanakirjassa + elokuvaValittu = True + else: + print("Elokuva ei ole ohjelmistossa.") #jos elokuva ei ole näytösajoissa, kertoo että elokuva ei ole nähtävissä + tulosta_naytokset(elokuva) + + naytos = int(input("Valitse haluamasi näytös: "))# 1 eka näytös, 2 toinen näytös, 3 kolmas näytös + ajat=naytosajat.get(elokuva) + sali=ajat[naytos-1][2] + print(sali) #tulostaa salin, jossa näytös on + paiva,aika,salinro=naytosajat[elokuva][naytos] + tulostaVaratut(paiva, aika) #tulostaa salikartan, jossa näkyy näkyy varatut paikat X:llä + nimi = input("Anna nimi, jolle varaus tehdään: ") #kysyy nimen, jolle varaus tehdään + paikka = tee_varaus(elokuva,naytos) #tee_varaus funktio kysy halutun istumapaikan ja varaa sen + tallennavaraus(nimi,elokuva,aika,paiva,salinro,paikka) #tallentaa varauksen tiedot varaukset.txt tiedostoon + + print("Kiitos varauksesta!") + main_varaus() + + def main_varaus(): #varaamisen valikko, josta pääsee varaamaan tai takaisin etusivulle + print("1 varaa elokuva") + print("2 palaa etusivulle") + arvo = int(input("Anna toiminto: ")) + haevaraukset() + if arvo == 1: + varaa_elokuva() + elif arvo == 2: + print("Kiitos ja hei!") + main() + main_varaus() + + + + def admin(): print("Tähän tulee ylläpito! :)") @@ -26,22 +169,23 @@ def admin(): #tästä eteenpäin ei käytännössä tarttee koskea, muuten kuin jos funktioille lisää parametreja #(en oo sata varma miten niitä tässä käytettäisiin mutta selviää varmasti ajallaan) +def main(): + print("1 Varaaminen") + print("2 ylläpito") + print("3 Elokuvat ja niiden tiedot") # lisäsin sen elokuvien tarkasstelun tähän alotukseen + print("0 sulkee järjestelmän") -print("1 Varaaminen") -print("2 ylläpito") -print("3 Elokuvat ja niiden tiedot") # lisäsin sen elokuvien tarkasstelun tähän alotukseen -print("0 sulkee järjestelmän") - -while True: - arvo = int(input("Anna toiminto: ")) - if arvo == 1: - varaus() - elif arvo == 2: - admin() - elif arvo == 3: - print(elokvua_lista) - print("syötä haluamasi elokuvan nimi katsoaksesi sen tiedot: ") - elokuvien_tiedot() - elif arvo == 0: - print("Kiitos ja hei!") - break + while True: + arvo = int(input("Anna toiminto: ")) + if arvo == 1: + varaus() + elif arvo == 2: + admin() + elif arvo == 3: + print(elokuva_lista) + elokuva = input("Syötä haluamasi elokuvan nimi katsoaksesi sen tiedot: ") + elokuvien_tiedot(elokuvalista[elokuva]) + main() + elif arvo == 0: + print("Kiitos ja hei!") + break