2
respostas

[Dúvida] d20 em Python

Oi, tudo bem?

Então, eu to tentando fazer um dado d20 (ou qualquer outro valor que o valha, mas queria um d20) para treinar a criação de classes e fixar alguns conceitos, mas não consigo fazer o bendito funcionar.

import random
from typing import Any

class Dado:
    def __init__(self, lados, numeros):
        self.lados = lados
        self.numeros = numeros
    def roll(self,numeros):
        self.numeros = numeros
        valor = random.randint(1,self.lados) * numeros
        return valor
    def checar_roll (self, valor):
        valor = self.roll
        print(valor)

d20 = Dado(20,2)
d20.roll
d20.checar_roll

Isso é o que eu tenho até agora, mas não consegui avançar depois disso. Já tentei um milhão de vezes usando classes e não consegui.

2 respostas

Oi

Não entendi o objetivo da classe. De qualquer forma:

o método roll necessita de um argumento, números

por exemplo: d20.roll(4)

o método checar_roll, necessita de um argumento, valor

por exemplo: d20.checar_roll(3)

Oii! Obrigado pela ajuda, já consegui resolver assim

import random

class Dado:
    def __init__(self,lados,quantidade):
        self.quantidade = quantidade
        self.lados = lados

    def rolar_dado(self):
        quantidade = self.quantidade
        lados = self.lados
        resultado = random.randint(0,lados)
        return resultado

    def mostrar_resultado(self):
        mostrar_resultado = self.rolar_dado()
        return print (f"Voce rolou um {mostrar_resultado}")

d = Dado(20,1)
d.rolar_dado()
d.mostrar_resultado()