2010-03-28 2 views
5

Я хочу, чтобы пользователи получали «очки» для выполнения различных задач в моем приложении - от таких задач, как тегирование объектов и создание друзей. Я еще не нашел приложение Django, которое упрощает это.Социальная игра механики в Django

В данный момент я думаю, что лучший способ накопления очков состоит в том, что каждое действие пользователя создает эквивалент «элемента потока», а точки вычисляются путем подсчета значения каждого действия, опубликованного в их потоке.

Очевидно, что социальная игровая механика - это огромная область с большим количеством исследований, происходящих на данный момент. Но с точки зрения развития, что самый простой способ начать работу? Я нахожусь на неправильном пути или есть лучшие/более простые способы?

Edit: для тех, кто хочет очень простую реализацию этого:

Для тех, которые были бы заинтересованы в очень простой реализации этой идеи пытаются создать «Logging» приложение и положить это в models.py :

log_models = [Tag, Post, Vote] 

class Point(models.Model): 
    # model fields 

def increase_score(sender, instance, signal, *args, **kwargs): 
    # score logic 

for model in log_models: 
    post_save.connect(increase_score, sender=model) 
    post_delete.connect(decrease_score, sender=model) 

Обратитесь к этому документу, если вы обнаружите, что post_save дважды излучающие: http://code.djangoproject.com/wiki/Signals#Helppost_saveseemstobeemittedtwiceforeachsave

ответ

2

"пункт поток"? Никогда не слышал об этом раньше.

«Журнал» имеет смысл. Похоже, вы собираетесь регистрировать события в таблице. Суммируйте или подсчитайте зарегистрированные события. Это самый простой и самый расширяемый.

Вы можете суммировать периодически (ежечасно для больших социальных толп, ежедневно для маленьких толп).

Смежные вопросы