python图形小游戏代码_python 拼图游戏代码

# -*- coding: utf-8 -*-

import simpleguitk as simplegui

import random

#

载入外部图像

baymax = simplegui.load_image("http://mooc.xjau.edu.cn/c4x/XJAU/CS101/asset/baymax.jpg")

#

定义常量

#

画布的尺寸

WIDTH = 600

HEIGHT = WIDTH + 100

#

图像块的边长

IMAGE_SIZE = WIDTH / 3

#

图像块坐标列表

all_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 = 3

COLS = 3

#

移动步数

steps = 0

#

保存所有图像块的列表

board = [[None, None, None],

[None, None, None],

[None, None, None]]

#

图像块类

class Square:

def __init__(self, coordinate):

self.center = coordinate

def draw(self, canvas, board_pos):

canvas.draw_image(baymax, 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 + j

square_center = all_coordinates[idx]

if square_center is None:

board[i][j] = None

else:

board[i][j] = Square(square_center)

#

重置游戏

def play_game():

global steps

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值