Home > front end >  My pygame program doesn't want to change y axis
My pygame program doesn't want to change y axis

Time:12-08

The goal is to make squares with random shade of green on screen, but i y axis doesn't want to change

import pygame
from random import randint

#activate pygame
pygame.init()

#screen (x,y)
screen = pygame.display.set_mode([500, 500])

#bool - if game is running
running = True

tablica = [[randint(1,255) for i in range(10)] for i in range(10)]

print(tablica)

#while game is running
while running:

    
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
        running = False

    #fill screen with (r,g,b)
    screen.fill((255,255,255))

    x = 0
    for i, e in enumerate(tablica):
        for j in e:
            pygame.draw.rect(screen,(j,j,0),(x,50*i,50,50))
            x  = 50

    #update screen
    pygame.display.flip()

#turn off game
pygame.quit()

but instead of drawing 100 squares all over the screen, it only makes 10 on the same x axis. Thanks in advance!

CodePudding user response:

x grows continuously and is never placed at the beginning of the line after the first line. You have to reset x in the outer loop:

while running:
    # [...]

    # x = 0                                <-- DELETE

    for i, e in enumerate(tablica):
        x = 0                            # <-- INSERT
        for j in e:
            pygame.draw.rect(screen,(j,j,0),(x,50*i,50,50))
            x  = 50

However, you do not need the variable x at all:

while running:
    # [...]

    for i, e in enumerate(tablica):
        for k, j in enumerate(e):
            pygame.draw.rect(screen,(j,j,0),(k*50,50*i,50,50))
  • Related