Python类程序使用类程序模拟两个骰子的转动

2024-04-24 19:10:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我的程序应该模拟,既模拟一个骰子的角色,也模拟两个骰子的角色,但我遇到了问题。下面是我的代码:

import random

#Dice class simulates both a single and two dice being rolled
#sideup data attribute with 'one'

class Dice:
    #sideup data attribute with 'one'

    def __init__(self):
        self.sideup='one'
    def __init__(self):
        self.twosides='one and two'

 #the toss method generates a random number
 #in the range of 1 through 6.


    def toss(self):
        if random.randint(1,6)==1:
            self.sideup='one'
        elif random.randint(1,6)==2:
            self.sideup='two'
        elif random.randint(1,6)==3:
            self.sideup='three'
        elif random.randint(1,6)==4:
            self.sideup='four'
        elif random.randint(1,6)==5:
            self.sideup='five'
        else:
            self.sideup='six'
    def get_sideup(self):
        return self.sideup
    def doubletoss(self):
        if random.randint(1,6)==1 and random.randint(1,6)==2:
            self.twosides='one and two'
        elif random.randint(1,6)==1 and random.randint(1,6)==3:
            self.twosides='one and three'
        elif random.randint(1,6)==1 and random.randint(1,6)==4:
            self.twosides='one and four'
        elif random.randint(1,6)==1 and random.randint(1,6)==5:
            self.twosides='one and five'
        elif random.randint(1,6)==1 and random.randint(1,6)==6:
            self.twosides='one and six'
        elif random.randint(1,6)==1 and random.randint(1,6)==1:
            self.twosides='one and one'
    def get_twosides(self):
        return self.twosides






#main function
def main():
    #create an object from the Dice class
    my_dice=Dice()


    #Display the siide of the dice is factory
   print('This side is up',my_dice.get_sideup())

    #toss the dice
    print('I am tossing the dice')
    my_dice.toss()

    #toss two dice
    print('I am tossing two die')
    my_dice.doubletoss()

   #Display the side of the dice that is facing up
    print('this side is up:',my_dice.get_sideup())

    #display both dices with the sides of the dice up
    print('the sides of the two dice face up are:',my_dice.get_twosides())



main()

以下是我运行程序时的输出:

"Traceback (most recent call last): File "C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py", line 79, in main() File "C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py", line 61, in main print('This side is up',my_dice.get_sideup()) File "C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py", line 32, in get_sideup return self.sideup

AttributeError: 'Dice' object has no attribute 'sideup'

我做错什么了?在


Tags: andtheselfgetmydefrandomdice
1条回答
网友
1楼 · 发布于 2024-04-24 19:10:02

有两个init方法。第二个代替了第一个,这否定了sideup的定义。在

更改为:

def __init__(self):
    self.sideup='one'
    self.twosides='one and two'

相关问题 更多 >