Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Surface.fill()在我的pygame程序中不起作用,即使它是(0,0,255),并且.fill()函数在主循环中_Python_Pygame - Fatal编程技术网

Python Surface.fill()在我的pygame程序中不起作用,即使它是(0,0,255),并且.fill()函数在主循环中

Python Surface.fill()在我的pygame程序中不起作用,即使它是(0,0,255),并且.fill()函数在主循环中,python,pygame,Python,Pygame,这是我的密码: 导入pygame pygame.init() win_x=1000 win_y=400 win=pygame.display.set_模式((win_x,win_y)) pygame.display.set_标题(“我认为它是有刻度的二进制排序”) 蓝色=(0,0255) 数组=[3,9,7,5,8,3,1] picarray=[“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”] four=pygame.image.load(“four.png”) 运行=真

这是我的密码:

导入pygame
pygame.init()
win_x=1000
win_y=400
win=pygame.display.set_模式((win_x,win_y))
pygame.display.set_标题(“我认为它是有刻度的二进制排序”)
蓝色=(0,0255)
数组=[3,9,7,5,8,3,1]
picarray=[“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”]
four=pygame.image.load(“four.png”)
运行=真
运行时:
win.fill(蓝色)
赢。布利特(四,(0,0))
对于范围(0,len(数组)-1)中的i:
对于范围内的(0,len(数组)-1-i):
如果数组[a]>数组[a+1]:
打印(数组)
数组[a],数组[a+1]=数组[a+1],数组[a]
打印(数组)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
pygame.quit()

我已经说过,蓝色是(0,0,255),在我的主循环中是win.fill(蓝色),但由于某种原因,我运行程序时会出现一个黑屏。

我认为您需要在
运行
循环中调用
pygame.display.flip()
,靠近底部:

while run:
    win.fill(BLUE)

    win.blit(four, (0, 0))

    // sort
    ...
    print(array)

    // look for quit
    ...

    pygame.display.flip()
将排序和
//查找quit
代码移动到单独的函数中也会提高代码质量

您的排序算法称为“气泡排序”,因为最高值“气泡”位于顶部,然后是下一个最高值,依此类推。您还可以通过将最低值推到底部、最高值、最低值、剩余最高值、剩余最低值等等来提高效率。。。尽管代码要复杂得多。这里的代码可能是最简单的排序算法

考虑到要排序的元素的数量,效率真的不是什么大问题

哦,
被称为
的字母拼写为两个“l”。)

编辑:

还有一件事。。。pygame要求您的
渲染
字体,并在特定位置渲染文本以绘制它。除非您在其他地方编写了一些代码来处理所有这些,否则您将
将数组打印为标准输出,而不是pygame窗口

这里有一个文本渲染教程:

绘制到屏幕后,您需要使用
pygame.display.flip()
pygame.display.update()
更新屏幕。这应该在循环结束时完成,就像绘制屏幕一样。啊,好的,谢谢。我把它漏掉似乎很愚蠢:)这发生在我们中最好的人身上!谢谢你的回复。我的程序现在已排序,但为了回答您的问题,请稍后在我的数字图像中单击“是”