python俄罗斯方块代码34行_python turtle实现俄罗斯方块 基础版
本项目通过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实现俄罗斯方块 基础版相关推荐
- python俄罗斯方块代码34行_少儿编程分享:码趣君教你用Python编写俄罗斯方块(四)...
接下来要进入操作部分了 坚持才能获得最后的成就感噢 用移动变量处理用户输入 216. elif (event.key == K_LEFT or event.key == K_a): 217. movi ...
- python中的画笔控制函数_Python turtle库的画笔控制说明
turtle.penup() 别名 turtle.pu() :抬起画笔海龟在飞行 turtle.pendown() 别名 turtle.pd():画笔落下,海龟在爬行 turtle.pensize(w ...
- python写代码怎么分行_python怎么分行
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 文件路径文件路径的书写格式 以下三种书写格式都符合python语法:文件内容的操 ...
- 如何进入python程序代码编辑环境_Python怎么打开代码编辑器 来学习吧
Python作为近几年来最为优秀的编程语言之一,受到了很多程序员的追捧,现在我教大家如何打开Python的代码编辑器 工具/材料 电脑 Python 操作方法 01 首先,点击[开始]按钮,开始按钮几 ...
- python发牌代码十点半_Python制作扑克牌发牌程序,另含大量Python代码!
题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 提示: 设计出3个类:Card类.Hand类和Poke类. Card类代表一张牌,其中Fac ...
- python画圆及其内接多边形_Python turtle 绘图画圆(2)
turtle.circle(radius, extent=None, steps=None) 描述: 以给定半径画圆 参数: radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆 ...
- python语言的变量类型_Python语言变量类型基础学习
本文主要向大家介绍了Python语言变量类型基础学习,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. Python基本语法1.定义常量: 之前定义变量没有一起介绍定义常量,是因为P ...
- python导入文件列行_python读写csv文件并增加行列的实例代码
python读写csv文件并增加行列,具体代码如下所示: # -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28: ...
- python代码画大白_Python turtle 画个大白
今天用Python Turtle画个大白吧.效果图如下: Python画大白 def bai(): #tracer(False) speed(0) pensize(5) color('black',' ...
最新文章
- 建立用户体验(User Experience,UX)过程的实用指南
- Linux tomcat日志分割按天分割
- CTF之一次曲折获取Flag的过程
- 18B树、B++树和Trie树
- Java基础知识——Java数组详解
- 2017.9.14 dispatching 思考记录
- CodeProject是个好地方
- Si4463/Si4432/Si4438无线射频RF方案
- PostgreSQL中with和without time zone两者有什么区别
- HDU - 5773 - The All-purpose Zero 【必做题目之LIS+++贪贪贪贪心】
- 华为HCNE考试练习题经典模拟题
- 利用js脚本自动删除微博
- 区块链是新的 Linux 而非新的互联网
- 使用lupdate生成Qt的ts翻译文件
- 六月集训(第17天) —— 广度优先搜索
- 提示“The selection cannot be launched, and there are no recent launches.”
- pycharm中django框架连接mysql数据库
- 我的企业使用虚拟信用卡支付有什么优势
- 地市级公安交管融媒体中心运营模式研究
- 灰灰教你学python ~小黄鸡自动回复