Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/elephant.py
diff options
context:
space:
mode:
Diffstat (limited to 'elephant.py')
-rwxr-xr-xelephant.py83
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