本项目通过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, width=width, height=height,)

canvas.pack()

# 绘制方格块

for ri in range(R):

for ci in range(C):

draw_cell_by_cr(canvas, ci, ri)

win.mainloop()

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

python俄罗斯方块代码34行_python turtle实现俄罗斯方块 基础版相关推荐

  1. python俄罗斯方块代码34行_少儿编程分享:码趣君教你用Python编写俄罗斯方块(四)...

    接下来要进入操作部分了 坚持才能获得最后的成就感噢 用移动变量处理用户输入 216. elif (event.key == K_LEFT or event.key == K_a): 217. movi ...

  2. python中的画笔控制函数_Python turtle库的画笔控制说明

    turtle.penup() 别名 turtle.pu() :抬起画笔海龟在飞行 turtle.pendown() 别名 turtle.pd():画笔落下,海龟在爬行 turtle.pensize(w ...

  3. python写代码怎么分行_python怎么分行

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 文件路径文件路径的书写格式 以下三种书写格式都符合python语法:文件内容的操 ...

  4. 如何进入python程序代码编辑环境_Python怎么打开代码编辑器 来学习吧

    Python作为近几年来最为优秀的编程语言之一,受到了很多程序员的追捧,现在我教大家如何打开Python的代码编辑器 工具/材料 电脑 Python 操作方法 01 首先,点击[开始]按钮,开始按钮几 ...

  5. python发牌代码十点半_Python制作扑克牌发牌程序,另含大量Python代码!

    题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 提示: 设计出3个类:Card类.Hand类和Poke类. Card类代表一张牌,其中Fac ...

  6. python画圆及其内接多边形_Python turtle 绘图画圆(2)

    turtle.circle(radius, extent=None, steps=None) 描述: 以给定半径画圆 参数: radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆 ...

  7. python语言的变量类型_Python语言变量类型基础学习

    本文主要向大家介绍了Python语言变量类型基础学习,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. Python基本语法1.定义常量: 之前定义变量没有一起介绍定义常量,是因为P ...

  8. python导入文件列行_python读写csv文件并增加行列的实例代码

    python读写csv文件并增加行列,具体代码如下所示: # -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28: ...

  9. python代码画大白_Python turtle 画个大白

    今天用Python Turtle画个大白吧.效果图如下: Python画大白 def bai(): #tracer(False) speed(0) pensize(5) color('black',' ...

最新文章

  1. 建立用户体验(User Experience,UX)过程的实用指南
  2. Linux tomcat日志分割按天分割
  3. CTF之一次曲折获取Flag的过程
  4. 18B树、B++树和Trie树
  5. Java基础知识——Java数组详解
  6. 2017.9.14 dispatching 思考记录
  7. CodeProject是个好地方
  8. Si4463/Si4432/Si4438无线射频RF方案
  9. PostgreSQL中with和without time zone两者有什么区别
  10. HDU - 5773 - The All-purpose Zero 【必做题目之LIS+++贪贪贪贪心】
  11. 华为HCNE考试练习题经典模拟题
  12. 利用js脚本自动删除微博
  13. 区块链是新的 Linux 而非新的互联网
  14. 使用lupdate生成Qt的ts翻译文件
  15. 六月集训(第17天) —— 广度优先搜索
  16. 提示“The selection cannot be launched, and there are no recent launches.”
  17. pycharm中django框架连接mysql数据库
  18. 我的企业使用虚拟信用卡支付有什么优势
  19. 地市级公安交管融媒体中心运营模式研究
  20. 灰灰教你学python ~小黄鸡自动回复

热门文章

  1. angular/react/vue/un-app
  2. 亚马逊高调入局ChatGPT大战,发布Titan大模型、AI编程助手全免费,CEO:改变所有体验...
  3. java全月应纳税所得额_累计应纳税所得额是什么意思
  4. [AH/HNOI2017]影魔
  5. linux设置防火墙,自启动以及关闭禁止防火墙
  6. 路飞学院python 字典练习题
  7. codevs1851 越狱
  8. 常用电子书文件格式介绍
  9. 纺织厂生产用电设备工作时长开关机状态监控项目案例
  10. 大数据看美食 | 大众点评餐厅数据分析报告!