¡Hola a todos! Hoy les traigo una colaboración de alguien que unos conocen como GandalfX y otros como El Ratón Secuestrador pero su nombre de pila es José Manuel Batista Viltre. En el nombre del artículo puse “HUmor entre MANOS” pero bien podía haber puesto “Comparte tu Software”, “¿Cómo se hace?” o “humanCode” 😀

Seguramente muchos habrán visto en algún momento  la famosa imagen que nos explica, de manera muy simple, cómo componer Reggaeton pero, para los que no, aquí les va:

reggaeton
Sin comentarios. Lo que les comparto hoy es ese “conocimiento” que nos brinda la imagen llevado a Python, un script desarrollado magistralmente por El Ratón Secuestrador en su tiempo libre, que es mucho 😀

A continuación el código:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from random import choice

__author__ = 'jmbatista'

col1 = ('Mami', 'Gata', 'Perra', 'Zorra', 'Chica')
col2 = ('yo quiero', 'vamos a', 'yo voy a', 'yo quiero', 'yo vengo a')
col3 = ('castigarte', 'cogerte', 'encenderte', 'darte', 'azotarte')
col4 = ('bien duro', 'muy rapido', 'muy lento', 'bien suave', 'bien fuerte')
col5 = (
    'hasta que salga el sol', 'toda la noche', 'hasta el amanecer',
    'hasta mañana',
    'todo el dia')
col6 = (
    'sin miedo', 'sin anestesia', 'en el piso', 'contra la pared',
    'sin compromiso')

def coro():
    repite = choice(col3)
    texto = '%s%s %s %s %s %s.' % (repite[0].upper(), repite[1:],
                                   repite, repite,
                                   choice(col5), choice(col4))
    print (texto)

def cancion():
    texto = '%s, %s %s %s %s %s.' % (choice(col1), choice(col2),
                                     choice(col3), choice(col4),
                                     choice(col5), choice(col6))
    print (texto)

def menu():
    print(
        '==============HINT================\n'
        '=En cada Compose una letra diferente=\n'
        '==============Menu================\n'
        '========     1-> Compose     ========\n'
        '========     2-> Exit     ========\n'
        '==============Menu================')
    opcion = raw_input('Elija una opcion: ')
    return opcion

def main():
    opcion = menu()

    while True:

        if opcion == '1' or opcion == 'Compose':
            cancion()
            cancion()
            cancion()
            print ('Coro:')
            coro()
            coro()
            coro()
        if opcion == '2' or opcion == 'Exit':
            break
        opcion = menu()

if __name__ == '__main__':
    main()

Sin más les dejo el link de la descarga para que los reggaetoneros de la comunidad puedan desarrollar sus habilidades artísticas y sugerir nuevas funcionalidades para próximas versiones con sus comentarios. Solo tienen que descargar, descomprimir y ejecutar python reggaeton.py o ejecutar chmod 755 reggaeton.py para luego ejecutar ./reggaeton.py y listo. Lo demás es cosa de sentarse a esperar un Billboard Latino 😀

reggaeton.py.tar.gz (473 descargas)

Demás está decirles que ha sido todo un éxito esta app. En menos de una semana, gracias a Alexis López Zubieta, se convirtió en un reproductor compositor de Reggaetón y hasta contamos con una versión para Android, gracias a Allan. Sin más les dejo los links de las descargas.
reggae-maker.tar.gz (233 descargas) ReguetonMaker.Android.SRC.tar.gz (226 descargas) ReguetonMaker.APK.tar.gz (297 descargas)