Skip to content

Instantly share code, notes, and snippets.

@slezica
Created October 27, 2012 22:50
Show Gist options
  • Save slezica/3966745 to your computer and use it in GitHub Desktop.
Save slezica/3966745 to your computer and use it in GitHub Desktop.
ejemplo got
# ============================================================================ #
# Bienvenido al país de Python! Acá todos hablan python, idioma del que vos por
# ahí no sabés nada. Pero no te preocupes: con esta guía vas a dominar las
# frases más comunes en un toque.
# Lo primero que tenés que entender es que las frases que empiezan con un '#'
# (numeral) son totalmente ignoradas en python. O sea que esta conversación que
# estamos teniendo es completamente privada: nadie en Python se está enterando.
# Lo segundo que es importante entender por ahora, ya lo entendimos hace banda!
# Te acordás del mundo de las Ideas de Platón? Los objetos de la realidad son
# cada uno algo diferente e imperfecto, pero nosotros sabemos cómo interactuar
# con ellos porque estuvimos expuestos alas Ideas. Si está el objeto silla (cada
# silla es diferente), está la Idea de Silla, que uno tiene más o menos calada y
# por eso reconoce una silla no importa cómo se vea.
# Las Ideas se python se llaman Clases, y las objetos, bueno, objetos. Las
# Clases se escriben en mayúscula. Todo lo demás no.
# Acá se aprende por el ejemplo porque no voy a tipear tanto. Vamos directo a
# ver nuestras primeras líneas de python:
class User(Entity):
# Opa. Ya pasó algo acá. Acabamos de decidir que en nuestro mundo existe una
# Clase de objetos que se llama User, y que "extiende de" Entity. Esto es como
# decir que la Idea de Pelota de Rugby extiende de la Idea de Pelota. Una pelota
# de rugby "es una" pelota, y un user "es una" entity.
first_name = SmallTextField()
last_name = SmallTextField()
# Estas dos líneas de arriba dicen que todo user (objeto tipo User) va a tener
# un campo first_name cuya Clase es SmallTextField, y lo propio con last_name.
# Los SmallTextField bancan hasta 32 caracteres de texto.
credentials = Credentials()
# La Clase Credentials dice que credentials está compuesta por un email de Clase
# EmailField, y una password encriptada (de Clase misteriosa, para nosotros).
# Y con eso terminamos de describir la Clase User. Felicidades! Ahora ya tenemos
# usuarios en el sistema.
# Vamos a pasar a describir las Clases de cosas que hay en el juego. Esto lo
# vamos a encarar "bottom-up", es decir, de lo chiquito a lo grande. La Clase
# más boluda que se me ocurre es House:
class House(Entity):
name = SmallTextField()
player = referenceTo(User, null = True)
# Palabra nueva: referenceTo. Por eso el User lo definimos antes, para poder
# decir ahora que cada House *puede tener* asociado un User. El "puede tener"
# está expresado via "null = True", "esta referencia puede ser nula".
class Province(Entity):
owner = referenceTo(House)
# Acá no aclaramos null nada. Si no decimos nada, null es False: o sea que
# la referencia SIEMPRE va a existir. TODO objeto Province TIENE una House
# asociada via "owner". SIEMPRE. Es importante saber eso.
name = SmallTextField()
size = oneOf('town', 'fort', 'city', 'citadel')
# Nueva palabra: oneOf. Dice que size va a ser una de esas cosas.
# Confío en que lo siguiente se entiende solo:
workers = NumberField()
farmers = NumberField()
merchants = NumberField()
gold = NumberField()
food = NumberField()
metal = NumberField()
unrest = NumberField() # rebelión, nombre más corto
bandits = NumberField()
famine = NumberField()
intel = NumberField() # contra-espionaje, más corto
defence = NumberField()
av_arms = NumberField()
av_armor = NumberField()
av_forges = NumberField()
action = oneOf('construyendo X', 'construyendo Y', 'construyendo Z')
# Yeah!
@Rathke
Copy link

Rathke commented Oct 27, 2012

Alguna manera de comentar sobre una línea específica? (más allá de decir: "#24: hay una lista de classes en algún lado?")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment