导语
玩过拼图的小伙伴应该知道,即使是数量多过1000片的拼图,每一片的位置都有着属于自己的位置,拼错了就是对不上。
但当你将每片拼图,严丝合缝地嵌入属于它的位置时,那种满足感与成就感,试过一次就很难忘记。
拼图是一项几乎没有门槛的游戏,只是在专注而安静地完成一件简单的事,将零散无序的碎片慢慢还原为一个完整的小世界。
让你专心致志地享受,几个小时心无杂念的平静时光。
这次上新,我们商店安排了一款给你们解闷儿的拼图,难度由高到低,3*3片、4*4片、5*5片的拼图都有。
正文
今日更新—学习了一篇大佬的文章,整理了下然后自己做了一款校花校草的拼图小游戏!
这款拼图小游戏——从简单到难,如果你都闯过了,并且有喜欢的人,那就勇敢的去表白吧~让他、她知道你的心意!
开始——
先展示效果吧:
骄傲~哈哈哈 都完成了哈!我这技术还是不错的,当人这是最简单的3*3模式,后面更难的模式就交给大家啦!
游戏步骤如下:
(1)首先安装好相应的环境。
Python、pycharm、pygame模块。
pip install pygame
(2)配置文件。
'''屏幕大小'''
SCREENSIZE = (640, 640)
'''图片素材根目录'''
PICTURE_ROOT_DIR = os.path.join(os.getcwd(), 'resources/pictures')
'''字体路径'''
FONTPATH = os.path.join(os.getcwd(), 'resources/font/FZSTK.TTF')
'''定义一些颜色'''
BACKGROUNDCOLOR = (255, 255, 255)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
BLACK = (0, 0, 0)
'''FPS'''
FPS = 40
'''随机打乱拼图次数'''
NUMRANDOM = 100
(3)
空白处上下左右移动。
'''将空白Cell左边的Cell右移到空白Cell位置'''
def moveR(board, blank_cell_idx, num_cols):
if blank_cell_idx % num_cols == 0: return blank_cell_idx
board[blank_cell_idx-1], board[blank_cell_idx] = board[blank_cell_idx], board[blank_cell_idx-1]
return blank_cell_idx - 1
'''将空白Cell右边的Cell左移到空白Cell位置'''
def moveL(board, blank_cell_idx, num_cols):
if (blank_cell_idx+1) % num_cols == 0: return blank_cell_idx
board[blank_cell_idx+1], board[blank_cell_idx] = board[blank_cell_idx], board[blank_cell_idx+1]
return blank_cell_idx + 1
'''将空白Cell上边的Cell下移到空白Cell位置'''
def moveD(board, blank_cell_idx, num_cols):
if blank_cell_idx < num_cols: return blank_cell_idx
board[blank_cell_idx-num_cols], board[blank_cell_idx] = board[blank_cell_idx], board[blank_cell_idx-num_cols]
return blank_cell_idx - num_cols
'''将空白Cell下边的Cell上移到空白Cell位置'''
def moveU(board, blank_cell_idx, num_rows, num_cols):
if blank_cell_idx >= (num_rows-1) * num_cols: return blank_cell_idx
board[blank_cell_idx+num_cols], board[blank_cell_idx] = board[blank_cell_idx], board[blank_cell_idx+num_cols]
return blank_cell_idx + num_cols
(4)游戏界面。
def ShowStartInterface(screen, width, height):
screen.fill(cfg.BACKGROUNDCOLOR)
tfont = pygame.font.Font(cfg.FONTPATH, width//4)
cfont = pygame.font.Font(cfg.FONTPATH, width//20)
title = tfont.render('校花拼图', True, cfg.RED)
content1 = cfont.render('按相应键开始游戏', True, cfg.BLUE)
content2 = cfont.render('H—高难度, M—中级, L—简单', True, cfg.BLUE)
trect = title.get_rect()
trect.midtop = (width/2, height/10)
crect1 = content1.get_rect()
crect1.midtop = (width/2, height/2.2)
crect2 = content2.get_rect()
crect2.midtop = (width/2, height/1.8)
screen.blit(title, trect)
screen.blit(content1, crect1)
screen.blit(content2, crect2)
while True:
for event in pygame.event.get():
if (event.type == pygame.QUIT) or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == ord('l'): return 3
elif event.key == ord('m'): return 4
elif event.key == ord('h'): return 5
pygame.display.update()
如下图所示:
总结
全文完,文章就写完了哈~赶快拿去试试 玩一下吧!
完整的项目源码免费领:关注小编公众号:Python顾木子吖
欢迎大家阅读,如有帮助到你,记得三连哦~一起学习成长交流吧!