कैसे स्टोर करने के लिए परिणाम की एक विधि

0

सवाल

मैं कोशिश कर रहा हूँ चौकों आकर्षित करने के लिए यादृच्छिक पदों में और यादृच्छिक आरजीबी मूल्यों और मैं चाहते हैं, 1000 के लिए उनमें से बनाया जा सकता है । समस्या मैं का सामना करना पड़ रहा है कि हर पाश ड्राइंग के लिए होता है, यह randomizes यह सब फिर से, वहाँ किसी भी तरह इस बनाने के लिए नहीं होता

import pygame
import sys
import random
pygame.init()
win = pygame.display.set_mode((800,600))
pygame.display.set_caption("Simulation")

def safeZone():
        #Draws a top rectangle
    pygame.draw.rect(win, (50,205,50), (0, 0, 800, 100))
    
def dot():
    width = 10
    height = 10
    spawnX = random.randrange(1, 801)
    spawnY = random.randrange(1, 601)
    r = random.randrange(1, 256)
    g = random.randrange(1, 256)
    b = random.randrange(1, 256)
    pygame.draw.rect(win, (r, g, b), (spawnX, spawnY, width, height))

def population(size):
    for x in range(size):
        dot()

run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    win.fill((255, 255, 255))
    safeZone() # Always draw dots after safe zone
    population(1000)
    pygame.display.update()

pygame.quit()


pygame python
2021-11-22 19:27:48
3

सबसे अच्छा जवाब

1

बनाने के लिए एक डॉट संग्रह है, तो सिर्फ आकर्षित कि डॉट संग्रह. अब आप अद्यतन कर सकते हैं डॉट पदों पर अलग अलग है, और वे जाएगा redraw में नए पदों. यहाँ, मैं कर रहा हूँ प्रत्येक डॉट कदम एक यादृच्छिक राशि में हर पाश ।

import pygame
import sys
import random
pygame.init()
win = pygame.display.set_mode((800,600))
pygame.display.set_caption("Simulation")

class Dot:
    def __init__(self):
        self.spawnX = random.randrange(0, 800)
        self.spawnY = random.randrange(0, 600)
        self.r = random.randrange(0, 256)
        self.g = random.randrange(0, 256)
        self.b = random.randrange(0, 256)

def safeZone():
        #Draws a top rectangle
    pygame.draw.rect(win, (50,205,50), (0, 0, 800, 100))
    
def drawdot(dot):
    width = 10
    height = 10
    pygame.draw.rect(win, (dot.r, dot.g, dot.b), (dot.spawnX, dot.spawnY, width, height))

def population(dots):
    for dot in dots:
        dot.spawnX += random.randrange(-3,4)
        dot.spawnY += random.randrange(-3,4)
        drawdot(dot)

alldots = [Dot() for _ in range(1000)]

run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    win.fill((255, 255, 255))
    safeZone() # Always draw dots after safe zone
    population(alldots)
    pygame.display.update()

एक सार्थक संशोधन है स्टोर करने के लिए पूरे आयत वस्तु में:

...
class Dot:
    def __init__(self):
        self.location = [
            random.randrange(0, 800),
            random.randrange(0, 600),
            10, 10
        ]
        self.color = (
            random.randrange(0, 256),
            random.randrange(0, 256),
            random.randrange(0, 256)
        )
    def move(self, dx, dy ):
        self.location[0] += dx
        self.location[1] += dy

def drawdot(dot):
    pygame.draw.rect(win, dot.color, dot.location)

def population(dots):
    for dot in dots:
        dot.move( random.randrange(-3,4), random.randrange(-3,4) )
        drawdot(dot)
...
2021-11-22 19:39:00

सवाल यह है कि के बारे में pygame. तो, का उपयोग करें कृपया pygame.Rect. आप भी उपयोग कर सकते हैं pygame.Color.
Rabbid76

के लिए धन्यवाद इस तरह के एक त्वरित प्रतिक्रिया के साथ, इस अद्भुत काम किया! मैं कोशिश कर रहा था करने के लिए बाहर आंकड़ा कैसे करने के लिए दुकान के सभी अपने पदों पर अलग से तो यह बहुत अच्छा था
WaffleKyle

जवाब के साथ यादृच्छिक.बीज में अधिक है, सुरुचिपूर्ण और सरल है । यह कर सकते हैं बस का उपयोग यादृच्छिक बीज के मूल्य के बजाय हार्ड कोडित देता है, जो वास्तव में वांछित व्यवहार.
Zada Zorg

मुझे लगता है, मैं समझता हूँ, क्या सवाल के बारे में था. डाल यादृच्छिक.बीज के अंदर डॉट समारोह का समाधान होगा समस्या । एक ही समय में, मैं कर रहा हूँ, इस बात से सहमत है कि यह इष्टतम नहीं है सामान्य रूप में.
Zada Zorg
0

आप एक समारोह कॉल dot() में जो आप को सौंपा है यादृच्छिकीकरण । आप का परिचय देना चाहिए कोड का एक टुकड़ा है कि randomizes मूल्यों के बाहर dot() समारोह, और दुकान में उन्हें एक अलग सरणी, और फिर समारोह कॉल.

2021-11-22 19:33:27

एक उचित जवाब होगा दिखाने के लिए कोड प्रदर्शन कैसे यह करने के लिए.
Tim Roberts

मुझे लगता है कि यह मतलब नहीं है के लिए इस तरह के सरल बातें. लेकिन अगर इस नियम का समुदाय-मैं इस खाते में रखना
Anna D.

याद रखें कि यहाँ विचार है एक सूची बनाने के लिए जवाब के भावी पीढ़ी के लिए. हम नहीं कर रहे हैं, बस का जवाब देने के एक व्यक्ति का सवाल है, हम प्रदान कर रहे हैं एक लंबे समय तक सेवा की है । इस प्रकार, जवाब वास्तव में क्या करने की जरूरत के रूप में संभव के रूप में पूरा. की तरह बातें अपने योगदान होना चाहिए एक टिप्पणी है ।
Tim Roberts
0

अपने विवरण की तरह लगता है आप कर रहे हैं, जरूरी नहीं की कोशिश कर रहा है की दुकान के लिए परिणाम तो ज्यादा के रूप में आप चाहते हैं की प्रक्रिया करने के लिए एक ही हो सकता है हर समय है, लेकिन अभी भी प्रकार के हैं? आप बस का उपयोग एक हार्ड कोडित बीज?

import random
random.seed(10)
print(random.random())

देखने के लिए इस लिंक और अधिक विस्तार: यादृच्छिक बीज

2021-11-22 19:39:52

नहीं, आप गलत समझा है समस्या है. वह नहीं चाहता है एक ही यादृच्छिक अनुक्रम हर बार. वह चाहता है के यादृच्छिक पदों में एक बार.
Tim Roberts

यह सबसे अच्छा दृष्टिकोण को हल करने के लिए मूल समस्या है । यह है की आवश्यकता है केवल कोड की एक पंक्ति के और भी कुछ परिचय नियतात्मक का परिणाम है । है जो मानक दृष्टिकोण में सभी खेल का उपयोग करता है जो प्रक्रिया से संसार उत्पन्न.
Zada Zorg

@ZadaZorg यह नहीं है सबसे अच्छा दृष्टिकोण है । तुम गलत समझा है समस्या है. वह नहीं चाहता है एक ही डॉट्स खेल हर समय में चलाता है । वह चाहता है एक अलग सेट के पदों, लेकिन वह नहीं चाहते हैं उन्हें बदलने में हर पाश । है कि बुनियादी समस्या है । प्रारंभ करने के लिए आवश्यक हो सकता है पाश से बाहर. आप जवाब दे रहे हैं कि एक सवाल पूछा नहीं गया था.
Tim Roberts

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में