diff options
author | Roberto Cristaldo <rcristal@gmail.com> | 2013-01-28 18:29:47 (GMT) |
---|---|---|
committer | Roberto Cristaldo <rcristal@gmail.com> | 2013-01-28 18:29:47 (GMT) |
commit | 5208132d92a66faf3646977fe779445843151abf (patch) | |
tree | 8db84ea197ffa28d57ea4e7ac7e89cf83ba5c333 | |
parent | 4a35f8d15e25fcea54c499442bf34bf33ddb1992 (diff) |
Encapsulamiento mejorado
-rwxr-xr-x | Ejemplo.py | 16 | ||||
-rwxr-xr-x | elephant.py | 33 |
2 files changed, 27 insertions, 22 deletions
@@ -31,19 +31,23 @@ def main(): print 'Indice %s y letra %s' %(letter_to_say_index, letter_to_say) - all_indexes = choice_letter.get_all_indexes(word, letter_to_say) + # all_indexes = choice_letter.get_all_indexes(word, letter_to_say) + all_indexes = choice_letter.all_indexes print 'Todos los indices validos %s' %all_indexes - false_choices = choice_letter.get_false_options(word, all_indexes) + #false_choices = choice_letter.get_false_options(word, all_indexes) + false_choices = choice_letter.false_options print 'Opciones invalidas %s. No tienen que coincidir con los validos' \ %false_choices - relative_place = choice_letter.get_relative_place( \ - letter_to_say_index, \ - all_indexes) + #relative_place = choice_letter.get_relative_place( \ + # letter_to_say_index, \ + # all_indexes) + relative_place = choice_letter.relative_place print 'Lugar relativo %s' %relative_place - place_word = choice_letter.translate_relative_place(relative_place) + #place_word = choice_letter.translate_relative_place(relative_place) + place_word = choice_letter.place_word print 'Lugar relativo %s' %place_word speech_to_say = 'Donde esta la ' diff --git a/elephant.py b/elephant.py index fc22814..5d5383b 100755 --- a/elephant.py +++ b/elephant.py @@ -24,16 +24,6 @@ class word_list: return category_list - # Get all words from a specifir category - #def get_words_in_category(self, category): - # parser = ConfigParser.SafeConfigParser() - # parser.read(CONF_FILE) - # - # word_list = parser.options(category) - # - # return word_list - - # Get all words form config file def get_word_list(self): parser = ConfigParser.SafeConfigParser() parser.read(CONF_FILE) @@ -58,6 +48,15 @@ class letters: def __init__(self, word): self.letter_index, self.letter = self._get_letter_index(word) + self.all_indexes = self._get_all_indexes(word, self.letter) + + self.false_options = self._get_false_options(word, self.all_indexes) + + self.relative_place = self._get_relative_place(self.letter_index, \ + self.all_indexes) + + self.place_word = self._translate_relative_place(self.relative_place) + # Return a random letter for a given word and index def _get_letter_index(self, word): @@ -72,7 +71,7 @@ class letters: return letter_index+1, letter # Return list of indexes for every ocurrence ot the letter in the word. - def get_all_indexes(self, word, letter): + def _get_all_indexes(self, word, letter): # Init vars word_len = len(word) @@ -88,7 +87,7 @@ class letters: return indexes # Return false options non-overlaping with true options - def get_false_options(self, word, true_indexes): + def _get_false_options(self, word, true_indexes): word_len = len(word) #parser = ConfigParser.SafeConfigParser() @@ -97,9 +96,11 @@ class letters: #false_options = parser.get(MAIN_SECTION, 'Falseoptions') false_choices = [] - for i in [1, 2]: + + for i in range(0, 2): false_choice = random.randrange(word_len) - if (false_choice in true_indexes) == True: + if (false_choice in true_indexes or \ + false_choice in false_choices) == True: pass else: false_choices.append(false_choice) @@ -109,7 +110,7 @@ class letters: # Return the relative place of a letter in case there are multiples # ocurrences of the letter. False in case there are only one. - def get_relative_place(self, letter_index, true_indexes): + def _get_relative_place(self, letter_index, true_indexes): if len(true_indexes) == 1: return False @@ -120,7 +121,7 @@ class letters: # Translate relative place to words - def translate_relative_place(self, relative_place): + def _translate_relative_place(self, relative_place): if relative_place == False: return False |