Hello, my name is Joshua Inkenbrandt and I live in Kansas City, Missouri with my wife and two kids. I'm a Mac guy. I'm a Python guy.

My goal is to make cool stuff that's fun and easy to use.

Only showing Posts with topic Random X

March 22, 2010

Life Expressed in Language

All code in Python.


class Death(exception):
    pass

# Simple function that sums it all up

def work(life):
    if life == 0:
        raise Death()
    else:
        work(life-1)
work(100)


# Let's try a more Object oriented approach

class Person:

    def __init__(self, name):
        self.name = name
        self.life = 100
        self.debt = 0
        self.goals = []
        self.accomplished_goals = []
        self.spouse = None
        self.children = []
        self.assets = []
        self.location = None

    def get_life(self):
        return self._life

    def set_life(self, life):
        if life == 0:
            raise Death()
        else:
            self._life = life
    
    life = property(get_life, set_life)

    def marry(self, person):
        if self.spouse:
            self.divorce()
        self.spouse = person
        self.life -= 1

    def divorce(self):
        if not self.spouse:
            return
        self.spouse = None
        self.life -= 1
   
    def purchase(self, item, with_cash=False):
        self.assets.append(item)
        if not with_cash:
            self.debt += 1
            self.life -= 1

    def sell(self, item):
        if item in self.assets:
            self.assets.remove(item)

    def set_goal(self, goal):
        self.goals.append(goal)

    def accomplish_goal(self, goal):
        self.goal.remove(goal)
        self.accomplished_goals.append(goal)

    def watch_tv(self, is_educational=False):
        self.life -= 1
        if not is_educational:
            self.goals.pop()

    def play_video_games(self):
        self.life -= 1
        self.goals.pop()

    def make_a_baby(self, name):
        baby = Person(name)
        self.children.append(baby)
        self.life -= 1

    def work(self):
        self.life -= 1

    def retire(self):
        import time
        while 1:
            self.life -= 1
            time.sleep()

me = Person('Joshua')
me.set_goal('Find a wife')
me.marry(Person('Jodi'))
me.accomplish_goal('Find a wife')
me.watch_tv(is_educational=True)
me.play_video_games()
me.play_video_games()
me.make_a_baby(Person('Judah'))
me.set_goal('Get a better paying job')
me.accomplish_goal('Get a better paying job')
me.watch_tv()
me.buy('Scion xB')
me.buy('MacBook Pro')
me.make_a_baby(new Person('Jacob'))
me.work()