我写了一段代码来模拟二进制数在矩阵中的流动。它工作得非常好,每当我运行这个代码时,人们都会问我是否正在破解某些东西。在MacOS 10.12.3上运行。你知道吗
#!/usr/local/bin/python3.6
import random
import time
while True:
for j in range(204): #my full screen terminal is 204 characters wide
print(random.randint(0,1),end='')
time.sleep(0.0001)
print('')
然而,这个代码效率很低,消耗了大量的电池。那么,有没有办法让这段代码更省电呢?另外,我不想有大量的I/O到我的硬盘驱动器。你知道吗
想想你的帧速率,就像@sascha说的,生成你的整行。你知道吗
另外,您可能只需要生成500个随机行并重复它们,就可以节省对
random
的大量调用。你知道吗所以:
创建一个由500个随机字符串组成的数组,但是有很多字符宽。
编写循环以打印整个字符串。
把你的睡眠时间改成更现实的时间。大多数视频游戏的目标是60fps,不要担心会降到30fps。对于这样的东西,你可能会逃脱像16-20帧。那么,以秒计有多快?你知道吗
您现有的延迟时间为0.0001秒,乘以204个字符,每行为0.0204秒。大概是每秒50行。放慢速度到每秒30行,你可能不会注意到太大的差别,但你会睡得更长。
有几种方法可以改进它。一种方法是通过编程获得端子宽度:
另一种方法是一次性生成随机数字。下面是两种不同方法的比较:
把两者结合起来,你会得到:
请注意,终端滚动可能是脚本中的一个限制因素,因此您可能需要考虑使用
curses
接口并将其全部绘制到位。下面是诅咒模块的原始效果的an example project。你知道吗相关问题 更多 >
编程相关推荐