Permalänk
Medlem

Python (Pygame) Hjälp!

hej det är så att jag har en uppgift i python som jag inte förstår så mycket av just nu.
koden ser ut så här:

___________________________ ____
import pygame
pygame.init()
import random

w=400
h=400
screen=pygame.d isplay.set_mode((h,w))
while True:
x=random.randint(0,w)
y= random.randint(0,h)
r=random.r andint(0,255)
g=random.randint (0,255)
b=random.randint(0,255 )
screen.set_at((x,y), (r,g,b))
pygame.display.flip()
_____________________________ _____

Fyller skärmen med pixlar, fine.
Del 2 i uppgiften förstår jag dock inte, den leder så här:
_________________________ ______________________________ _____________
Gör om programmet från ”Del 1” så att det fyller fönstret med pixlar rad för rad. D.v.s. det ska finnas en nästlad-loop som sätter ut pixlar från översta vänstra hörnet ner till nedersta högra hörnet.

En for-loop för x
En for-loop för y
Sätt en pixel på punkten x,y
__________________________ ______________________________ _____________

och jag har testat for loopar på olika sätt, de som jag lärt mig förut i tidigare python men fan inte att jag vet hur jag fixar till detta?
gjort saker som:
_______________________
x =range(0,1000)
for i in x:
print [i]
y=range(0,1000)
for i in y:
print [i]
________________________
m en det har inte hjälp mig alls, skrivit då självklart screen.set_at((x,y), (r,g,b)) och tagit bort den som randomar x,y pos.

hur löser man detta?? O.o kan inte fråga läraren nu heller pga lediga dagar och han kollar aldrig sin mail...

Mvh\\\\

edit: fixade sig:
fattades XRANGE, å det resulterade i detta, nu fungerar det:
http://pastebin.com/1u23m2bc

Visa signatur

Cpu: R5-3600 | MSI MEG X570 UNIFY | Vega64 RedDevil | Corsair 3200 Mhz 16GB | Phanteks PH-TC14PE | Chassi: R4 Arctic White | Steelseries Apex Pro | Logitech G Pro X Superlight | Steelseries Arctis 7

Permalänk
Medlem

range och xrange fungerar exakt likadant på ytan. Det enda som skiljer är att xrange inte håller hela listan i minnet samtidigt vilket kan vara trevligt om det är en väldigt stor lista man arbetar med. I ditt fall är det dock sak samma, så du kan lika gärna byta till vanliga range.