diff --git a/elokuvateatteri.py b/elokuvateatteri.py deleted file mode 100644 index fbd6a653ab1b85c9f9afb9a8929ea937aa028f71..0000000000000000000000000000000000000000 --- a/elokuvateatteri.py +++ /dev/null @@ -1,294 +0,0 @@ - -elokuvalista = {} -naytosajat = {} -elokuva_lista = naytosajat.keys() -varaukset = {} -oikea = "" - -def nouda_salasana(): - with open("salasana.txt", "r") as tiedosto: - for rivi in tiedosto: - oikea = rivi.strip() - return oikea - -def nouda_elokuvalista(): - with open("elokuvalista.txt", "r") as tie: - for rivi in tie: - kasa=rivi.strip().split(",") - elokuvalista[kasa[0]] = (kasa[1], kasa[2]) - return elokuvalista - -def nouda_naytokset(): - with open("naytosajat.txt", "r") as tied: - for rivi in tied: - joukko = rivi.strip().split(":") - joukko2 = joukko[1].strip().split(";") - arvo = [] - for i in joukko2: - joukko3 = i.strip().split(",") - arvo.append(joukko3) - naytosajat[joukko[0]] = arvo - return naytosajat - -def lisaa_elokuva(nimi: str, kesto: str, ikaraja: int): - with open("elokuvalista.txt", "a") as t: - t.write(nimi + ", " + kesto + ", " + ikaraja + "\n") - nouda_elokuvalista() - -def lisaa_naytos(naytosajat: dict, nimi: str, paiva: str, kello: str, sali: str): - with open("naytosajat.txt", "a") as naytokset: - naytos = [paiva, kello, sali] #uusi näytös listan - if not nimi in naytosajat.keys(): - naytosajat[nimi] = naytos - naytokset.write(nimi + ": " + paiva + ", " + kello + ", " + sali + "; " "\n") - else: - with open("naytosajat.txt", "r") as naytokset: - rivit = naytokset.readlines() - for i in rivit: - if i.split(":")[0] == nimi: - rivit[rivit.index(i)] = i.strip() + paiva + "," + kello + "," + sali + "\n" - with open("naytosajat.txt", "w") as tie: - tie.writelines(rivit) - nouda_naytokset() - -def selaa_varauksia(): - with open("varaukset.txt", "r") as tiedosto: - print("Varaukset:") - for rivi in tiedosto: - lista = rivi.strip().split(",") - print(f"Varaaja: {lista[0]}, Elokuva: {lista[1]}, Näytös: {lista[2], lista[3], lista[4]}, Paikka: {lista[5]} ") - -def salasanan_vaihtaminen(): - while True: - vanha = input("Anna vanha salasana: ") - if vanha == nouda_salasana(): - while True: - uusi1 = input("Anna uusi salasana: ") - uusi2 = input("Anna uusi salasana uudelleen: ") - if uusi1 == uusi2: - with open("salasana.txt", "w") as tiedosto: - tiedosto.write(uusi1) - print("Salasanan vaihto onnistui!") - break - else: - print("Uudet salasanat eivät olleet samoja.") - jatko = input("Jos haluat yrittää uudelleen paina 1, jos haluat palata ylläpitoon paina 2.") - if jatko == 2: - break - break - else: - print("Vanha salasana ei ollut oikein.") - -def admin(): - nouda_elokuvalista() - nouda_naytokset() - while True: - print("1 lisää elokuva") - print("2 lisää näytös") - print("3 selaa varauksia") - print("0 sulkee järjestelmän") - arvo = int(input("Anna toiminto: ")) - if arvo == 1: - nimi = input("Anna elokuvan nimi: ") - kesto = input("Anna elokuvan kesto (0h 0min): ") - ikaraja = input("Anna elokuvan ikäraja (K16): ") - lisaa_elokuva(nimi, kesto, ikaraja) - elif arvo == 2: - print(f"Ohjelmistossa nyt: {elokuvalista.keys()}") - nimi = input("Mihin elokuvaan haluta lisätä näytöksen? ") - #!!!!!!!!lisää varmistus, jolla ohjelma ei kaadu vain funktio loppuu jos nimi on väärin - paiva = input("Minä päivänä näytös on? (dd.mm.) ") - kello = input("Mihin aikaan näytös on? (hh:mm) ") - sali = input("Missä salissa näytös on? ") - lisaa_naytos(naytosajat, nimi, paiva, kello, sali) - elif arvo == 3: - selaa_varauksia() - if arvo == 0: - break - -def salaus(): - indeksi = 3 - while True: - salaus = input(f"Anna salasana: ") - if salaus == nouda_salasana(): - print("Oikea salasana!") - admin() - break - elif salaus != nouda_salasana() and indeksi > 1: - indeksi -= 1 - print(f"Väärä salasana! Yrityksiä jäljellä {indeksi}.") - else: - print("Salasana väärä! (palaa etusivulle)") - break - - -def elokuvien_tiedot(elokuva: tuple): - ikaraja, kesto = elokuva - print(f"{ikaraja}, {kesto}") - #Yritin tehdä sen listan ja siihen liittyvän sanakirjan, että pystyis tarkasteelee niitä elokuvia erikseen - -def varaus(): - - 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} - - - def tallennavaraus(varaaja, elokuva, aika, paiva, saliNimi, paikka): - global varaukset#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 varaus - varaukset.clear() - with open("varaukset.txt", "r") as tiedosto: - for rivi in tiedosto: - if rivi == "": - return - 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): - 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,sali): - global varaukset#funktio, joka tulostaa varatut paikat X:nä salikartassa1 - paikat = [] - for varaus in varaukset: - jaettu=varaukset[varaus].split(",") - time=jaettu[1] - date=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) - elokuvan_indexi = list(naytosajat.keys()).index(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, sali) #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 main(): - nouda_elokuvalista() - nouda_naytokset() - 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: - salaus() - 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!") - - -main()