我正在学习使用python和pygame进行编程,但是我似乎无法理解为什么我的代码无法正常工作。所以我的程序拍摄了这张图片:
然后它洗牌,然后挑选前五张牌,然后涂黑所有不是前五张的牌。该程序可以运行,但是当数字大于38(基本上是第4行中的数字)时,它会将所有行涂黑。
这是我的代码:
import pygame
import random
def card():
pygame.init()
black = (0,0,0)
deck = list(range(51))
rng = random.Random()
rng.shuffle(deck)
first_five_cards = deck[:5]
x = 0
y = 0
c_width = 353 / 13
c_height = 143 / 4
surface = pygame.display.set_mode((353,143))
image = pygame.image.load("cards.png")
print(deck) #this is to check if the cards blacked out are the right ones
print(first_five_cards) # this just to check
surface.blit(image,(0,0))
while True:
ev = pygame.event.poll()
if ev.type == pygame.QUIT:
break
n = 0
while n < 52:
if n not in first_five_cards:
x = (n % 13) * c_width
if n <= 12:
y = 0
if 12 < n <= 25:
y = 1 * c_height
if 25 < n <= 38:
y = 2 * c_height
if 38 < n <= 51:
y = 3 * c_height
pygame.draw.rect(surface,black,(x,y,c_width,c_height))
n += 1
pygame.display.flip()
pygame.quit()
card()
我不知道这仅仅是我的疏忽还是有什么问题。请帮忙。谢谢。
编辑:现在可以使用。这只是我的疏忽。抱歉。