X-Git-Url: https://harishankar.org/repos/?p=getaclue.git;a=blobdiff_plain;f=crosswordpuzzle.py;h=ffdd9157ba0608294b283d3927ea6dcbbad93760;hp=e4a7f58e51f779938738e36261b22111fc8e70c4;hb=d7084b7094c99003960b33d4bd4fb655248c6ab3;hpb=0ab1dc52c24addeb82930f4d7013eaf5c178149e diff --git a/crosswordpuzzle.py b/crosswordpuzzle.py index e4a7f58..ffdd915 100644 --- a/crosswordpuzzle.py +++ b/crosswordpuzzle.py @@ -582,13 +582,13 @@ class CrosswordPuzzle: # remove an across word at position def remove_word_across (self, row, col): # if grid is frozen don't allow removal of word - assert_unfrozen_grid () + self.assert_unfrozen_grid () word, brow, bcol, l = self.get_word_across (row, col) # traverse from the beginning to end of the word and erase it c = bcol - while True: + while c < self.cols: if self.data[brow][c].occupied_across is True: self.data[brow][c].clear_across_data () else: @@ -603,12 +603,44 @@ class CrosswordPuzzle: word, brow, bcol, l = self.get_word_down (row, col) # traverse from the beginn to end of the word and erase it r = brow - while True: + while r < self.rows: if self.data[r][bcol].occupied_down is True: self.data[r][bcol].clear_down_data () else: break r += 1 + # reveal/unreveal a word at position + def reveal_word_across (self, row, col, revealed=True): + # set the revealed flag for the word at the position + word= self.get_word_across (row, col) + + c = word[2] + while c < self.cols: + if self.data[word[1]][c].occupied_across is True: + self.data[word[1]][c].revealed = revealed + else: + break + c += 1 + + # reveal/unreveal a word at position + def reveal_word_down (self, row, col, revealed=True): + # set the revealed flag for the word at the position + word = self.get_word_down (row, col) + + r = word[1] + while r < self.rows: + if self.data[r][word[2]].occupied_down is True: + self.data[r][word[2]].revealed = revealed + else: + break + r += 1 + + # reveal/hide the entire solution by resetting revealed flag at all cells + def reveal_solution (self, revealed=True): + # run through the grid and set revealed to False + for row in range (self.rows): + for col in range (self.cols): + self.data[row][col].revealed = revealed