面授课程
手把手教学,大型商业项目贯穿始终,提前积累工作经验。
了解详情机构:中公教育优就业it培训中心 时间:2021-02-04 12:00:36 点击:232
中公IT培训致力于培养面向互联网领域的高端人才,以学员就业为目的,优质就业为宗旨,是一家集互联网营销师、UI/UE交互设计师、Web前端工程师、Java工程师、Python工程师等众多互联网行业高端人才培养的全领域教学体系,让每一个学员都能享受到前沿的计算机技术的教学...
各位python大神,你们都用python开发过哪个游戏?飞船有没有?射击有没有?2048有没有?俄罗斯方块有没有?没有吗?你想玩拼图?python编程也是可以实现的哦,不信你来瞧好了:
一、效果的演示
小编用了91步才完成这拼图...你会用多少步呢?
二、 游戏的玩法
思路:先设置一个棋盘,棋盘里面有我们的图像,在图像里面我们有一个个的小方块,通过这些错乱的小方块拼接图板。拼接的过程就是鼠标点击事件的一个过程
三、具体的实现步骤
1.设置图像
2.定义一个图像块的类
3.定义一个方法开始拼接图板
4.重置游戏
5.绘制游戏界面各元素
6.定义鼠标的点击事件
7.创建框架
8.注册鼠标事件
9.初始化游戏
10.启动框架
环境:Python 3.6 + Windows
IDE: sublime txt3
使用到的模块:Simpleguitk
安装模块:pip install simpleguitk
#!/usr/bin/env python# -*- coding: utf-8 -*-import simpleguitk as simpleguiimport randombyamax = simplegui.load_image('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523374883465&di=d0545c2c8adb05310f4f56a35e2c6976&imgtype=0&src=http%3A%2F%2Fimg01.taopic.com%2F160625%2F235106-1606250Q05845.jpg')WIDTH = 600HEIGHT = WIDTH+100IMAGE_SIZE = WIDTH/3all_coordinates = [[IMAGE_SIZE*0.5, IMAGE_SIZE*0.5], [IMAGE_SIZE*1.5, IMAGE_SIZE*0.5],[IMAGE_SIZE*2.5, IMAGE_SIZE*0.5], [IMAGE_SIZE*0.5, IMAGE_SIZE*1.5],[IMAGE_SIZE*1.5, IMAGE_SIZE*1.5], [IMAGE_SIZE*2.5, IMAGE_SIZE*1.5],[IMAGE_SIZE*0.5, IMAGE_SIZE*2.5], [IMAGE_SIZE*1.5, IMAGE_SIZE*2.5], None]ROWS = 3COLS = 3steps = 0board = [[None,None,None],[None,None,None],[None,None,None]]class Square:def __init__(self,coordinage):self.center = coordinagedef draw(self,canvas,board_pos):canvas.draw_image(byamax,self.center,[IMAGE_SIZE,IMAGE_SIZE],[(board_pos[1]+0.5)*IMAGE_SIZE,(board_pos[0]+0.5)*IMAGE_SIZE],[IMAGE_SIZE,IMAGE_SIZE])def init_board():random.shuffle(all_coordinates)for i in range(ROWS):for j in range(COLS):idx = i * ROWS + jsquare_center = all_coordinates[idx]if square_center is None:board[i][j] = Noneelse:board[i][j] = Square(square_center)def play_game():global stepssteps = 0init_board()def draw(canvas):canvas.draw_image(byamax,[WIDTH/2,WIDTH/2],[WIDTH,WIDTH],[50,WIDTH+50],[98,98])canvas.draw_text('步数:'+str(steps),[400,680],22,'White')for i in range(ROWS):for j in range(COLS):if board[i][j] is not None:board[i][j].draw(canvas,[i,j])def mouseclick(pos):global stepsr = int(pos[1]//IMAGE_SIZE)c = int(pos[0]//IMAGE_SIZE)if r<3 and c<3:if board[r][c] is None:returnelse:current_square = board[r][c]if r - 1 >= 0 and board[r - 1][c] is None: # 判断上面board[r][c] = Noneboard[r - 1][c] = current_squaresteps += 1elif c + 1 <= 2 and board[r][c + 1] is None: # 判断右面board[r][c] = Noneboard[r][c + 1] = current_squaresteps += 1elif r + 1 <= 2 and board[r + 1][c] is None: # 判断下面board[r][c] = Noneboard[r + 1][c] = current_squaresteps += 1elif c - 1 >= 0 and board[r][c - 1] is None: # 判断左面board[r][c] = Noneboard[r][c - 1] = current_squaresteps += 1frame = simplegui.create_frame('拼图',WIDTH,HEIGHT)frame.set_canvas_background('Black')frame.set_draw_handler(draw)frame.add_button('重新开始',play_game,60)frame.set_mouseclick_handler(mouseclick)play_game()frame.start()感谢您的阅读,用python编程开发拼图游戏,你学会了吗?还想了解更多用python编程实现的游戏?继续关注python培训就对了!
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。