diff --git a/varaaminen-1.py b/varaaminen-1.py new file mode 100644 index 0000000000000000000000000000000000000000..387d58d4ce98e968bfdad8ec2fbd892fdc1dec91 --- /dev/null +++ b/varaaminen-1.py @@ -0,0 +1,141 @@ +import copy +import json + +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]] + +elokuvalista = {'Nälkäpeli': ('2h 37min', 16), 'Dune': ('3h 30min', 12)} +naytosajat = {'Nälkäpeli': [["12.12 12:00", "3 sali", copy.deepcopy(kolmas_sali)], + ["13.12 14:30", "2 sali", copy.deepcopy(toka_sali)]], + 'Dune': []} + + + +def tulosta_naytokset(elokuva): + for i in range(len(naytosajat[elokuva])): + print(naytosajat[elokuva][i][0], naytosajat[elokuva][i][1]) + +def tulosta_sali(lista): + for rivi in lista: + 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): + + onVarannut = False + salikartta = naytosajat[elokuva][naytos][2] + while not onVarannut: + 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 varaa_elokuva(): + elokuvaValittu = False + while not elokuvaValittu: + 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 + #jos on, tulostaa elokuvaa vastaavat näytökset + 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: "))# 0 eka näytös, 1 toinen näytös, 2 kolmas näytös + #TODO tee silmukka, jossa käyt elokuvan näytösajat + + sali = naytosajat[elokuva][naytos][2] + if sali == eka_sali: + tulosta_sali(eka_sali) + nimi = input("Anna nimi, jolle varaus tehdään: ") + paikka = tee_varaus(elokuva,naytos) + + elif sali == toka_sali: + tulosta_sali(toka_sali) + nimi = input("Anna nimi, jolle varaus tehdään: ") + paikka = tee_varaus(elokuva,naytos) + + elif sali == kolmas_sali: + tulosta_sali(kolmas_sali) + nimi = input("Anna nimi, jolle varaus tehdään: ") + paikka = tee_varaus(elokuva,naytos) + + + varaus = {"Elokuva" : elokuva, "Näytös" : naytos, "Nimi": nimi, "Paikka" : paikka} + with open("varaukset.txt", mode="a", encoding="utf-16") as f: + f.write(json.dumps(varaus)) + + print(varaus) + print("Kiitos varauksesta!") + main_varaus() + + +def muokkaa_varausta(): + muokkaa = input("Anna näytös, jonka varausta haluat muokata: ") + print(muokkaa) #pitäs printata näytöksen salikartan + v_paikka = input("Anna edellisen paikan numero:") + # X muuttuu takaisin oikeaksi numeroksi, jolloin varaus peruuntunut, en osaa tehdä + print("Varaus peruutettu!") + print("1 en halua tehdä uutta varausta (palaa aloitusvalikkoon)") + print("2 haluan tehdä uuden varauksen") + arvo = int(input("Anna toiminto: ")) + if arvo == 1: + main_varaus() + elif arvo == 2: + varaa_elokuva() + + +def main_varaus(): + #TODO lue varaukset tiedostosta + print("1 varaa elokuva") + print("2 muokkaa varausta") + print("3 palaa etusivulle") + arvo = int(input("Anna toiminto: ")) + if arvo == 1: + varaa_elokuva() + elif arvo == 2: + muokkaa_varausta() + elif arvo == 3: + print("Kiitos ja hei! (palaa etusivulle)") + # main() #pitäskö alotus laittaa omana funktiona niin pääsis varauksesta ja administ helpost etusivulle vai oonko ihan tyhäm? + + +main_varaus()