]> gitweb.pimeys.fr Git - scripts-20-100.git/commitdiff
Un script qui mélange les mots sleon l'Uvinertisé de Cmabrigde
authorVincent Le Gallic <legallic@crans.org>
Sun, 9 Aug 2015 15:39:48 +0000 (17:39 +0200)
committerVincent Le Gallic <legallic@crans.org>
Sun, 9 Aug 2015 15:39:48 +0000 (17:39 +0200)
cambridge.py [new file with mode: 0755]

diff --git a/cambridge.py b/cambridge.py
new file mode 100755 (executable)
index 0000000..3d85a39
--- /dev/null
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+
+""" Pour mélanger les lettres dans l'ordre des mots.
+http://www.sauv.net/cmabrigde.php
+"""
+
+import re
+import sys
+import random
+
+reg = re.compile(r"\b(?P<word>\w+)\b", flags=re.UNICODE)
+
+def shuffle_word(word):
+    """Mélange un mot. Avec une bonne définition de "mélange"."""
+    if len(word) in [0, 1, 2]:
+        return word
+    inside_word = list(word[1:-1])
+    random.shuffle(inside_word)
+    return word[0] + "".join(inside_word) + word[-1]
+
+def shuffle(sentence):
+    """Mélange les mots. Avec une bonne définition de "mots" et de "mélange"."""
+    result, pos = u"", 0
+    for match in reg.finditer(sentence):
+        start, end = match.span()
+        result += sentence[pos:start]
+        result += shuffle_word(match.groupdict()["word"])
+        pos = end
+    result += sentence[pos:]
+    return result
+
+if __name__ == "__main__":
+    sentence = " ".join(sys.argv[1:])
+    sentence = sentence.decode("utf-8")
+    sentence = shuffle(sentence)
+    print sentence.encode("utf-8")