/[gzz]/gzz/gfx/demo/psyko2.py
ViewVC logotype

Diff of /gzz/gfx/demo/psyko2.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by jvk, Wed Oct 2 13:19:01 2002 UTC revision 1.11 by jvk, Thu Oct 3 12:04:12 2002 UTC
# Line 11  from gfx.libpaper.papermill import ThePa Line 11  from gfx.libpaper.papermill import ThePa
11  # A jython test program for papers  # A jython test program for papers
12  # Load using gldemo.py  # Load using gldemo.py
13    
14  seed = 5225       # shuffling  seed_learn = 653       # shuffling in learning phase
15  seed0 = 1435   # "old" textures  seed_test = 234       # shuffling in online test phase
16  seed1 = 54134   # "new" textures  seed_old = 423   # "old" textures
17    seed_new = 773   # "new" textures
18    
19  numtex0  = 30  # Number of different "old" textures  numtex_old  = 30  # Number of different "old" textures
20  numtex1  = 100  # Number of different "new" textures  numtex_new  = 100  # Number of different "new" textures
21    
22  showtex0 = 100  showtex_old = 100
23    
24  feedbackduration = 3000  feedbackduration = 3000
25    
# Line 38  def dupes(list): Line 39  def dupes(list):
39      return len(hash) < len(list)      return len(hash) < len(list)
40    
41    
42  rng = java.util.Random(seed)  rng_learn = java.util.Random(seed_learn)
43  rng0 = java.util.Random(seed0)  rng_test = java.util.Random(seed_test)
44  rng1 = java.util.Random(seed1)  rng_old = java.util.Random(seed_old)
45    rng_new = java.util.Random(seed_new)
46    
47  while 1:  while 1:
48      tex0 = [ rng0.nextInt(2000000000) for i in range(0,numtex0) ]      tex_old = [ rng_old.nextInt(2000000000) for i in range(0,numtex_old) ]
49      if dupes(tex0): continue      if dupes(tex_old): continue
50      break      break
51    
52  while 1:  while 1:
53      tex1 = [ rng1.nextInt(2000000000) for i in range(0,numtex1) ]      tex_new = [ rng_new.nextInt(2000000000) for i in range(0,numtex_new) ]
54      if dupes(tex0 + tex1): continue      if dupes(tex_old + tex_new): continue
55      break      break
56    
57    
58  log("textures0 seed: " + str(seed0))  log("old textures seed: " + str(seed_old))
59  log("textures0: " + js(tex0))  log("old textures: " + js(tex_old))
60    
61  log("textures1 seed: " + str(seed1))  log("new textures seed: " + str(seed_new))
62  log("textures1: " + js(tex1))  log("new textures: " + js(tex_new))
63    
64  log("shuffling seed: " + str(seed))  log("learning phase shuffling seed: " + str(seed_learn))
65    log("online testing shuffling seed: " + str(seed_test))
66    
67    
68  execfile("gfx/demo/zipf.py")  execfile("gfx/demo/zipf.py")
69    
70    
71  probs = getZipfDistribution(numtex0)  probs = getZipfDistribution(numtex_old)
72    
73  learninglist = (  learninglist = (
74      reduce(lambda x,y: x+y,      reduce(lambda x,y: x+y,
75             [ [ tex0[i] for foo in range(0, int(round(probs[i] * numtex1))) ]             [ [ tex_old[i] for foo in range(0, int(round(probs[i] * numtex_new))) ]
76               for i in range(0,numtex0)] )               for i in range(0,numtex_old)] )
77      )      )
78  learninglist = learninglist[0:showtex0]  learninglist = learninglist[0:showtex_old]
79    
80  onlinelist = (  onlinelist = (
81      reduce(lambda x,y: x+y,      reduce(lambda x,y: x+y,
82             [ [ tex0[i] for foo in range(0, int(round(probs[i] * numtex1))) ]             [ [ tex_old[i] for foo in range(0, int(round(probs[i] * numtex_new))) ]
83               for i in range(0,numtex0)] )               for i in range(0,numtex_old)] )
84      + tex1      + tex_new
85      )      )
86    
87  words = {}  words = {}
88  for i in range(0, len(tex0)):  for i in range(0, len(tex_old)):
89      words[tex0[i]] = str(i)      words[tex_old[i]] = str(i)
90            
91  for seed in tex1: words[seed] = "-"  for seed in tex_new: words[seed] = "-"
92    
93  seen = {}  seen = {}
94  for seed in tex0 + tex1: seen[seed] = None  for seed in tex_old + tex_new: seen[seed] = None
95  for seed in learninglist: seen[seed] = "learning phase"  for seed in learninglist: seen[seed] = "learning phase"
96    
97    
# Line 142  class LearningScene: Line 145  class LearningScene:
145          self.toid = None          self.toid = None
146    
147          self.list = learninglist          self.list = learninglist
148          shuffle(self.list, rng.nextFloat)          shuffle(self.list, rng_learn.nextFloat)
149    
150      def prepareNextTrial(self):      def prepareNextTrial(self):
151          if self.trial < len(self.list):          if self.trial < len(self.list):
152              self.seed = self.list[self.trial]              self.seed = self.list[self.trial]
153              self.pq = getpaper(self.seed)              self.pq = getpaper(self.seed)
         else:  
             self.seed = None  
           
154    
155      def nextTrial(self):      def nextTrial(self):
156          global currentScene          global currentScene
157          if self.seed != None:          if self.trial < len(self.list):
158              if self.seed != self.list[self.trial]:              if self.seed != self.list[self.trial]:
159                  self.prepareNextTrial()                  self.prepareNextTrial()
160                                    
# Line 199  class LearningScene: Line 199  class LearningScene:
199              cs1 = vs.coords.affineCoordsys(0, 5, 570, 450, 1, 0, 0, 1)              cs1 = vs.coords.affineCoordsys(0, 5, 570, 450, 1, 0, 0, 1)
200              vs.matcher.add(cs1, "msg")              vs.matcher.add(cs1, "msg")
201              putText(vs, cs1, words[self.seed], color=(0,0,0),w=4,h=4)              putText(vs, cs1, words[self.seed], color=(0,0,0),w=4,h=4)
202                
203          return vs          return vs
204    
205    
# Line 219  class OnlineTestScene: Line 219  class OnlineTestScene:
219          }          }
220    
221          self.list = onlinelist          self.list = onlinelist
222          shuffle(self.list, rng.nextFloat)          shuffle(self.list, rng_test.nextFloat)
223    
224      def prepareNextTrial(self):      def prepareNextTrial(self):
225          if self.trial < len(self.list):          if self.trial < len(self.list):
226              self.seed = self.list[self.trial]              self.seed = self.list[self.trial]
227              if self.seed in tex0:              if self.seed in tex_old:
228              #if seen[self.seed] != None:              #if seen[self.seed] != None:
229                  self.correct = "old"                  self.correct = "old"
230              else:              else:
# Line 315  class OnlineTestScene: Line 315  class OnlineTestScene:
315                  msg = "Oikein"                  msg = "Oikein"
316              else:              else:
317                  msg = "V\xe4\xe4rin"                  msg = "V\xe4\xe4rin"
318              if self.seed in tex0:              if self.seed in tex_old:
319                  msg2 = "Oli n\xe4hty"                  msg2 = "Oli n\xe4hty"
320              else:              else:
321                  msg2 = "Ei ollut n\xe4hty"                  msg2 = "Ei ollut n\xe4hty"

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26