- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个游戏,在这个游戏中我想在 0 到 -100 之间的随机 Y 位置上制作 100 个对象。
但是当我尝试random.randrange(0, -100)
时,它返回一条错误消息:
Traceback (most recent call last):
File "main.py", line 144, in <module>
main();
File "main.py", line 30, in main
setGlobalValues();
File "main.py", line 23, in setGlobalValues
food = Food();
File "main.py", line 92, in __init__
self.y = random.randrange(0, -100);
File "C:\Users\sidna\AppData\Local\Programs\Python\Python36-32\lib\random.py", line 198, in randrange
raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (0,-100, -100)
完整代码如下:
Python
# IMPORTS
import pygame, random;
# GLOBALS
global screen, displayW, displayH;
global clock, FPS;
global end, food, player;
# SETGLOBALVALUES
def setGlobalValues():
global screen, displayW, displayH;
global clock, FPS;
global end, food, player;
displayW = 800;
displayH = 600;
screen = pygame.display.set_mode((displayW, displayH));
clock = pygame.time.Clock();
FPS = 60;
end = False;
food = Food();
player = Player();
# MAIN
def main():
pygame.init();
setGlobalValues();
setup();
gameLoop();
quitGame();
# GAMELOOP
def gameLoop():
global end, player;
while(not end):
for event in pygame.event.get():
# ONCLICK QUIT
if(event.type == pygame.QUIT):
end = True;
# KEYDOWN
if(event.type == pygame.KEYDOWN):
if(event.key == pygame.K_LEFT):
player.velX -= 1;
if(event.key == pygame.K_RIGHT):
player.velX += 1;
# KEYUP
if(event.type == pygame.KEYUP):
if(event.key == pygame.K_LEFT):
player.velX = 0;
if(event.key == pygame.K_RIGHT):
player.velX = 0;
draw();
animate();
# DRAW
def draw():
global screen, food, player;
# fill background
screen.fill((255, 255, 255));
food.draw();
# update
pygame.display.update();
# ANIMATE
def animate():
global food, player;
food.animate();
player.animate();
# COLLISION
def collision():
pass;
# CLASSES
class Food():
def __init__(self, x=0, y=0, w=0, h=0, velY=0, color=()):
global displayW;
self.x = random.randrange(0, displayW);
self.y = random.randrange(0, -100);
self.w = 20;
self.h = 20;
self.velY = 0.7;
self.color = (255, 0, 0);
def draw(self):
global screen;
for amount in range(100):
pygame.draw.rect(screen, self.color, (self.x, self.y, self.w, self.h));
def animate(self):
self.y += self.velY;
def collision(self):
global displayW, displayH;
pass;
class Player():
def __init__(self, x=0, y=0, velX=0, velY=0, w=0, h=0, color=()):
global displayW, displayH;
self.w = 20;
self.h = 20;
self.x = displayW / 2 - self.w / 2;
self.y = displayH - 100;
self.velX = 0;
self.velY = 0;
self.color = (0, 0, 0);
def draw(self):
global screen;
pygame.draw.ellipse(screen, self.color, (self.x, self.y, self.w, self.h));
def animate(self):
self.x += self.velX;
self.y += self.velY;
# SETUP
def setup():
pygame.display.set_caption("Food Catcher");
# QUIT GAME
def quitGame():
pygame.quit();
quit();
# CALL MAIN
if(__name__ == "__main__"):
main();
最佳答案
smaller number should be the first argument (如果您使用多个参数):
import random
random.randrange(-100, 1)
不包含第二个参数,因此如果您希望 0
作为可能的结果,则需要将其设置为 1
。
但是,如果您实际上没有使用 step
参数,那么还有 random.randint
:
random.randint(-100, 0) # randint includes the "stop"!
关于python - 如何在 random.randrange 中使用负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42035598/
当我运行这个程序时:(python 3.3.1) import random import time from random import randrange print(' ') print('I
如何确保 python 中每次返回的值都是唯一的?我正在使用 random.randrange 像这样 - batter = ("Sammy Slammer","Lonnie Longball","B
我一直想知道 python 中的 random.randrange() 函数究竟是如何返回的在不是二的幂的范围内具有均匀偏差的值(这很容易,因为 N 位是随机产生的) 提前致谢! 最佳答案 快速查看源
所以我正在制作一个小型文本游戏,我想做的一件事是从一系列变量中获取一个随机数。 出于测试目的,我编写了如下代码: slow_speed = random.randrange(10,25) medium
我试图为 Canvas 上生成的对象创建随机坐标( Canvas 是用户屏幕的大小,因此范围不断变化。) random.randrange(12.5, int(resX-12.5)) 这是代码行 re
使用以下代码时: import random sticks = 100 randomstep = random.randint(1, 6) expertmarbles = random.randran
我有一个奇怪的问题, 我已经创建了以下代码来随机生成 1 和 x 之间的数字,增量为 1 并存储它们 import random bootstrap_node_list_recieved = [] #
我有 2 个文件 a.py 和 b.py a.py from b import * #and then some lines of code b.py import random red = rand
我正在尝试编写密码生成器的代码,但它无法正常工作,而且我无法理解该错误。 import random import string lw = list(string.ascii_lowercase) u
我正在尝试制作一个游戏,在这个游戏中我想在 0 到 -100 之间的随机 Y 位置上制作 100 个对象。 但是当我尝试random.randrange(0, -100)时,它返回一条错误消息: Tr
我试图使用 while 循环将列表拆分为训练数据和测试数据,但在运行一两次迭代后,立即弹出 randrange() 错误。无法理解出了什么问题。提取的 csv 文件有 767 行数据。下面是代码: d
在经过 while 循环后,我在从函数中获取随机 int 时遇到了问题。该函数的目的是洗牌: def shuffling(maindeck, shuffle_steps): random.seed()
所以,我在类里面被要求使用特定的随机种子 237。但我不知道如何正确实现它。例如,这是我的代码。 在 python 3 中。在这个例子中,我基本上扔了 m 个边数为 k 的骰子,并尝试返回 m 长度的
我所知道的 randrange 和 randint 之间的唯一区别是 randrange([start], stop[, step])你可以传递一个 step 参数并且 random.randrang
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在运行这段代码,它是一个“人工智能”,它知道答案是 10。每次我运行它时,它有时都会给我这个错误。这是在 Python 3.6.3 中 错误: , 1) File "D:\Jonte\pyth
我想获得一个介于 0 和 20 之间的随机值,但跳过 3,就像 python 等效于: random.randrange(0,20, 3) 最佳答案 这是一个单行: (0...20).to_a.kee
我使用随机数生成器生成 5 到 10 之间的随机数。可以不那么难吗?我之前在代码中使用过它(+2000 行代码,这里太多了)并且没有发生编码错误。 我的代码只是我游戏的彩蛋,但它破坏了我所有的代码:
我目前正在使用 Python 3.4 的 randrange 函数构建一个小问答游戏。我已经设置好并可以自动选择一个变量来选择一个问题。我唯一的问题是如何让它在您每次参加考试时只使用一次问题。 #Ma
在 Python 2.7.1 中,我导入随机模块。但是,当我调用 randint() 时,出现错误: ValueError: empty range for randrange() (1,1, 0)
我是一名优秀的程序员,十分优秀!