Aleatorietat¶
És habitual que un joc incorpori factors d’aleatorietat, per a fer que les partides siguin diferents cada cop que es juga i fer-los més amens. A tal fi, en informàtica s’utilitzen les tècniques de generació de nombres pseudoaleatoris. Tots els llenguatges de programació disposen de la funcionalitat per a generar-ne; en Python, existeix el mòdul random. Les funcions d’aquest mòdul més útils per a dissenyar jocs són les següents:
random.random(): Retorna un nombre real entre 0 i 1 a l’atzar (distribució uniforme). Per exemple, si volem que diferents fragments del nostre codi s’executin amb una certa probabilitat, podem escriure alguna cosa com:p = random.random() if p < 0.1: # aquest fragment de codi s'executarà amb una probabilitat del 10% elif p < 0.5: # aquest fragment de codi s'executarà amb una probabilitat del 40% else: # aquest fragment de codi s'executarà amb una probabilitat del 50%
Al mòdul
randomhi ha moltes altres funcions per a obtenir nombres reals a l’atzar seguint distribucions de tot tipus (random.uniform(),random.gauss(),random.betavariate()…)
random.randrange()irandom.randint(): Per a obtenir nombres enters a l’atzar. Per exemple, si volem simular que tirem un dau:valor = random.randrange(1,7)
random.choice(): Per a triar un element a l’atzar d’entre uns quants. Per exemple, si volem triar un pal d’una baralla a l’atzar:pal_carta = random.choice(['oros', 'copes', 'espases', 'bastos'])
Per a triar més d’un element d’una seqüència a l’atzar (sense repetir), disposem de
random.sample().random.shuffle(): per a barrejar aleatòriament (una llista). Per exemple:digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] random.shuffle(digits) # la llista de dígits haurà quedat ordenada a l'atzar