加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python turtle实现俄罗斯方块 基础版

发布时间:2020-12-20 10:22:05 所属栏目:Python 来源:网络整理
导读:本项目通过python自带库tkinter实现,无需安装第三方库 本项目基于python3版本开发(如果你的是python2.x,运行可能会有问题) ?一、基础界面 1 搭建基础窗体 使用tkinter库实现基础窗体,不加入任何功能只需如下三行代码 import tkinter as tkwin = tk.Tk()

本项目通过python自带库tkinter实现,无需安装第三方库

本项目基于python3版本开发(如果你的是python2.x,运行可能会有问题)

?一、基础界面

1 搭建基础窗体

使用tkinter库实现基础窗体,不加入任何功能只需如下三行代码

import tkinter as tk

win = tk.Tk()
win.mainloop()

运行代码生成的窗口如下

接下来我们需要在窗体里面,添加一个画布容器用来“装”俄罗斯方块,就是让这个画布作为面板,俄罗斯方块的移动和绘制均在这个画板上实现。

这里我们设定一些俄罗斯方块游戏参数

行数为R(取20)

列数为C(取12)

俄罗斯方块的边长为cell_size(取30)

通过tkinger的画布类Canvas实现的代码如下

import tkinter as tk

cell_size=30
C = 12
R = 20
height = R*cell_size
width = C*cell_size

win = tk.Tk()
canvas = tk.Canvas(win,width=width,height=height)
canvas.pack()

win.mainloop()

运行代码生成的窗口如下,此时界面的长宽就变成我们所需要的了

?

?接下来在画板上绘制俄罗斯方块空白位

首先建立一个函数draw_cell_by_cr,用于在画板上绘制俄罗斯方块

然后遍历一遍所有行所有列,绘制上空白的方块(为了和背景区分,所以设置空白方块为轻灰色)

此时整体代码如下:

import tkinter as tk

cell_size=30
C = 12
R = 20
height = R*cell_size
width = C*cell_size


def draw_cell_by_cr(canvas,c,r,color = "#CCCCCC"):
    """
    :param canvas: 画板,用于绘制一个方块的Canvas对象
    :param c: 方块所在列
    :param r: 方块所在行
    :param color: 方块颜色,默认为#CCCCCC,轻灰色
    :return:
    """
    x0 = c * cell_size
    y0 = r * cell_size
    x1 = c * cell_size + cell_size
    y1 = r * cell_size + cell_size
    canvas.create_rectangle(x0,y0,x1,y1,fill=color,outline="white",width=2)


win = tk.Tk()
canvas = tk.Canvas(win,height=height,)
canvas.pack()

# 绘制方格块
for ri in range(R):
    for ci in range(C):
        draw_cell_by_cr(canvas,ci,ri)

win.mainloop()

此时运行代码生成的窗口如下

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读