Я не могу понять, что здесь происходит.У меня настроено несколько списков, по одному для каждого отдельного цвета с соответствующими значениями RGB в качестве его члена, а затем список colors [], который содержит каждый отдельный список цветов.Затем у меня есть вложенный цикл for: внешний цикл создает столбцы заполненных цветом прямоугольников, а внутренний цикл продвигает строку.Не сложно, как я вижу.
Я пытаюсь использовать numdown, чтобы пройти список цветов [] так, чтобы каждые две строки цвет менялся на член, соответствующий цветам [].
Проблема в том, что, когда я использую нумерацию внутреннего списка, он работает нормально, за исключением того, что, очевидно, я получаю неправильный образец цвета (цвета продвигаются вперед, а не вниз).Если я использую numdown для обхода списка, кажется, что доступен только белый элемент, даже если во внутреннем цикле for я «print (numdown)» или даже «print (colors [numdown])» выводится правильное значение,
Почему это так?Почему, если я использую внутреннее-для нумерации, к члену списка обращаются правильно, но если я использую внешнее-для нумерации, это ломается?
Мне приходит в голову, что это может иметь какое-то отношение к Pygame, хотя яЯ не имею ни малейшего представления, что.
(Кроме того, поскольку я действительно просто , начинающий с Python, если вы видите что-то еще, на что стоит попрыгать, метод или стиль, пожалуйста, не стесняйтесьуказать на это.)
import pygame, sys
from pygame.locals import *
#initialize pygame
pygame.init()
#assign display window dimensions
winwidth = 400
winheight = 700
#number of rows, number of colums
numrows = range(1,11)
numcols = range(1,11)
#Keeping brick size proportionate to the window size
brickwidth = winwidth / (len(numrows))
brickheight = winheight / 4
#Pixel space above the breakout area
bricktopspace = winheight / 7
#Set display window width, height
windowSurface = pygame.display.set_mode((winwidth, winheight), 0, 0)
brickxcoord = 0
blue = [0, 0, 255]
green = [0, 255, 0]
yellow = [255, 255, 0]
red = [255, 0, 0]
white = [255, 255, 255]
colors = range(0,11)
colors[1] = white
colors[2] = white
colors[3] = red
colors[4] = red
colors[5] = green
colors[6] = green
colors[7] = yellow
colors[8] = yellow
colors[9] = blue
colors[10] = blue
class Setup():
for numdown in numcols:
for numover in numrows:
print(numdown)
pygame.draw.rect(windowSurface, colors[numdown], (brickxcoord,
bricktopspace, brickwidth, brickheight))
brickxcoord = brickxcoord + brickwidth
bricktopspace = bricktopspace + brickheight
class Main():
Setup()
pygame.display.update()