Attempt at a fairer idler chooser
[zanchey/dispense2.git] / sql-edition / servers / VendServer.py
index 3f2c72f..b623be6 100755 (executable)
@@ -193,9 +193,9 @@ def setup_idlers(v):
                StringIdler(v, text=CREDITS),
                StringIdler(v, text=str(math.pi) + "            "),
                StringIdler(v, text=str(math.e) + "            "),
-               StringIdler(v),
                FortuneIdler(v),
                ClockIdler(v),
+               StringIdler(v),
                GrayIdler(v),
                TrainIdler(v),
                GrayIdler(v,one="*",zero="-"),
@@ -205,11 +205,25 @@ def setup_idlers(v):
                GrayIdler(v,one="/",zero="\\",reorder=1),
                GrayIdler(v,one="X",zero="O",reorder=1),
                ]
+    disabled = [
+               ]
        idler = choose_idler()
 
 def choose_idler():
        global idler
-       idler = idlers[int(random()*len(idlers))]
+       iiindex = 0
+
+       if idler:
+               iiindex = idlers.index(idler)
+
+       iilen = len(idlers)
+
+       move = int(random()*len(idlers)) + 1
+
+       while move >= 0:
+               idler = idlers[( (iiindex + 1) % iilen)]
+               move = move - idler.affinity()
+
        idler.reset()
 
 def idle_step():

UCC git Repository :: git.ucc.asn.au