Python 游戏的滚动统计
我对编程很陌生。我只触及了一种语言Python的表面,这就是我目前正在使用的语言。我正在尝试编写一个程序,可以显示范围在1-100之间的随机滚动数。由于无法解释这一点,我宁愿播放一段我想做的事情的视频。 在大约33秒的时间里,你可以看到滚动数字,玩家必须停止滚动才能将其分配给角色特征。少了所有漂亮的图形和其他东西,我想知道的是,是否有可能用Python编写一个提供相同类型函数的程序?如果不是Python,我现在只对C#和Java两种语言稍微熟悉一点。有没有可能用其中一个或是它们的组合来写呢? 如果可能的话,你能为我指出这项工作的资源方向吗。在发布这篇文章之前,我确实做了一次搜索,但我发现自己因为不知道要搜索什么而变得空虚Python 游戏的滚动统计,python,Python,我对编程很陌生。我只触及了一种语言Python的表面,这就是我目前正在使用的语言。我正在尝试编写一个程序,可以显示范围在1-100之间的随机滚动数。由于无法解释这一点,我宁愿播放一段我想做的事情的视频。 在大约33秒的时间里,你可以看到滚动数字,玩家必须停止滚动才能将其分配给角色特征。少了所有漂亮的图形和其他东西,我想知道的是,是否有可能用Python编写一个提供相同类型函数的程序?如果不是Python,我现在只对C#和Java两种语言稍微熟悉一点。有没有可能用其中一个或是它们的组合来写呢? 如
谢谢 对于应用程序的图形部分,您应该看看pygame:如果人们必须观看Youtube视频才能理解您想要做什么,您的问题表达得不正确。如果不看视频,我只能假设你想知道随机整数是如何工作的
import random
x = random.randint(1, 100)
如果您想让它滚动,您可以简单地在for循环中生成三个变量或显示三个随机整数,然后将其放置在while或for循环中。
这里有一个例子
import random
import sys
try:
rolls = int(sys.argv[1])
except IndexError:
print "Usage: "+sys.argv[0]+" [rolls]"
sys.exit(1)
for i in range(1, rolls+1):
print "Roll "+str(i)
for i in range(0, 3):
print random.randint(1, 100)
“问题”在于,使用命令行界面无法直接实现这一点。如果你正在研究游戏开发,你可能会有一些图形界面,所以你应该看看你是否找到了一个库,为你提供了更多的动画选择 尽管如此,命令行的一个可能解决方案将涉及多线程。原因是您不能同时打印(不断更改)数字,也不能等待键盘输入。通常的命令行实际上在这方面是非常有限的 在下面,您可以找到一种可能的线程方法解决方案。但同样,如果你打算进行一些游戏开发,你应该查看实际的图形库,甚至可以帮助你的游戏库
from random import randint
from time import sleep
from threading import Thread
import sys
class RollAnimation ( Thread ):
activated = True
number = None
def run ( self ):
while self.activated:
self.number = randint( 1, 100 )
sys.stdout.write( '\r{: >3}'.format( self.number ) )
sys.stdout.flush()
sleep( 0.05 )
t = RollAnimation()
t.start()
# Waiting for enter
input() # use raw_input() for Python 2.x
t.activated = False
print( 'Final roll result:', t.number )
这三个数字到底是从哪里来的?@poke我认为滚动数字必须与显示几个随机整数(如老虎机)有关。我的例子的目的是展示如何创建随机整数。啊,好吧,虽然从1到100有三个插槽听上去有点奇怪,也许你提到了p我只是看了一下视频,发现我的假设是多么错误。无论哪种方式,这里都不是问
如何制作这样做的代码的地方,而是我制作了一个应该这样做的代码,但它不起作用。怎么了?
。所以我想我的答案并不是完全错了,否则人们可以把它标记为离题。不,不要误解我,我不是说你的答案错了/不好。我只是在想这件事(3;)我试着运行它时出错了,我把它发布到了。不过,它仍然可以工作,只是您必须终止Python进程才能终止它。除此之外,还有一个很好的例子,代码是用Python3编写的。在Python2.x中使用它时,需要将input()
替换为raw\u input()
,并从print
语句中删除括号。