Added check for non-alphabetic words
[getaclue.git] / crosswordpuzzle.py
index 7ee206f..6283920 100644 (file)
@@ -93,6 +93,11 @@ class TooLongWordException (Exception):
                self.word = word
                self.length = length
 
+# exception for words containing non-alpha characters
+class WordCharsException (Exception):
+       def __init__ (self, word):
+               self.word = word
+
 # exception for intersecting words
 class IntersectWordException (Exception):
        def __init__ (self, word, length):
@@ -431,6 +436,10 @@ class CrosswordPuzzle:
                # if the grid is frozen then abort
                self.assert_unfrozen_grid ()
 
+               # if the word has non-alphabetic characters
+               if not word.isalpha ():
+                       raise WordCharsException (word)
+
                # if the word length greater than totalrows - startrow
                if len(word) > self.rows - row:
                        raise TooLongWordException (word, len(word))
@@ -485,6 +494,10 @@ class CrosswordPuzzle:
                # if the grid is frozen then abort
                self.assert_unfrozen_grid ()
 
+               # if the word has non-alphabetic characters
+               if not word.isalpha ():
+                       raise WordCharsException (word)
+
                # is the word length greater than totalcols - startcol?
                if len(word) > self.cols - col:
                        raise TooLongWordException (word, len(word))