from Globals import InitializeClass, DTMLFile, Persistent from OFS.Folder import Folder def lisamisKonstruktor(lisaja): "Uus tervitaja" tk=Tripsukataloog() tk.id="tripsud" lisaja.Destination()._setObject(tk.id, tk) return "Lisatud tripsude kataloog" class Tripsukataloog(Folder, Persistent): "Tripsude hoidmise koht" meta_type="Tripsukataloog" tripsuloendur=0 def lisaUusTrips(self): "Kataloogi kylge uue mangu lisamine" self.tripsuloendur=self.tripsuloendur+1 t=Trips() t.id="trips"+str(self.tripsuloendur) self._setObject(t.id, t) return "loodud "+t.id def kysiTripsud(self): "Kataloogist tripsude massiiv" return self.objectValues('Trips1') InitializeClass(Tripsukataloog) class Trips(Folder, Persistent): "Pysivate andmetega klass" meta_type="Trips1" andmed=['_', '_', '_', '_', '_', '_', '_', '_', '_'] kelleKord='X' mangija1="nimetu" mangija2="nimetu" kaikudeArv=0 voitja="puudub" def index_html(self): "Vaikimisi meetod" return "Tere tulemast" def alustaUus(self, REQUEST): "Uue mangu algus" self.andmed=['_', '_', '_', '_', '_', '_', '_', '_', '_'] self.kelleKord='X' self.voitja="puudub" self.mangija1="nimetu" self.mangija2="nimetu" self.kaikudeArv=0 REQUEST.RESPONSE.redirect('mangulaud') #return "Alustati uus" def kysiVoitja(self): "V6itja symbol" return self.voitja def kysiSymbol(self, koht): "Symbol ruudustikus" return self.andmed[int(koht)] def kysiSymbolid(self): "Koik symbolid tekstina" return "".join(self.andmed) def kysiMangijad(self): "Mangijate andmed" return "X/"+self.mangija1+" - 0/"+self.mangija2 def kysiKaikudeArv(self): "Tehtud kaikude arv" return self.kaikudeArv def voiduKontroll(self, koht1, koht2, koht3, kes): "Teade, kas viimatine k8ija v6itis" if self.andmed[koht1]!=kes: return 0 if self.andmed[koht1]==self.andmed[koht2] and \ self.andmed[koht2]==self.andmed[koht3]: return 1 return 0 def koikVoiduKontrollid(self): "Kui kasv6i yks v6itev kombinatsioon, siis v6itnud" if self.voiduKontroll(0, 1, 2, self.kelleKord): return 1 if self.voiduKontroll(3, 4, 5, self.kelleKord): return 1 if self.voiduKontroll(6, 7, 8, self.kelleKord): return 1 if self.voiduKontroll(0, 3, 6, self.kelleKord): return 1 if self.voiduKontroll(1, 4, 7, self.kelleKord): return 1 if self.voiduKontroll(2, 5, 8, self.kelleKord): return 1 if self.voiduKontroll(0, 4, 8, self.kelleKord): return 1 if self.voiduKontroll(2, 4, 6, self.kelleKord): return 1 return 0 def vajutus(self, REQUEST, koht): "Viitele reageerimine" if(self.andmed[int(koht)]!='_'): return "Koht "+koht+" juba kinni!" self.kaikudeArv=self.kaikudeArv+1 # if self.kaikudeArv>2: # if self.kaikudeArv % 2 == 1: # if str(REQUEST.AUTHENTICATED_USER)!=self.mangija1: # self.kaikudeArv=self.kaikudeArv-1 #jai tegemata # return self.mangija1+" kord" # else: # if str(REQUEST.AUTHENTICATED_USER)!=self.mangija2: # self.kaikudeArv=self.kaikudeArv-1 #jai tegemata # return self.mangija2+" kord" self.andmed[int(koht)]=self.kelleKord self.andmed=self.andmed vastus="Kohale "+koht+" kirjutati "+self.kelleKord if self.koikVoiduKontrollid(): self.voitja=self.kelleKord if self.kaikudeArv==1: self.mangija1=str(REQUEST.AUTHENTICATED_USER) if self.kaikudeArv==2: self.mangija2=str(REQUEST.AUTHENTICATED_USER) print self.koikVoiduKontrollid() if self.kaikudeArv==9: if not self.koikVoiduKontrollid(): self.voitja="viik" if self.kelleKord=='X': self.kelleKord='0' else: self.kelleKord='X' #return vastus REQUEST.RESPONSE.redirect('mangulaud') InitializeClass(Trips)