我试图在每次用户得到正确的答案时添加一个点,如果在我的连接4数学游戏中不正确,则会删除一个点。在游戏中,用户将计数器放入需要的位置并弹出问题并等待答案以便可以继续。此代码中的所有内容都有效,但我只是想制作一个积分系统。这只会在每次回答问题时重置分数值。谢谢你的帮助!
N = random.randint(0, 14)
SCORE = 0
with open("QUESTIONS.txt") as QUESTIONS, open("ANSWERS.txt") as ANSWERS:
QUESTIONdata = QUESTIONS.readlines()
ANSWERdata = ANSWERS.readlines()
x = QUESTIONdata[N]
y = ANSWERdata[N]
txtbx = inputbox.Input(maxlength=45, color=(169,37,44), prompt = x[:-1])
while True:
events = pygame.event.get()
txtanswer = txtbx.update(events)
txtbx.draw(DISPLAYWINDOW)
pygame.display.flip()
drawBoard(mainBoard)
B = pygame.Surface((630, 540), pygame.SRCALPHA)
B.fill((0,0,0,128))
DISPLAYWINDOW.blit(B, (XMARGIN, YMARGIN))
for event in events:
if event.type == KEYDOWN:
if event.key == K_RETURN:
user_answer = str(txtbx.value)
try:
if (user_answer) == str(y[:-1]):
print("correct")
SCORE += 1
print(SCORE)
return
else:
turn = AI
print("incorrect")
print(SCORE)
SCORE += -1
print(SCORE)
return
except ValueError:
turn = AI
print("value errr")
SCORE += -1
return
elif event.type == QUIT:
pygame.quit()
return
答案 0 :(得分:0)
您的分数应该是一个全局变量我不确定您的整个脚本是否在一个文件中,但如果不是您可以做的就是返回您想要更改的分数。然后按照每个人的建议进行操作,因此在main()
中只需将SCORE添加为全局变量。
global SCORE
这应该可以解决您正在运行的问题。只是下次你发布一个问题,你需要包含更多的信息和更相关的代码。您没有包含所有相关代码。
更好的是,这是一个更好的解决方案。
在这里,我正在改变一件轻微的事情。
while True: # main loop
if turn == PLAYER:
# PLAYER's turn.
getPLAYERMove(mainBoard, RED)
changeOfScore = askquestions(mainBoard, RED)
SCORE += changeOfScore
然后在askquestions函数中返回您想要更改SCORE的数量。
示例:
return 1
或
return -1