neue Verzeichnissstruktur
This commit is contained in:
1
mahjong_ranking/management/commands/__init__.py
Normal file
1
mahjong_ranking/management/commands/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
#!/usr/bin/python
|
||||
94
mahjong_ranking/management/commands/random-ranking.py
Normal file
94
mahjong_ranking/management/commands/random-ranking.py
Normal file
@@ -0,0 +1,94 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Generate Randum Mahjong Hanchans to the the Raning System
|
||||
"""
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from events.models import Event
|
||||
from mahjong_ranking import models
|
||||
import random
|
||||
from datetime import timedelta
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Deletes all expired user registrations from the database"
|
||||
|
||||
def add_players(self, hanchan):
|
||||
user_list = set()
|
||||
while len(user_list) < 4:
|
||||
random_user = random.choice(self.user_list)
|
||||
user_list.add(random_user)
|
||||
|
||||
player_list = list()
|
||||
ostwind_list = list()
|
||||
for user in user_list:
|
||||
player_list.append(models.Player(user=user, hanchan=hanchan, score=25000))
|
||||
for player in player_list:
|
||||
player.save()
|
||||
|
||||
end_of_game = False
|
||||
ostwind_list.extend(player_list)
|
||||
ostwind_list.extend(player_list)
|
||||
ostwind = ostwind_list.pop()
|
||||
while not end_of_game:
|
||||
score = random.randrange(1300, 8000, 100)
|
||||
loser = player_list[random.randrange(0,4,1)]
|
||||
winner = player_list[random.randrange(0,4,1)]
|
||||
winner.score += score
|
||||
|
||||
print 'Ostwind: %s, Gewinner: %s, Verlierer: %s, %d Punkte' % (
|
||||
ostwind.user,
|
||||
winner.user,
|
||||
loser.user,
|
||||
score,
|
||||
)
|
||||
|
||||
if winner == loser:
|
||||
# Player wins with Tsumo: Everybody pays a third of the score.
|
||||
print "Tsumo!"
|
||||
for player in player_list:
|
||||
if player != winner:
|
||||
player.score -= score / 3
|
||||
else:
|
||||
loser.score -= score
|
||||
|
||||
for player in player_list:
|
||||
if player.score <= 0:
|
||||
player.score = 0
|
||||
end_of_game = True
|
||||
|
||||
if winner == ostwind:
|
||||
print "Wind bleibt"
|
||||
else:
|
||||
print "Wind wird gewechselt."
|
||||
try:
|
||||
ostwind = ostwind_list.pop()
|
||||
except IndexError:
|
||||
end_of_game = True
|
||||
print '---------------------------------------------------------------------'
|
||||
for player in player_list:
|
||||
print "%s: %s" % (player.user, player.score)
|
||||
player.save()
|
||||
print ""
|
||||
|
||||
def create_hanchan(self, event):
|
||||
start = event.start + timedelta(minutes = random.randrange(00, 300, 15))
|
||||
print event.name, start
|
||||
print '='*80
|
||||
hanchan = models.Hanchan(event=event, start=start)
|
||||
hanchan.save()
|
||||
self.add_players(hanchan)
|
||||
hanchan.save()
|
||||
|
||||
|
||||
def handle(self, *args, **options):
|
||||
num_hanchans = int(options.get('hanchans', 4))
|
||||
self.user_list = list(User.objects.all())
|
||||
|
||||
for event in Event.objects.all():
|
||||
for i in range(random.randrange(2,8)):
|
||||
self.create_hanchan(event)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user