相关文件
想学Python的小伙伴可以关注小编的公众号【Python日志】
有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!!
需要源码的小伙伴可以在公众号回复 拼图
Python源码、问题解答学习交流群:773162165
开发环境
Python版本:3.6.7
相关模块:
pygame
random
sys
cfg
os
以及一些python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
效果展示
开始界面
选择M,是一个4x4的界面
完成拼图
代码实现
主函数
def main():
# 初始化
pygame.init()
clock = pygame.time.Clock()
# 加载图片
game_img_used = pygame.image.load(GetImagePath(cfg.PICTURE_ROOT_DIR))
game_img_used = pygame.transform.scale(game_img_used, cfg.SCREENSIZE)
game_img_used_rect = game_img_used.get_rect()
# 设置窗口
screen = pygame.display.set_mode(cfg.SCREENSIZE)
pygame.display.set_caption('拼图游戏 公众号:Python日志 学习交流群:773162165')
# 游戏开始界面
size = ShowStartInterface(screen, game_img_used_rect.width, game_img_used_rect.height)
assert isinstance(size, int)
num_rows, num_cols = size, size
num_cells = size * size
# 计算Cell大小
cell_width = game_img_used_rect.width // num_cols
cell_height = game_img_used_rect.height // num_rows
# 避免初始化为原图
while True:
game_board, blank_cell_idx = CreateBoard(num_rows, num_cols, num_cells)
if not isGameOver(game_board, size):
break
# 游戏主循环
is_running = True
while is_running:
# --事件捕获
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