Δημοσιεύτηκε: 20 Νοέμ 2010, 00:36
Ούτε αυτό δουλεύει αγαπητέ.
Ορίστε όλος ο κώδικάς....
Ορίστε όλος ο κώδικάς....
- Κώδικας: Επιλογή όλων
# -*- coding: iso8859-7 -*-
try :
import gtk
import gobject
except:
raise SystemExit
import pygtk
if gtk.pygtk_version<(2.0):
print "pygtk 2.0 or later require for this widget"
raise SystemExit
import pango
import random
import time
from os import open
from datetime import date
from sugar.activity import activity
class KremalaActivity(activity.Activity):
def __init__(self, handle):
activity.Activity.__init__(self, handle)
self.set_title("Kremala Activity")
# Show the toolbox elements
toolbox = activity.ActivityToolbox(self)
self.set_toolbox(toolbox)
toolbox.show()
#mporei kai na mhn xreiazetai auth h grammh
table=gtk.Table()
table.set_homogeneous(False)
table.set_row_spacings(4)
table.set_col_spacings(4)
#listes me tis lekseis
self.list_geo=[u"ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ",u"ΒΑΤΙΚΑΝΟ",u"ΤΑΥΓΕΤΟΣ",u"ΝΟΡΒΗΓΙΑ",u"ΟΛΥΜΠΟΣ",u"ΙΜΑΛΑΙΑ",
u"ΚΑΣΠΙΑ"]
self.list_hist=[u"ΓΑΛΙΛΑΙΟΣ",u"ΜΑΥΡΟΓΕΝΟΥΣ",u"ΓΙΑΛΤΑ",u"ΙΟΥΣΤΙΝΙΑΝΟΣ",u"ΑΡΙΣΤΟΤΕΛΗΣ",u"ΕΙΛΩΤΕΣ",
u"ΛΕΩΝΙΔΑΣ"]
self.list_nat=[u"ΟΞΥΓΟΝΟ",u"ΧΛΩΡΟΦΥΛΗ",u"ΣΑΡΚΟΦΑΓΟ",u"ΒΟΤΑΝΟ",u"ΠΛΑΓΚΤΟΝ",u"ΠΕΤΡΕΛΑΙΟ",
u"ΦΥΛΛΟΒΟΛΟ"]
self.list_question_geo=[u"Είναι η μοναδική πόλη που βρίσκεται ανάμεσα σε 2 χώρες",
u"Ευρωπαϊκό κράτος που έχει έκταση μόλις μισό τετραγωνικό χιλιόμετρο",
u"Σε αυτό το βουνό βρισκόταν ο <ΚΑΙΑΔΑΣ>",
u"Χώρα όπου βρίσκονται οι ψηλότεροι καταράκτες της Ευρώπης",
u"Είναι το υψηλότερο όρος της Ελλάδας",
u"Είναι η υψηλότερη οροσειρά του κόσμου",
u"Είναι η μεγαλύτερη λίμνη του κόσμου και έχει αλμυρό νερό"]
self.list_question_hist=[u"Είπε τη φράση: < ΚΙ ΟΜΩΣ ΚΙΝΕΙΤΑΙ >",
u"Ηρωίδα της Ελληνικής Επανάστασης που έδιωξε ο Κωλλέτης απο το Ναύπλιο",
u"Διάσκεψη στην οποία συζητήθηκε η ίδρυση του Ο.Η.Ε.",
u"Βυζαντινός Αυτοκράτορας",
u"Δάσκαλος του Μέγα Αλεξάνδρου",
u"Έτσι λέγοταν οι < δούλοι > στην αρχαία Σπάρτη",
u"Βασιλιάς της Σπάρτης που είπε το γνωστό < ΜΟΛΩΝ ΛΑΒΕ >"]
self.list_question_nat=[u"Χωρίς αυτό δεν υπάρχει ζωή",
u"Απαραίτητη ουσία για το χρώμα των φυτών",
u"Είναι το ζώο που τρέφεται μόνο με κρέας",
u"Φυτό το οποίο έχει θεραπευτικές ιδιότητες",
u"Με αυτό τρέφονται τα μικρά ψάρια",
u"Παχύρευστη, μαύρη ουσία που αποκαλείται και < ΜΑΥΡΟΣ ΧΡΥΣΟΣ >",
u"Έτσι λέγεται το δέντρο που ρίχνει τα φύλλα του το Φθινώπορο"]
button_activity=gtk.Button(u"Έξοδος")
button_activity.connect("clicked",lambda wid:gtk.main_quit())
tooltip = gtk.Tooltips()
tooltip.set_tip(button_activity, u"Αποσύνδεση απο το παιχνίδι")
entryname=gtk.Entry()
entryname.modify_font(pango.FontDescription(str='sans bold 10'))
entryname.set_max_length(100)
self.entname=entryname.get_text()
button_save=gtk.Button(u"Είσοδος")
button_save.connect("clicked",self.buttonsave)
tooltips = gtk.Tooltips()
tooltips.set_tip(button_save, u"Σύνδεση στο παιχνίδι")
self.m=6
vbox=gtk.VBox()
event_box = gtk.EventBox()
event_box.modify_bg(gtk.STATE_NORMAL, event_box.get_colormap().alloc_color("#75B844"))
image = gtk.Image()
image.set_from_file(self.make_image_name(self.m))
self.image=image
event_box.add(self.image)
vbox.add(event_box)
vbox1=gtk.VBox()
event_box1= gtk.EventBox()
event_box1.modify_bg(gtk.STATE_NORMAL, event_box1.get_colormap().alloc_color("#FFF333"))
image1 = gtk.Image()
image1.set_from_file('imgg/skepsi.jpg')
self.image1=image1
event_box1.add(self.image1)
vbox1.add(event_box1)
#kathgories
table_category=gtk.Table()
table_category.set_homogeneous(False)
table_category.set_row_spacings(2)
table_category.set_col_spacings(2)
buttongeo=gtk.Button(u"ΓΕΩΓΡΑΦΙΑ")
buttongeo.connect("clicked", self.random_word, self.list_geo)
tooltips = gtk.Tooltips()
tooltips.set_tip(buttongeo, u"Κατηγορία λέξεων με θέμα τη Γεωγραφία")
buttonhist=gtk.Button(u"ΙΣΤΟΡΙΑ")
buttonhist.connect("clicked", self.random_word, self.list_hist)
tooltips = gtk.Tooltips()
tooltips.set_tip(buttonhist, u"Κατηγορία λέξεων με θέμα την Ιστορία")
buttonnat=gtk.Button(u"ΠΕΡΙΒΑΛΛΟΝ")
buttonnat.connect("clicked", self.random_word, self.list_nat)
tooltips = gtk.Tooltips()
tooltips.set_tip(buttonnat, u"Κατηγορία λέξεων με θέμα το Περιβάλλον")
self.buttongeo=buttongeo
self.buttonhist=buttonhist
self.buttonnat=buttonnat
table_category.attach(buttongeo,0,1,0,1)
table_category.attach(buttonhist,0,1,1,2)
table_category.attach(buttonnat,0,1,2,3)
vbox2=gtk.VBox()
event_box2= gtk.EventBox()
event_box2.modify_bg(gtk.STATE_NORMAL, event_box2.get_colormap().alloc_color("#75B844"))
image2 = gtk.Image()
image2.set_from_file('imgg/img_kategory.jpg')
self.image2=image2
event_box2.add(self.image2)
vbox2.add(event_box2)
textview2=gtk.TextView() #leksi
textview2.set_editable(False)
textview2.set_cursor_visible(False)
textview2.set_justification(gtk.JUSTIFY_CENTER)
textview2.modify_font(pango.FontDescription(str='sans bold 18'))
self.textbuffer2=textview2.get_buffer()
entrygr=gtk.Entry()
entrygr.set_editable(False)
entrygr.modify_font(pango.FontDescription(str='sans bold 16'))
entrygr.set_max_length(13)
self.entgr=entrygr.get_text()
tooltips = gtk.Tooltips()
tooltips.set_tip(entrygr, u"Εδώ εμφανίζονται τα γράμματα που έχεις επιλέξει και είναι ΛΑΘΟΣ")
textview1=gtk.TextView() #erotisi
textview1.set_editable(False)
textview1.set_cursor_visible(False)
textview1.set_justification(gtk.JUSTIFY_LEFT)
textview1.modify_font(pango.FontDescription(str='sans bold 8'))
self.textbuffer1=textview1.get_buffer()
labelname=gtk.Label(u"Όνομα προφίλ:")
labelname.modify_font(pango.FontDescription(str='sans bold 10'))
labelname.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse('red'))
entrymin=gtk.Entry()
entrymin.set_editable(False)
entrymin.modify_font(pango.FontDescription(str='sans bold 10'))
entrymin.set_max_length(100)
self.entmin=entrymin.get_text()
entryprot=gtk.Entry()
entryprot.set_editable(False)
entryprot.modify_font(pango.FontDescription(str='sans bold 12'))
entryprot.set_max_length(70)
self.entprot=entryprot.get_text()
#dhmiourgei to plhktrologio me ta gramata
pad=gtk.Table()
table.set_homogeneous(False)
pad.set_row_spacings(2)
pad.set_col_spacings(1)
but_a=gtk.Button(u'Α')
but_a.connect("clicked", self.add_letter, u'Α')
self.but_a=but_a
but_b=gtk.Button(u'Β')
but_b.connect("clicked", self.add_letter, u'Β')
self.but_b=but_b
but_c=gtk.Button(u'Γ')
but_c.connect("clicked", self.add_letter, u'Γ')
self.but_c=but_c
but_d=gtk.Button(u'Δ')
but_d.connect("clicked", self.add_letter, u'Δ')
self.but_d=but_d
but_e=gtk.Button(u'Ε')
but_e.connect("clicked", self.add_letter, u'Ε')
self.but_e=but_e
but_f=gtk.Button(u'Ζ')
but_f.connect("clicked", self.add_letter, u'Ζ')
self.but_f=but_f
but_g=gtk.Button(u'Η')
but_g.connect("clicked", self.add_letter, u'Η')
self.but_g=but_g
but_h=gtk.Button(u'Θ')
but_h.connect("clicked", self.add_letter, u'Θ')
self.but_h=but_h
but_i=gtk.Button(u'Ι')
but_i.connect("clicked", self.add_letter, u'Ι')
self.but_i=but_i
but_j=gtk.Button(u'Κ')
but_j.connect("clicked", self.add_letter, u'Κ')
self.but_j=but_j
but_k=gtk.Button(u'Λ')
but_k.connect("clicked", self.add_letter, u'Λ')
self.but_k=but_k
but_l=gtk.Button(u'Μ')
but_l.connect("clicked", self.add_letter, u'Μ')
self.but_l=but_l
but_m=gtk.Button(u'Ν')
but_m.connect("clicked", self.add_letter, u'Ν')
self.but_m=but_m
but_n=gtk.Button(u'Ξ')
but_n.connect("clicked", self.add_letter, u'Ξ')
self.but_n=but_n
but_o=gtk.Button(u'Ο')
but_o.connect("clicked", self.add_letter, u'Ο')
self.but_o=but_o
but_p=gtk.Button(u'Π')
but_p.connect("clicked", self.add_letter, u'Π')
self.but_p=but_p
but_q=gtk.Button(u'Ρ')
but_q.connect("clicked", self.add_letter, u'Ρ')
self.but_q=but_q
but_r=gtk.Button(u'Σ')
but_r.connect("clicked", self.add_letter, u'Σ')
self.but_r=but_r
but_s=gtk.Button(u'Τ')
but_s.connect("clicked", self.add_letter, u'Τ')
self.but_s=but_s
but_t=gtk.Button(u'Υ')
but_t.connect("clicked", self.add_letter, u'Υ')
self.but_t=but_t
but_u=gtk.Button(u'Φ')
but_u.connect("clicked", self.add_letter, u'Φ')
self.but_u=but_u
but_v=gtk.Button(u'Χ')
but_v.connect("clicked", self.add_letter, u'Χ')
self.but_v=but_v
but_w=gtk.Button(u'Ψ')
but_w.connect("clicked", self.add_letter, u'Ψ')
self.but_w=but_w
but_x=gtk.Button(u'Ω')
but_x.connect("clicked", self.add_letter, u'Ω')
self.but_x=but_x
#####self.buffer_test.set_text(onoma metavlitis 'h "keimeno")
test=gtk.TextView()
self.test=test
self.buffer_test=test.get_buffer()
pad.attach(but_a,0,1,0,1)
pad.attach(but_b,1,2,0,1)
pad.attach(but_c,2,3,0,1)
pad.attach(but_d,3,4,0,1)
pad.attach(but_e,4,5,0,1)
pad.attach(but_f,5,6,0,1)
pad.attach(but_g,6,7,0,1)
pad.attach(but_h,7,8,0,1)
pad.attach(but_i,8,9,0,1)
pad.attach(but_j,9,10,0,1)
pad.attach(but_k,10,11,0,1)
pad.attach(but_l,11,12,0,1)
pad.attach(but_m,12,13,0,1)
pad.attach(but_n,0,1,1,2)
pad.attach(but_o,1,2,1,2)
pad.attach(but_p,2,3,1,2)
pad.attach(but_q,3,4,1,2)
pad.attach(but_r,4,5,1,2)
pad.attach(but_s,5,6,1,2)
pad.attach(but_t,6,7,1,2)
pad.attach(but_u,7,8,1,2)
pad.attach(but_v,8,9,1,2)
pad.attach(but_w,9,10,1,2)
pad.attach(but_x,10,11,1,2)
pad.attach(test,11,13,1,2)
#vazei ola ta widgets sto table
table.attach(button_activity,6,7,0,1)
table.attach(labelname,2,3,0,1)
table.attach(entryname,3,5,0,1)
table.attach(button_save,5,6,0,1)
table.attach(vbox,0,2,0,4)
table.attach(table_category,2,4,1,2)
table.attach(vbox2,4,10,1,2)
table.attach(textview2,2,10,2,3)
table.attach(entrygr, 2,10,3,4)
table.attach(textview1,0,10,4,5)
table.attach(vbox1,0,1,5,6)
table.attach(entrymin, 1,10,5,6)
table.attach(entryprot, 0,10,6,7)
table.attach(pad, 0,10,7,8)
##
## window.add(table)
## window.show_all()
self.set_canvas(table)
self.show_all()
self.view2=textview2
self.entrygr=entrygr
self.entrymin=entrymin
self.entryprot=entryprot
self.entryname=entryname
self.button_save=button_save
self.button_activity=button_activity
self.image.set_from_file(self.make_image_name(6))
self.list_button=[self.but_a, self.but_b,self.but_c,self.but_d,self.but_e,self.but_f,
self.but_g,self.but_h,self.but_i,self.but_j,self.but_k,self.but_l,
self.but_m,self.but_n,self.but_o,self.but_p,self.but_q,self.but_r,
self.but_s,self.but_t,self.but_u,self.but_v,self.but_w,self.but_x,self.test]
self.buttongeo.set_sensitive(False)
self.buttonhist.set_sensitive(False)
self.buttonnat.set_sensitive(False)
self.disable_keyboard(False)
self.entryprot.set_text(u"Έχεις 6 προσπάθειες για να βρείς τη λέξη")
#metavlites
self.w=" " #apithikeuetai h epilegmenh leksi
self.p=" " #apothikeuontai oi paules
self.list_again=[] #lista me ta gramata pou dinontai
self.gr=' ' #to grama pou epilegei o xrhsths
self.categ=" "
infile = file("words.txt", "r") #####----------------------------------------------------------> Το σημείο για το οποίο σου λέω. Μόνο έτσι δουλεύει....
## text_file = infile.readline()
## self.buffer_test.set_text(text_file)
## to_file="EPITELOUS EGRAPSA"
## infile.write(to_file)
infile.close()
#epistrefei thn eikona
def make_image_name(self, image_number):
return "imgg/image" + str(image_number) + ".jpg"
#synarthsh poy allazei tis eikones analoga me thn timh tou metrhth m
def change_image(self):
for i in range(6):
if self.m==i:
self.image.set_from_file(self.make_image_name(i))
return True
#vriskei ta gramata ths leksis
def show_gr(self):
new="" #apothikeuetai h nea leksi
for i in range(len(self.w)):
if self.gr==self.w[i]: #an to grama uparxei sth leksi
new=new+self.gr #to vazei sto new
else:
new=new+self.p[i] #allios vazei paula, to p[] periexei paules
self.p=new
self.textbuffer2.set_text(new) #emfanizei sto textview2 th nea leksi
#eisagei stoixeia sto arxeio elements.txt, to opoio periexei statistika stoixeia ton paikton
def insert_text_file(self, strng):
file_obj = file(u'elements.txt', u'a') #######------------------------------------------------------>Αυτό δεν κρασάρει γιατί είναι μέσα σε def.
file_obj.write(strng) ##### Ουσιαστικά αυτό θέλω να φτιάξω. Το παραπάνω είναι δοκιμαστικό
file_obj.close()
#otan path8ei to save, apo8ikeuontai kapoia stoixeia sto elements_file.txt
def buttonsave(self,widget):
self.disable_buttCateg(True)
self.disable_keyboard(True)
self.button_save.set_sensitive(False) #apenergopoihsh tou button save, etsi oste #ka8e neos paikths na apo8hkeuei mia fora
#to onoma tou oso exei anoixto to paixnidi
ss=" "
profileElements=" "
ss=u"\nΌνομα προφίλ: "+self.entryname.get_text()+"\n" #onoma paikth
xronos=date.today() #hmerominia
y=xronos.strftime("%m-%d-%y") #y=periexei thn hmerominia p.x. 03-05-09
u=time.localtime() #ora
w=time.strftime("%H:%M:%S",u) #w=periexei thn ora p.x. 12:25:13
profileElements=ss+ u"Ημερομηνία - Ώρα: "+y+" / "+w+"\n"
self.insert_text_file(profileElements)
#kaleitai otan o piakths vrei th leksi
def sosti_leksi(self):
if self.w==self.p: #an h epilegmenh leksi 'w' einai ish me thn metabliti 'p'
#poy periexei ta sosta gramata poy vriskei o paikths
self.entrymin.set_text(u"Συγχαρητήρια, ΚΕΡΔΙΣΕΣ!!!")
self.disable_keyboard(False)
self.image1.set_from_file('imgg/Kerdises.jpg')
s=self.categ+": "+str(1)+ u" νίκη με "+str(6-self.m)+ u" προσπάθειες\n"
self.insert_text_file(s)
#apenergopoiei to plhktrologio
def disable_keyboard(self, valuebool):
for i in range(24):
self.list_button[i].set_sensitive(valuebool)
#apenergopoihsh button kathgorion
def disable_buttCateg(self, timi):
self.buttongeo.set_sensitive(timi)
self.buttonhist.set_sensitive(timi)
self.buttonnat.set_sensitive(timi)
#kaleitai otan o piakths den vrei th leksi
def lathos_leksi(self):
self.entrymin.set_text(u"Λυπάμαι, έχασες. Η σωστή λέξη είναι: "+self.w)
self.disable_keyboard(False)
self.image1.set_from_file('imgg/exases.jpg')
rr=self.categ+": "+str(1)+ u" ήττα\n"
self.insert_text_file(rr)
#elegxei an to grama exei dothei ksana
def gr_again(self, g, lista):
for k in range(len(lista)):
if lista[k]==g:
return True
#kaleitai otan patithei kapoio grama
def add_letter(self,widget, grama):
self.gr=grama
self.entrymin.set_text("")
again=self.gr_again(self.gr, self.list_again)
if again==True:
self.entrymin.set_text(u"Το γράμμα υπάρχει ήδη! Επέλεξε άλλο...")
else:
self.find_w()
#h synarthsh me oles tis leitourgies gia na brethei h leksi
def find_w(self):
self.list_again.append(self.gr) #vazei to grama sth lista me ta dosmena gramata
t=self.w.find(self.gr) #elegxei an to grama uparxei sth leksi
if t==-1: #an den uparxei
self.m=self.m-1 #meionei ton metrhth prospatheion
if self.m==0: #an einai mhden, emfanizei thn protash,
#emfanizei to la8os grama kai to skitso,
#kalei thn lathos_leksi
self.entryprot.set_text(u"Έχεις "+str(self.m)+ u" προσπάθειες για να βρείς τη λέξη")
self.entrygr.insert_text(self.gr+" ",len(self.entgr)-1)
self.image.set_from_file(self.make_image_name(0))
self.lathos_leksi()
elif self.m>0: #an einai megalytero tou mhdenos,
#emfanizei thn protash,
#emfanizei to la8os grama kai to skitso
self.entryprot.set_text(u"Έχεις "+str(self.m)+ u" προσπάθειες για να βρείς τη λέξη")
self.entrygr.insert_text(self.gr+" ",len(self.entgr)-1)
self.change_image()
else: #an uparxei to gramma kalei tis show_gr() kai sosti_leksi()
self.show_gr()
self.sosti_leksi()
#epistrefei thn kathgoria pou epelekse o paikths gia na graftei sto arxeio me ta stoixeia
def name_category(self, lista):
if lista==self.list_geo:
self.categ=u"Γεωγραφία"
elif lista==self.list_hist:
self.categ=u"Ιστορία"
elif lista==self.list_nat:
self.categ=u"Περιβάλλον"
return self.categ
def question(self, listakat):
q=""
if listakat==self.list_geo:
for i in range(7):
if self.list_geo[i]==self.w:
q=self.list_question_geo[i]
elif listakat==self.list_hist:
for i in range(7):
if self.list_hist[i]==self.w:
q=self.list_question_hist[i]
elif listakat==self.list_nat:
for i in range(7):
if self.list_nat[i]==self.w:
q=self.list_question_nat[i]
return q
#kaleitai otan path8ei button kapoias kathgorias
def random_word(self, widget, lista):
self.name_category(lista)
self.m=6
self.clear()
self.w=random.choice(lista)
n=len(self.w)
self.p="-"*n
iter=self.textbuffer2.get_iter_at_offset(0)
self.textbuffer2.insert(iter,self.p)
ques=self.question(lista)
self.textbuffer1.set_text(ques)
##"\n"+"\n"+
#katharizei thn othonh se kathe neo paixnidi
def clear(self):
self.entrygr.set_text(" ")
self.entrymin.set_text(" ")
self.entryprot.set_text(u"Έχεις 6 προσπάθειες για να βρείς τη λέξη")
self.textbuffer2.set_text(" ")
self.list_again=[]
self.image.set_from_file(self.make_image_name(6))
self.image1.set_from_file('imgg/skepsi.jpg')
self.disable_keyboard(True)
def main():
win = gtk.Window(gtk.WINDOW_TOPLEVEL)
KremalaActivity(win)
gtk.main()
return 0
if __name__ == "__main__":
main()