簡體   English   中英

運行此代碼后,它為兩個骰子吐出相同的值,我怎樣才能將隨機值固定為每次都不同?

[英]After running this code it spits out the same value for both dice, how can I fix the random value to be different each time?

 class Die:
    def __init__ (self, face, face_value):
        self.face = face
        self.face_value = face_value
    def roll(self):
        return print(self.face)

我稍后導入這個 class 因為我將它們放在兩個不同的文件中。

import random
from DieClass import Die
num = random.randint(1,6)


    if num == 1:
        face = ( ' ------\n|       |\n|   o   |\n|       |\n ------')
    elif num == 2:
        face =  (' ------\n|       |\n| o   o |\n|       |\n ------')
    elif num == 3:
        face =  (' ------\n|   o   |\n|   o   |\n|   o   |\n ------')
    elif num == 4:
        face =  (' ------\n| o   o |\n| o   o |\n|       |\n ------')
    elif num == 5:
        face =  (' ------\n| o   o |\n| o   o |\n|   o   |\n ------')
    elif num == 6:
        face = (' ------\n| o   o |\n| o   o |\n| o   o |\n ------' )

這是我的面部變量。 我如何讓它們每次隨機?

    class Dicegame(Die):
        def __init__ (self, name):
            self.name = name

        def play(self):
            Die1 = Die(face, num)
            return Die1.roll()

在這里,我稱我為 class。

    Dice1 = Dicegame('name')
    Dice1.play()
    Dice2 = Dicegame('bob')
    Dice2.play()

你不是在擲骰子。 像這樣改變你的模具 class。

class Die:
    def __init__ (self, face, face_value):
        self.face = face
        self.face_value = face_value
    def roll(self):
        self.face = random.randint(1, 6)
        return print(self.face)

我還重構了整個代碼。 它工作兩次。 相應地改變。

import random

class Die:
    def __init__ (self, face_value):
        self.face_value = face_value
    def roll(self):
        self.face_value = random.randint(1, 6)
        return self.face_value

class Dicegame(Die):
    def __init__ (self, name):
        self.name = name

    def play(self, num):
        Die1 = Die(num)
        return Die1.roll()

def print_state(name, num):
    face = ''
    if num == 1:
        face = ( ' ------\n|       |\n|   o   |\n|       |\n ------')
    elif num == 2:
        face =  (' ------\n|       |\n| o   o |\n|       |\n ------')
    elif num == 3:
        face =  (' ------\n|   o   |\n|   o   |\n|   o   |\n ------')
    elif num == 4:
        face =  (' ------\n| o   o |\n| o   o |\n|       |\n ------')
    elif num == 5:
        face =  (' ------\n| o   o |\n| o   o |\n|   o   |\n ------')
    elif num == 6:
        face = (' ------\n| o   o |\n| o   o |\n| o   o |\n ------' )
    else:
        face = ''
    print(name)
    print(face)

num1 = random.randint(1, 6)
num2 = random.randint(1, 6)

Dice1 = Dicegame('name')
print_state('name', num1)
new_state1 = Dice1.play(num1)

Dice2 = Dicegame('bob')
print_state('bob', num2)
new_state2 = Dice2.play(num2)

print_state('name', new_state1)
print_state('bob', new_state2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM