neljapäev, 11. detsember 2014

Meie projekti failid

naine vigiseb v5.py


from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from tkinter import font

from random import randint

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#---tujufunktsioonid-----

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

def neutraalne(): # 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(): # +2 p
    global reageering
    button2.configure(text="Kirjelda mind!", bg="green")
    tahvel.create_image(250, 245, image=pilt7)
    reageering += 2
    
def võit():
    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():
    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 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: #MUUDETAVAD raskused
        kaotus()
        return
    elif reageering > 5:
        võit()
        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()
        
    elif len(vastus_set(ee)) == 1:
        kontroll = 0
        vastus_setina = vastus_set(ee)
        if "ei" in vastus_setina:
            kaotus()
        if solvangukontroll(vastus_setina)==True:
            kaotus()
            return           
        for i in lühivastused:
            if i in vastus_setina:
                label1.configure(text="Nooh, "+ee+" pole piisav, pikenda mu komplimenti!")
                heaf()
                break
            kontroll += 1
        if kontroll == len(lühivastused):
            label1.configure(text="""Kirjuta pikemalt! Kui sa siin hakkad
vastama ainult ühe sõnaga, siis
ma ei viitsi sinuga üldse rääkida.""")
            neutraalne()
    
    elif vastuse_pikkus(ee) == 2:
        kontroll = 0
        vastus_setina = vastus_set(ee)
        if 'oled' in vastus_setina:
            if solvangukontroll(vastus_setina)==True:
                kaotus()
                return
            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)
                neutraalne()
            else:
                for e in vastused:
                    if e in vastus_setina:
                        label1.configure(text="Sa kasutad nii vähe sõnu minu iseloomustamiseks!")
                        neutraalne()
                        break
                    kontroll += 1
                if kontroll == len(vastused):
                    label1.configure(text=pahanduslaused[suva])
                    viha()
    
        else:
            for e in vastused:
                if e in vastus_setina:
                    label1.configure(text="Ära räägi teistest naistest! MINA?")
                    viha()
                    break
                kontroll += 1
            if kontroll == len(vastused):
                label1.configure(text=pahanduslaused[suva])
                suurviha()

    elif vastuse_pikkus(ee) == 3:
        vastus_setina = vastus_set(ee)
        if solvangukontroll(vastus_setina)==True:
            kaotus()
            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.capitalize() +" ainult? Miks ma ilusam pole?", font=appHighlightFont)
                    button2.configure(text="Vasta!", bg="springgreen")
                    tahvel.create_image(250, 245, image=pilt5)
                    reageering += 1
                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()
                else:
                    for e in vastused:
                        if e in vastus_setina:
                            label1.configure(text=kiitmislaused[hea])
                            väga_hea()
                            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()
                                    
                            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()
            else:
                label1.configure(text="Mida tähendab " + ee +
                                 """??
Milline ma välja näen?""", font=appHighlightFont)
                suurviha()
    
        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()
                    break
                kontroll += 1
            if kontroll == len(vastused):
                label1.configure(text="Raske juhtum sinuga, räägi selgelt!")
                viha()
    
    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()
                    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()
                                break
                                
                            elif k2 == len(omadussõnad):
                                label1.configure(text="""Kas sa äkki oskaksid NORMAALSEID omadussõnu ka kasutada?""")
                                viha()
                        break
                    elif k1==len(vastused):
                        label1.configure(text="Ma olen siis täpsemalt mis asi sinu arust?")
                        suurviha()
                        
            else:
                label1.configure(text="Mida tähendab " + ee +
                                 """??
Milline ma välja näen?""")
                suurviha()

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


# - --------------------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() 






tekstifailid:
vastused.txt
ilus
võrratu
kena
kenake
kaunis
armsake
kütkestav
jumalik
kaunitar
imekena
lummav
hurmav
imeline
kaunitar
superilus
superkena
megakena
kaunis
ilusake
nunnu
armas
kaunitar

solvangud.txt
kole
kõõm
inetu
vastik
tülgastav
paks
rasv
pekk
ei ole
rõve
jälk
elajas
peletis


pahanduslaused.txt
Mida sa ajad?
Mis jura sa räägid?
Ma ei saa su jutust aru!?
Räägi selgemalt!
Miks sa mulle normaalselt ei vasta?
Olen MINA ILUS VÕI MIS?!
Kas sa ütled, et ma olen paks?
Miks sa ikka mulle ei vasta?
Tahaks komplimenti!!!
Küsisin sult üht lihtsat asja!
Ei mäleta mu küsimust vä?!
Ma saan vihaseks! MILLINE ma olen?
Tahan teada, milline ma välja näen!
Raske on vastata hästi või?
Räägi minuga selgelt!
Olen ma näiteks lummav?
Kas tahad öelda, et olen jumalik? ÜTLE SIIS!
Sa ajad mu hulluks!!!


omadussõnad.txt
väga
jõhkralt
tõsiselt
silmipimestavalt
tohutult
hästi
eriti
täiega
hullult
jumalikult
megalt
mega
lummavalt
liigagi
liiga
jumala
võrratult
eriliselt
jumala
nii
tõesti
ilus
kena
kenake


lühivastused.txt
jah
jaa
ja
oled
ikka
küll
sina
väga
väga
jõhkralt
tõsiselt
silmipimestavalt
tohutult
hästi
eriti
täiega
hullult
jumalikult
megalt
mega
lummavalt
liigagi
liiga
jumala
nii
tõeliselt

küsimused.txt
Kas ma olen ilus?
Lihtsalt jah misasi? Milline ma olen?!
No kui ilus siis?
Kui ilus ja kes???
Mis asja ma väga olen? Paks või? 
Kohutav, mida sa ajad! Milline ma siis välja näen?
Mis küll olen?! Täislausega?!
Noh olen misasi sinu meelest siis?
Kes on kaunis?
Mis MA siis olen?!?! TÄISLAUSEGA?!
Kas sa nagu täislausega ei oska mulle öelda kui väga ilus ma olen vä?!
Räägi selgete sõnadega ja täislausega! Milline ma siis välja näen?

kiitmislaused.txt
Tänan, ilus kompliment! Ütle veel midagi sellist!
Suudad sa veel mind nii armsalt võluda?
Natuke veel mõni armas lauseke!
Kiida mind veidi veel!
Ohh! Kas tõesti? Ütle veel midagi!
Ütle midagi uuesti nii armsat!
Tahan veel kuulda midagi ilusat!


Kasutatud graafilised kujutised:












Kommentaare ei ole:

Postita kommentaar