New tests are working well eniugh that we can flush the old ones.
[super-star-trek.git] / sst.py
diff --git a/sst.py b/sst.py
index 1fdcbd6564e479d55f648f4c76558fba5851b28a..8466a481dbf7caec731003ee5aa64a52f0baa3b3 100755 (executable)
--- a/sst.py
+++ b/sst.py
@@ -176,7 +176,7 @@ class Coord:
         s = Coord()
         if self.i == 0:
             s.i = 0
         s = Coord()
         if self.i == 0:
             s.i = 0
-        elif s.i < 0:
+        elif self.i < 0:
             s.i = -1
         else:
             s.i = 1
             s.i = -1
         else:
             s.i = 1
@@ -950,6 +950,7 @@ def movetholian():
         game.tholian.move(None)
         prout("***Internal error: Tholian in a bad spot.")
         return
         game.tholian.move(None)
         prout("***Internal error: Tholian in a bad spot.")
         return
+    print("Tholian moving from %s to %s" % (game.tholian.location, tid))
     # do nothing if we are blocked
     if game.quad[tid.i][tid.j] not in ('.', '#'):
         return
     # do nothing if we are blocked
     if game.quad[tid.i][tid.j] not in ('.', '#'):
         return
@@ -1737,7 +1738,11 @@ def torps():
             proutn(_("Number of torpedoes to fire- "))
             continue        # Go back around to get a number
         else: # key == "IHREAL"
             proutn(_("Number of torpedoes to fire- "))
             continue        # Go back around to get a number
         else: # key == "IHREAL"
-            n = scanner.int()
+            try:
+                n = scanner.int()
+            except TypeError:
+                huh()
+                return
             if n <= 0: # abort command
                 scanner.chew()
                 return
             if n <= 0: # abort command
                 scanner.chew()
                 return
@@ -2067,6 +2072,7 @@ def phasers():
             prout(_("Manual-fire-must-be-used"))
             skip(1)
     elif automode == "MANUAL":
             prout(_("Manual-fire-must-be-used"))
             skip(1)
     elif automode == "MANUAL":
+        print("****HERE WE ARE*** %d" % len(game.enemies))
         rpow = 0.0
         for k in range(len(game.enemies)):
             aim = game.enemies[k].location
         rpow = 0.0
         for k in range(len(game.enemies)):
             aim = game.enemies[k].location
@@ -2082,7 +2088,6 @@ def phasers():
                 scanner.chew()
                 key = "IHEOL"
                 hits[k] = 0 # prevent overflow -- thanks to Alexei Voitenko
                 scanner.chew()
                 key = "IHEOL"
                 hits[k] = 0 # prevent overflow -- thanks to Alexei Voitenko
-                k += 1
                 continue
             if key == "IHEOL":
                 scanner.chew()
                 continue
             if key == "IHEOL":
                 scanner.chew()
@@ -2112,7 +2117,8 @@ def phasers():
                 # abort out
                 scanner.chew()
                 return
                 # abort out
                 scanner.chew()
                 return
-            hits[k] = scanner.real
+            print("k is %d" % k)
+            hits.append(scanner.real)
             rpow += scanner.real
             # If total requested is too much, inform and start over
             if rpow > avail:
             rpow += scanner.real
             # If total requested is too much, inform and start over
             if rpow > avail:
@@ -2120,7 +2126,6 @@ def phasers():
                 scanner.chew()
                 return
             key = scanner.nexttok() # scan for next value
                 scanner.chew()
                 return
             key = scanner.nexttok() # scan for next value
-            k += 1
         if rpow == 0.0:
             # zero energy -- abort
             scanner.chew()
         if rpow == 0.0:
             # zero energy -- abort
             scanner.chew()