python显示分数_如何在Pygame上显示分数?

我是一个新程序员,正在为我的计算机科学做一个记忆游戏总结性的游戏是这样的:计算机在随机位置显示随机的盒子,然后用户必须猜测盒子在哪里,然后点击它。在

我基本上完成了,除了现在我正在尝试创建5个不同的难度等级。例如级别1将显示为2个框,级别2将显示为5等,然后如果用户通过所有级别,他们可以再次播放。我知道很多,但我真的想在这方面得个a。在

但现在我被卡住了,因为它在我试图关上窗户之前是不起作用的,即使这样,它也只走了一半。我在想我是如何定义函数的,但我不确定。

任何帮助都将不胜感激。在import pygame , sys

import random

import time

size=[500,500]

pygame.init()

screen=pygame.display.set_mode(size)

# Colours

LIME = (0,255,0)

RED = (255, 0, 0)

BLACK = (0,0,0)

PINK = (255,102,178)

SALMON = (255,192,203)

WHITE = (255,255,255)

LIGHT_PINK = (255, 181, 197)

SKY_BLUE = (176, 226, 255)

screen.fill(BLACK)

# Width and Height of game box

width=50

height=50

# Margin between each cell

margin = 5

rows = 20

columns = 20

# Set title of screen

pygame.display.set_caption("Spatial Recall")

# Used to manage how fast the screen updates

clock=pygame.time.Clock()

coord=[]

# Create a 2 dimensional array. A two dimesional

# array is simply a list of lists.

def resetGrid():

grid = []

for row in range(rows):

# Add an empty array that will hold each cell

# in this row

grid.append([])

for column in range(columns):

grid[row].append(0) # Append a cell

return grid

def displayAllPink(pygame):

for row in range(rows):

for column in range(columns):

color = LIGHT_PINK

pygame.draw.rect(screen,color,[(margin+width)*column + margin,(margin+height)*row+margin,width,height])

pygame.display.flip()

def displayOtherColor(pygame,grid):

coord = []

for i in range(random.randint(2,5)):

x = random.randint(2, rows-1)

y = random.randint(2, columns-1)

color = LIME

pygame.draw.rect(screen,color,[(margin+width)*y + margin,(margin+height)*x+margin,width,height])

coord.append((x,y))

grid[x][y] = 1

pygame.display.flip()

time.sleep(1)

return coord

def runGame(gameCount,coord,pygame,grid):

pygame.event.clear()

pygame.display.set_caption("Spatial Recall: Level "+ str(gameCount))

pygame.time.set_timer(pygame.USEREVENT,1000)

time = 0

#clock.tick(

# -------- Main Program Loop -----------

#Loop until the user clicks the close button.

done = False

while done==False:

event = pygame.event.wait() # User did something

if event.type == pygame.QUIT: # If user clicked close

done=True # Flag that we are done so we exit this loop

pygame.event.clear()

print "Game ",gameCount, "ends"

elif event.type == pygame.USEREVENT:

time = time + 1

pygame.display.set_caption("Spatial Recall: Level "+ str(gameCount) + " Time: "+ str(time))

if time == 100:

done = True

pygame.display.set_caption("Time out, moving to next level")

pygame.event.clear()

return False

elif event.type == pygame.MOUSEBUTTONDOWN:

# User clicks the mouse. Get the position

pos = pygame.mouse.get_pos()

# Change the x/y screen coordinates to grid coordinates

column=pos[0] // (width+margin)

row=pos[1] // (height+margin)

if (row,column) in coord:

print coord

coord.remove((row,column))

print coord

color = LIME

pygame.draw.rect(screen,color,[(margin+width)*column + margin,(margin+height)*row+margin,width,height])

if coord == []:

done=True

pygame.display.set_caption("Time out, moving to next level")

pygame.event.clear()

return True

else:

color = RED

pygame.draw.rect(screen,color,[(margin+width)*column + margin,(margin+height)*row+margin,width,height])

pygame.display.flip()

def startTheGame(gameCount):

grid = resetGrid()

displayAllPink(pygame)

coord = displayOtherColor(pygame,grid)

displayAllPink(pygame)

runGame(gameCount,coord,pygame,grid)

for i in range(2):

startTheGame(i+1)

pygame.quit ()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值