kolmapäev, 10. detsember 2014

esitamine miinus 13 tundi

lisan siia koodi hetkeseisuga. hakkab juba looma. päris kaks tundi on kulunud selle peale juba.

from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from tkinter import font
from random import randint

#---tujufunktsioonid-----

def suurviha(e): #-2 p
    global reageering
    button2.configure(text="NOH?", bg="darkred")
    tahvel.create_image(250, 245, image=pilt2)
    reageering -= 2
def viha(e): # -1 p
    global reageering
    button2.configure(text="Räägi välja!", bg="orangered")
    tahvel.create_image(250, 245, image=pilt3)
    reageering -= 1

def neutraalne(e): # 0 p
    global reageering
    button2.configure(text="Vasta mulle!", bg="#A2FF00")
    tahvel.create_image(250, 245, image=pilt6)
    #reageering += 0
def heaf(): # +1 p
    global reageering
    button2.configure(text="Vasta!", bg="springgreen")
    tahvel.create_image(250, 245, image=pilt8)
    reageering += 1
def väga_hea(e): # +2 p
    global reageering
    button2.configure(text="Kirjelda mind!", bg="green")
    tahvel.create_image(250, 245, image=pilt7)
    reageering += 2
 
def võit(e):
    label1.configure(text="SA TÄITSID MU SOOVID!")
    button2.configure(text="Võitsid!", bg="gold")
    tahvel.create_image(250, 245, image=pilt1)
    button2.bind('<Button-1>',stopProg)
def kaotus(e):
    button2.configure(text="Kaotasid!!", bg="red")
    label1.configure(text="SA AJASID MU TÄIESTI ENDAST VÄLJA!")
    tahvel.create_image(250, 245, image=pilt2)
    button2.bind('<Button-1>',lõpeta)

#---------------------------funktsioonid------------------------------------
def abi():
    messagebox.showinfo(message="""Suutsid abi avada.
Kasuta huvitavaid erinevaid sõnu ning pikki lauseid.
Eeldame, et räägite eesti keeles ning teete normaalseid lauseid.
Omal vastutusel võib ka lühilauseid proovida.""")
    button1.configure(bg="silver")

def solvangukontroll(vastus_setina):
    for e in solvangud:
        if e in vastus_setina:
            return True

def loe_andmed(failinimi, järjend):
    f = open(failinimi)
    for e in f:
        e = e.strip()
        järjend.append(e)
    f.close()

#Funktsioon, mis teeb sõnad vastuses hulgaks.
def vastus_set(vastus):
    vastuse_set = set()
    vastus = vastus.lower()
    vastus = vastus.strip().split()
    for e in vastus:
        vastuse_set.add(e)
    return vastuse_set

#selleks, et leida, kas on lühivastus või on tegemist pikema lausega.
def vastuse_pikkus(vastus):
    järjend = []
    vastus = vastus.lower()
    vastus = vastus.strip().split()
    pikkus = len(vastus)
    return pikkus

def välju(e):
    root.destroy()

def stopProg(e): #lõpetab tegumi
    tahvel1=Canvas(root, width=500, height=490)
    tahvel1.grid(column=0, row=0, columnspan=2, rowspan=4)
    tahvel1.create_image(250, 245, image=pilt_võit)
    messagebox.showinfo(message="""Suutsid naise tuju heaks teha!
 Selleks kulus """ +str(vastamisi-1) +""" korda.""")
    root.destroy()
def lõpeta(e):#kui inimene ajas naise täiesti närvi
    tahvel1=Canvas(root, width=500, height=490)
    tahvel1.grid(column=0, row=0, columnspan=2, rowspan=4)
    tahvel1.create_image(250, 245, image=pilt_kaotus)
    messagebox.showinfo(message="""Sa ei suuda mu tuju parandada! Asi on läbi!
""" + "Vastamisi: " + str(vastamisi))
    root.destroy()

def transfertext(e): # saab tulla tekst vastusena
    silt.configure(text="Aitäh!")#seesama LABEL1 või silt

def tuju(e): # vastab kordusega
    silt.configure(text="Mis " + sisestus.get()+"?")

def kasutamine(ee, kasutatud):
    if ee in kasutatud:
        global reageering
        messagebox.showinfo(message="SA OLED SEDA LAUSET KASUTANUD!")
        reageering -= 1
        return True
    else:
        kasutatud.append(ee)
        return False

def vastamine(): #vastus vastavalt kirjutatule
    global vastamisi
    global reageering
    global alampiir
    global randint
    global vastuse_pikkus
    global kasutatud
    vastamisi += 1
    suva = randint(0, len(pahanduslaused)-1)
    hea = randint(0, len(kiitmislaused)-1)
    ee = sona.get()
    ee = ee.lower()                                  
    if vastamisi > 12 or reageering <= -10:
        kaotus(e)
        return
    elif reageering >= 5:
        võit(e)
        return
    elif kasutamine(ee, kasutatud)==True: #FUNKTSIOON , mis kontrollid olemasolu
        return
    elif ee == '':
        label1.configure(text='''Mida sa vaikid nüüd,
ma küsisisn sult midagi!''')
        viha(e)
     
    elif vastuse_pikkus(ee) == 1:
        kontroll = 0
        vastus_setina = vastus_set(ee)
        if "ei" in vastus_setina:
            kaotus(e)
        if solvangukontroll(vastus_setina)==True:
            kaotus(e)
            return        
        for i in lühivastused:
            if i in vastus_setina:
                label1.configure(text="Nooh, "+ee+" pole piisav, pikenda mu komplimenti!")
                heaf(e)
                break
            kontroll += 1
        if kontroll == len(vastused):
            label1.configure(text="""Kirjuta pikemalt! Kui sa siin hakkad
vastama ainult ühe sõnaga, siis
ma ei viitsi sinuga üldse rääkida.""")
            neutraalne(e)
 
    elif vastuse_pikkus(ee) == 2:
        kontroll = 0
        vastus_setina = vastus_set(ee)
        if 'oled' in vastus_setina:
            solvangukontroll(vastus_setina)
         
        elif "küll" in vastus_setina or "jah" in vastus_setina or "ikka" in vastus_setina:
            label1.configure(text="Nii tobe ja lühike vastus: " + ee+"""?
Aru ei saa, et ma tahan komplimenti?""", font=appHighlightFont)
            viha(e)
        else:
            for e in vastused:
                if e in vastus_setina:
                    label1.configure(text="Minust räägid vä? Mis ma olen?")
                    neutraalne(e)
                    break
                kontroll += 1
            if kontroll == len(vastused):
                label1.configure(text=pahanduslaused[suva])
                suurviha(e)

    elif vastuse_pikkus(ee) == 3:
        vastus_setina = vastus_set(ee)
        if solvangukontroll(vastus_setina)==True:
            kaotus(e)
            return
        elif "sa" in vastus_setina or "sina" in vastus_setina:
            if "oled" in vastus_setina:
                if "ilus" in vastus_setina or "kena" in vastus_setina or "ilusake" in vastus_setina:
                    label1.configure(text=ee +" ainult? Miks ma ilusam pole?", font=appHighlightFont)
                    heaf()
                elif "küll" in vastus_setina or "jah" in vastus_setina or "ikka" in vastus_setina:
                    label1.configure(text="Nii hale vastus: " + ee+"??? Mida ma järeldama peaks?", font=appHighlightFont)
                    viha(e)
                else:
                    for e in vastused:
                        if e in vastus_setina:
                            label1.configure(text=kiitmislaused[hea])
                            väga_hea(e)
                            break
                        else:
                            if "sa" in vastus_setina:
                                vastus_setina.remove("sa")
                                vastus_setina.remove("oled")
                                for e in vastus_setina:
                                    label1.configure(text="Nii ma olen nüüd " + e + " vä?", font=appHighlightFont)
                                    viha(e)
                                 
                            elif "sina" in vastus_setina:
                                vastus_setina.remove("sina")
                                vastus_setina.remove("oled")
                                for e in vastus_setina:
                                    label1.configure(text="Nii ma olen nüüd " + e + " vä?", font=appHighlightFont)
                                    viha(e)
            else:
                label1.configure(text="Mida tähendab " + ee +
                                 """??
Milline ma välja näen?""", font=appHighlightFont)
                suurviha(e)
 
        elif "sa" not in vastus_setina or "sina" not in vastus_setina:
            kontroll = 0
            for i in vastused:
                if i in vastus_setina:
                    label1.configure(text="Tänan, aga natukene paremini oskad?")
                    neutraalne(e)
                    break
                kontroll += 1
            if kontroll == len(vastused):
                label1.configure(text="Raske juhtum sinuga, räägi selgelt!")
                viha(e)
 
    elif vastuse_pikkus(ee) > 3:
        k1 = 0
        k2 = 0
        vastus_setina = vastus_set(ee)
        if "sa" in vastus_setina or "sina" in vastus_setina:
            if "oled" in vastus_setina:
                if solvangukontroll(vastus_setina)==True:
                    kaotus(e)
                    return
                for e in vastused:
                    k1 += 1
                    if e in vastus_setina:
                     
                        for a in omadussõnad:
                            k2 += 1
                            if a in vastus_setina:
                             
                                label1.configure(text=kiitmislaused[hea])
                                väga_hea(e)
                                break
                             
                            elif k2 == len(omadussõnad):
                                label1.configure(text="""Kas sa äkki oskaksid NORMAALSEID omadussõnu ka kasutada?""")
                                viha(e)
                        break
                    elif k1==len(vastused):
                        label1.configure(text="Ma olen siis täpsemalt mis asi sinu arust?")
                        suurviha(e)
                     
            else:
                label1.configure(text="Mida tähendab " + ee +
                                 """??
Milline ma välja näen?""")
                suurviha(e)

        elif "sa" not in vastus_setina or "sina" not in vastus_setina:
            lugeja = 0
            if solvangukontroll(vastus_setina)==True:
                kaotus(e)
                return
            for e in vastused:
                if e in vastus_setina:
                    label1.configure(text="Mis mölajutt see on?")
                    viha(e)
                    break
                elif not e in vastus_setina:
                    lugeja += 1
            if lugeja == len(vastused):
                label1.configure(text=pahanduslaused[suva])
                suurviha(e)


# - --------------------andmete sisselugemine ---------------------------------
kasutatud = []
küsimused = []
vastused = []
lühivastused = []
pahanduslaused = []
omadussõnad = []
solvangud = []
kiitmislaused = []
reageering = 0
alampiir = 30 #mis väärtus peab olema, et mäng võitaˇ. mis me piiriks paneme?
vastamisi = 0 #vastamiste loendaja

#tekstifailist loetakse sisse igal real olev lause või sõna. Moodustatakse list,
#kus iga tekstifaili rida on ellemendiks
loe_andmed("pahanduslaused.txt", pahanduslaused)
loe_andmed("küsimused.txt", küsimused)
loe_andmed("vastused.txt", vastused)
loe_andmed("lühivastused.txt", lühivastused)
loe_andmed("omadussõnad.txt", omadussõnad)
loe_andmed("kiitmislaused.txt", kiitmislaused)
loe_andmed("solvangud.txt", solvangud)

#--------------------GUI genereerimine-------------------------
root=Tk() #root ise pandud
root.title("Naine vigiseb!")

# akna fikseerimiseks meetod geometry(800x600)
pilt = PhotoImage(file="tumblr_mr4ca3Dn6P1rpqa4xo1_500.gif")#algus
pilt1 = PhotoImage(file="happy-woman-gifs.gif")#hea lõpp
pilt2=PhotoImage(file="angry-woman-588-343_article_new.gif")#väga vihane
pilt3=PhotoImage(file="o-ANGRY-EMAIL-facebook.gif")#vihane
pilt4=PhotoImage(file="a-beautiful_woman-1447985.gif") #mõtleb
pilt5=PhotoImage(file="16165_Unhappy-woman.gif") #õnnetu
pilt6=PhotoImage(file="Angelina_Jolie_Cleopatra.gif") #kulmukortsutav
pilt_võit=PhotoImage(file="dodgedabullet.gif") # kuul
pilt7=PhotoImage(file="photo_products.gif") #veel hea
pilt8=PhotoImage(file="img_1399418229_397.gif") #natuke õnnelik
pilt_kaotus=PhotoImage(file="Passion_by_Imitjdesajn.gif") #kaotus, teine mees


pearaam = ttk.Frame(root, padding="20 20 20 20")
pearaam.grid(column=0, row=0, sticky=(N, W, E, S))
pearaam.columnconfigure(0, weight=1)
pearaam.rowconfigure(2, weight=1)
pearaam.rowconfigure(3, weight=10)

tahvel=Canvas(root, width=500, height=490)
tahvel.grid(column=4, row=0)
tahvel.create_image(250, 245, image=pilt)

appHighlightFont = font.Font(family='Helvetica', size=12, weight='bold')

silt = ttk.Label(pearaam, text="Kas ma olen ilus?")
silt.grid(column=1, row=0, columnspan=2) # rowspan=1, columnspan=1, # sticky=(N, W, E, S)

sona = StringVar()
koht = StringVar() #VARIAABLID

sisestus = ttk.Entry(pearaam, width=60, textvariable=sona)#VASTUS
sisestus.grid(column=1, row=1, columnspan=2)

button2=Button(pearaam,text="Vasta mulle!", bg="deeppink", cursor="heart", activebackground="deeppink", activeforeground="hotpink", pady=10, padx=40, command=vastamine)
button2.grid(column=1, row=2, columnspan=2) #, sticky=(N, W
#button2.bind('<Button-1>',)

label1=Label(pearaam,text="Vasta siis kenasti!", font=appHighlightFont) #ilmub kiri
label1.grid(column=1, row=3, columnspan=2)

button1=Button(pearaam,text="Abi", bg="silver", activebackground="black", pady=6, padx=20, command=abi)
button1.grid(column=1, row=4) #keskel sticky N W
#button1.bind('<Button-1>',abi)#kinniminemisefn

button1=Button(pearaam,text="Sule", pady=6, padx=20, bg="silver") #see võiks tulla kui mäng on läbi
button1.grid(column=2, row=4) #keskel sticky N W
button1.bind('<Button-1>', välju)

for child in pearaam.winfo_children(): child.grid_configure(padx=10, pady=10) #paigutuse element

root.mainloop()

Kommentaare ei ole:

Postita kommentaar