Add another test.
[super-star-trek.git] / sst.py
diff --git a/sst.py b/sst.py
index 07317a04faee98b4f6fb831087fedb577ff37281..daf42f8648484ebda35c3046a79ab05644734a8c 100755 (executable)
--- a/sst.py
+++ b/sst.py
@@ -12,6 +12,8 @@ See the doc/HACKING file in the distribution for designers notes and advice
 on how to modify (and how not to modify!) this code.
 """
 from __future__ import print_function, division
+# Runs under Python 2 an Python 3. Preserve this property!
+# SPDX-License-Identifier: BSD-2-clause
 
 import os, sys, math, curses, time, pickle, copy, gettext, getpass
 import getopt, socket, locale
@@ -801,7 +803,7 @@ def movescom(iq, avoid):
             if communicating():
                 announce()
                 prout(_("Lt. Uhura-  \"Captain, Starfleet Intelligence reports"))
-                proutn(_("   a planet in Quadrant %s has been destroyed") % game.state.kscmdr)
+                prout(_("   a planet in Quadrant %s has been destroyed") % game.state.kscmdr)
                 prout(_("   by the Super-commander.\""))
             break
     return True # looks good!
@@ -907,7 +909,7 @@ def supercommander():
                 prout(_("Lt. Uhura-  \"Captain, the starbase in Quadrant %s") \
                       % game.state.kscmdr)
                 prout(_("   reports that it is under attack from the Klingon Super-commander."))
-                proutn(_("   It can survive until stardate %d.\"") \
+                prout(_("   It can survive until stardate %d.\"") \
                        % int(scheduled(FSCDBAS)))
                 if not game.resting:
                     return
@@ -925,7 +927,7 @@ def supercommander():
         return
     announce()
     prout(_("Lt. Uhura-  \"Captain, Starfleet Intelligence reports"))
-    proutn(_("   the Super-commander is in Quadrant %s,") % game.state.kscmdr)
+    prout(_("   the Super-commander is in Quadrant %s.") % game.state.kscmdr)
     return
 
 def movetholian():
@@ -950,7 +952,6 @@ def movetholian():
         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
@@ -1738,7 +1739,11 @@ def torps():
             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
@@ -2083,7 +2088,6 @@ def phasers():
                 scanner.chew()
                 key = "IHEOL"
                 hits[k] = 0 # prevent overflow -- thanks to Alexei Voitenko
-                k += 1
                 continue
             if key == "IHEOL":
                 scanner.chew()
@@ -2113,7 +2117,7 @@ def phasers():
                 # abort out
                 scanner.chew()
                 return
-            hits[k] = scanner.real
+            hits.append(scanner.real)
             rpow += scanner.real
             # If total requested is too much, inform and start over
             if rpow > avail:
@@ -2121,7 +2125,6 @@ def phasers():
                 scanner.chew()
                 return
             key = scanner.nexttok() # scan for next value
-            k += 1
         if rpow == 0.0:
             # zero energy -- abort
             scanner.chew()
@@ -3877,7 +3880,7 @@ def imove(icourse=None, noattack=False):
             newquadrant(noattack)
             break
         elif check_collision(w):
-            print("Collision detected")
+            prout(_("Collision detected"))
             break
         else:
             game.sector = w