diff options
Diffstat (limited to 'elephant.py')
-rwxr-xr-x | elephant.py | 83 |
1 files changed, 55 insertions, 28 deletions
diff --git a/elephant.py b/elephant.py index 5d5383b..28aed27 100755 --- a/elephant.py +++ b/elephant.py @@ -46,16 +46,28 @@ class word_list: class letters: def __init__(self, word): - self.letter_index, self.letter = self._get_letter_index(word) + self._arguments = self._get_letter_index(word) + self.letter_index = self._arguments[0] + self.letter = self._arguments[1] + # Just for debugging + # print self.letter + # print self.letter_index self.all_indexes = self._get_all_indexes(word, self.letter) + # Just for debuggin + # print self.all_indexes self.false_options = self._get_false_options(word, self.all_indexes) + # Just for debugging + # print self.false_options self.relative_place = self._get_relative_place(self.letter_index, \ - self.all_indexes) + self.all_indexes) - self.place_word = self._translate_relative_place(self.relative_place) + self.place_word = self._translate_to_str(self.relative_place) + + self.random_places = self._get_random_places(self.letter_index, \ + self.false_options) # Return a random letter for a given word and index def _get_letter_index(self, word): @@ -68,7 +80,7 @@ class letters: # Get the letter at position letter_index letter = word[letter_index] - return letter_index+1, letter + return letter_index, letter # Return list of indexes for every ocurrence ot the letter in the word. def _get_all_indexes(self, word, letter): @@ -76,12 +88,12 @@ class letters: # Init vars word_len = len(word) indexes = [] - i = 0 - + # Generates a list with indexes of ocurrences of the letter - for i in range(word_len): + i = 0 + while (i < word_len): if word[i] == letter: - indexes.append(i+1) + indexes.append(i) i+=1 return indexes @@ -89,22 +101,15 @@ class letters: # Return false options non-overlaping with true options def _get_false_options(self, word, true_indexes): word_len = len(word) - - #parser = ConfigParser.SafeConfigParser() - #parser.read(CONF_FILE) - - #false_options = parser.get(MAIN_SECTION, 'Falseoptions') - false_choices = [] - - for i in range(0, 2): - false_choice = random.randrange(word_len) - if (false_choice in true_indexes or \ - false_choice in false_choices) == True: - pass - else: - false_choices.append(false_choice) - i += 1 + + i = 0 + while (i < 2): + false_choice = random.randint(0, word_len - 1) + if (false_choice not in true_indexes and \ + false_choice not in false_choices) == True: + false_choices.append(false_choice) + i += 1 return false_choices @@ -117,16 +122,38 @@ class letters: relative_place = true_indexes.index(letter_index) - return relative_place+1 + return relative_place # Translate relative place to words - def _translate_relative_place(self, relative_place): + def _translate_to_str(self, relative_place): if relative_place == False: return False - relative_place -= 1 - places = ['Primera', 'Segunda', 'Tercera', 'Cuarta', 'Quinta', 'Sexta'] + places = ['Primera', \ + 'Segunda', \ + 'Tercera', \ + 'Cuarta', \ + 'Quinta', \ + 'Sexta', \ + 'Septima', \ + 'Octava', \ + 'Novena', \ + 'Decima'] + + return places[relative_place] + + # Generate random places for options + def _get_random_places(self, true_choice, false_choice): + options = [] + + options.append(self._translate_to_str(true_choice)) + options.append(self._translate_to_str(false_choice[0])) + options.append(self._translate_to_str(false_choice[1])) + + random.shuffle(options) + + return options - return places[relative_place]
\ No newline at end of file +
\ No newline at end of file |