一分钟学会用pygame制作棋盘背景

在这里插入图片描述

一分钟一个Pygame案例,这一集我们来学习一下如何生成一个视频中的棋盘背景效果,非常非常简单。

视频教程链接:https://www.bilibili.com/video/BV17G411d7Ah/

当然我们这里是用来做页面的背景,你也可以拿来做别的效果,比如贪吃蛇的地图等。
我们先讲效果实现思路,再讲效果的实现代码。

最开始的开始,我们有一个白色的屏幕,矩形即可,我们这里以一个边长为500的正方形为例,然后我们还有两个颜色的小正方形,我们可以很轻松的发现最终的效果就是这两个小正方形填充进大正方形后的效果。我们最重要的就是这两个不同色矩形按照怎样的规则填充进去。

我们在这里直接将规则展示出来,非常非常简单。

规则就是我们将这些矩形所处的行和列加起来得到的值,每一个奇数上下左右都是偶数,同理每一个偶数上下左右都是奇数。

所以我们只需要用大矩形的长和宽分别除以小矩形的宽,得出行和列,然后进行循环,按照上面所述的规则进行填充进大矩形即可。

好了,思路讲述完毕。下面我们来看看代码。

最基础的代码我们之前的视频已经讲过了。这里只看实现的关键代码。

这行代码我们定义了一些参数,例如背景长宽,棋盘格子的宽,大背景的长和宽,两种小矩形格子的颜色。

然后一个列表生成式,生成每个小矩形的位置和颜色。

根据列表里面的对应信息将小矩形填充进背景矩形。

最后再将背景绘制进主窗口屏幕中。

好了,代码讲解完毕,最后我们再来看一下效果。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/106767.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试框架pytest教程(10)自定义命令行-pytest_addoption

pytest_addoption pytest_addoption是pytest插件系统中的一个钩子函数,用于向pytest添加自定义命令行选项。 在pytest中,可以使用命令行选项来控制测试的行为和配置。pytest_addoption钩子函数允许您在运行pytest时添加自定义的命令行选项,…

知识储备--基础算法篇-动态规划

1.前言 第一次接触动态规划,不知道具体什么意思,做了题才发现动态规划就是把大问题变成小问题,并解决了小问题重复计算的方法称为动态规划。比如上楼梯,一次上一阶或二阶,求有多少种算法,就可以拆成最后一…

使用Pytorch和OpenCV实现视频人脸替换

“DeepFaceLab”项目已经发布了很长时间了,作为研究的目的,本文将介绍他的原理,并使用Pytorch和OpenCV创建一个简化版本。 本文将分成3个部分,第一部分从两个视频中提取人脸并构建标准人脸数据集。第二部分使用数据集与神经网络一…

【C++】stack和queue

stack和queue 1. stack1.1 简单了解stack1.2 stack的常见接口1.3 练习1.4 模拟实现stack 2. queue2.1 简单了解queue2.2 queue的常见接口2.3 练习2.4 模拟实现queue 3. deque(了解)4. priority_queue4.1 优先级队列的介绍4.2 priority_queue的常见接口4.…

【80天学习完《深入理解计算机系统》】第十天 3.3 条件码寄存器【CF ZF SF OF】【set】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

Python Scrapy网络爬虫框架从入门到实战

Python Scrapy是一个强大的网络爬虫框架,它提供了丰富的功能和灵活的扩展性,使得爬取网页数据变得简单高效。本文将介绍Scrapy框架的基本概念、用法和实际案例,帮助你快速上手和应用Scrapy进行数据抓取。 Scrapy是一个基于Python的开源网络爬…

如何进行微服务的集成测试

集成测试的概念 说到集成测试,相信每个测试工程师并不陌生,它不是一个崭新的概念,通过维基百科定义可以知道它在传统软件测试中的含义。 Integration testing (sometimes called integration and testing, abbreviated I&T) is the pha…

Git 版本控制系统

git相关代码 0、清屏幕:clear 1、查看版本号 git -v2、暂存、更改、提交 3、当前项目下暂存区中有哪些文件 git ls-files4、查看文件状态 git status -s5、暂时存储,可以临时恢复代码内容 git restore 目标文件 //(注意:完全…

自动控制原理笔记-采样控制系统

目录 采样控制系统的基本概念: 采样过程及采样定理: 一、采样过程 二、采样定理(香农采样定理、奈奎斯特采样定律) 三、信号复现 四、零阶保持器 z变换与z反变换: z变换的定义 z变换基本定理 z反变换 采样系…

谷歌面试-扔鸡蛋

今天想跟大家分享一个有意思的面试题,这让我再一次感叹思维的奇妙,接下来我们一起看看吧~ 首先来看看题目: 你有2颗鸡蛋,需要以最少的尝试次数来判断在100层的高楼上,哪一层楼是鸡蛋的安全层。 换句话说&#xff0c…

EureKa快速入门

EureKa快速入门 远程调用的问题 多个服务有多个端口,这样的话服务有多个,硬编码不太适合 eureKa的作用 将service的所有服务的端口全部记录下来 想要的话 直接从注册中心查询对于所有服务 每隔一段时间需要想eureKa发送请求 保证服务还存活 动手实践 …

【C语言基础】源文件与头文件详解

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

五、多表查询-3.3连接查询-自连接

一、语法 二、演示-自连接(内连接) 【例】查询员工 及其 所属领导的名字(managerid,领导也是员工表emp1表中的数据) !!必须起别名!! ——内连接只查询交集部分的数据 …

grep命令的用法

文章目录 前言一、使用说明二、应用举例 前言 grep 命令用于查找文件里符合条件的字符串。 一、使用说明 -r: 如果需要搜索目录中的文件内容, 需要进行递归操作, 必须指定该参数 -i: 对应要搜索的关键字, 忽略字符大小写的差别 -n: 在显示符合样式的那一行之前,标…

基于MATLAB的径向基函数插值(RBF插值)(一维、二维、三维)

基于MATLAB的径向基函数插值(RBF插值)(一维、二维、三维) 0 前言1 RBF思路2 1维RBF函数2.1 参数说明2.1.1 核函数选择2.1.2 作用半径2.1.3 多项式拟合2.1.4 误差项(光滑项) 3 2维RBF函数4 3维RBF函数 惯例声…

AI 绘画Stable Diffusion 研究(十四)SD 图生图+剪映制作人物说话视频

大家好,我是风雨无阻。 前一篇,我们详细介绍了使用 SadTlaker制作数字人视频案例,感兴趣的朋友请前往查看:AI 绘画Stable Diffusion 研究(十三)SD数字人制作工具SadTlaker使用教程。 对于没有安装 SadTlaker 插件的朋友…

Vue2向Vue3过度核心技术生命周期

目录 1 Vue生命周期2 Vue生命周期钩子3 生命周期钩子小案例1.1 在created中发送数据1.2 在mounted中获取焦点 4 案例-小黑记账清单4.1 需求图示:4.2 需求分析3.思路分析4.代码准备 1 Vue生命周期 思考:什么时候可以发送初始化渲染请求?&#…

【算法专题突破】双指针 - 复写零(2)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:1089. 复写零 - 力扣(Leetcode) 我先来读题, 题目的意思非常的简单,其实就是, 遇到 0 就复制一个写进数组&a…

ElementUI Table 翻页缓存数据

Element UI Table 翻页保存之前的数据,网上找了一些,大部分都是用**:row-key** 和 reserve-selection,但是我觉得有bug,我明明翻页了…但是全选的的个框还是勾着的(可能是使用方法不对,要是有好使的…请cute我一下…感谢) 所以自己写了一个… 思路: 手动勾选的时候,将数据保存…

jsp 图书销售系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 图书销售系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…