Fezten

lördag 13 november 2010

dice.py

Jobbar på en python-modul som ska tillhandahålla diverse tärnings-funktioner. Kan användas till rollspel eller i andra sammanhang där tärningar kan behövas.

Modulen kom till för att underlätta min generator av Eon-karaktärer, så vissa funktioner kommer att vara riktade åt det hållet. Bland dessa märks båda de funktioner jag har plockat in så länge: make_stat och unlimited_dice. Make_stat slår helt enkelt 3T6, för att enkelt kunna bygga stats. unlimited_dice är en funktion som hjälper till med Ob-slag, vilket är en av Eons intressantare regeltekniska begrepp.

Hittills är modulen ganska liten, så jag kan tillhandahålla den här i sin helhet:


#! /usr/bin/python
# -*- coding: utf-8 -*-
from random import *

def make_stat():
    """
    make_stat function. This function rolls three six-sided dice (3d6) and returns the result.
    It does not take any arguments.
    """
    dice1 = randint(1,6)
    dice2 = randint(1,6)
    dice3 = randint(1,6)
    total_dice = dice1 + dice2 + dice3
    return total_dice

def unlimited_dice(number_of_rolls):
   """
   unlimited_dice function. This function rolls a number of dice (the parameter
   fed into the function at call time. Any die that has the value six is replaced
   by two new dice recursively. The function returns a list with the individual
   dice values, without the 6'es.
   """
   result = []
   for i in xrange(number_of_rolls):
      result.append(randint(1,6))
   if result.count(6) == 0:
      return result
   else:
      number_of_rerolls_needed = 0
      while result.count(6) > 0:
         del result[result.index(6)]
         number_of_rerolls_needed += 2
      result.extend(unlimited_dice(number_of_rerolls_needed))
      return result


Inga kommentarer:

Skicka en kommentar