当前位置: 首页 > news >正文

软件价值2-贪吃蛇游戏

贪吃蛇游戏虽然很多,不过它可以作为软件创作的开端,用python来实现,然后dist成windows系统可执行文件。

import pygame
import sys
import random# 初始化
pygame.init()# 游戏设置
width, height = 640, 480
cell_size = 20
snake_speed = 15# 颜色定义
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)# 创建窗口
window = pygame.display.set_mode((width, height))
pygame.display.set_caption("贪吃蛇游戏")# 初始化蛇
snake = [(100, 100), (90, 100), (80, 100)]
snake_direction = (cell_size, 0)# 初始化食物
food = (random.randint(0, width - cell_size) // cell_size * cell_size,random.randint(0, height - cell_size) // cell_size * cell_size)# 游戏循环
clock = pygame.time.Clock()while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()elif event.type == pygame.KEYDOWN:if event.key == pygame.K_UP and snake_direction != (0, cell_size):snake_direction = (0, -cell_size)elif event.key == pygame.K_DOWN and snake_direction != (0, -cell_size):snake_direction = (0, cell_size)elif event.key == pygame.K_LEFT and snake_direction != (cell_size, 0):snake_direction = (-cell_size, 0)elif event.key == pygame.K_RIGHT and snake_direction != (-cell_size, 0):snake_direction = (cell_size, 0)# 移动蛇head = (snake[0][0] + snake_direction[0], snake[0][1] + snake_direction[1])# 边界碰撞检测if head[0] < 0:head = (width - cell_size, head[1])elif head[0] >= width:head = (0, head[1])elif head[1] < 0:head = (head[0], height - cell_size)elif head[1] >= height:head = (head[0], 0)snake = [head] + snake[:-1]# 判断是否吃到食物if head == food:snake.append(snake[-1])food = (random.randint(0, width - cell_size) // cell_size * cell_size,random.randint(0, height - cell_size) // cell_size * cell_size)# 判断是否游戏结束if head in snake[1:]:pygame.quit()sys.exit()# 绘制窗口window.fill(black)# 绘制蛇for segment in snake:pygame.draw.rect(window, white, pygame.Rect(segment[0], segment[1], cell_size, cell_size))# 绘制食物pygame.draw.rect(window, red, pygame.Rect(food[0], food[1], cell_size, cell_size))# 更新显示pygame.display.flip()# 控制帧率clock.tick(snake_speed)

发布: 

用PyInstaller可以将 Python 脚本打包成 Windows、Linux 和 macOS 上的可执行文件。你可以使用以下命令安装 PyInstaller:

pip install pyinstaller

然后,可以使用以下命令将你的游戏脚本打包成一个可执行文件:

pyinstaller --onefile greedySnake.py

这将在 dist 文件夹中生成一个单一的可执行文件。

运行:

贪吃蛇游戏

相关文章:

软件价值2-贪吃蛇游戏

贪吃蛇游戏虽然很多&#xff0c;不过它可以作为软件创作的开端&#xff0c;用python来实现&#xff0c;然后dist成windows系统可执行文件。 import pygame import sys import random# 初始化 pygame.init()# 游戏设置 width, height 640, 480 cell_size 20 snake_speed 15# …...

应用案例 | 基于三维机器视觉的汽车副车架在线测量解决方案

在汽车制造领域中&#xff0c;精确的测量是确保产品质量和生产效率的关键。随着科技的不断进步&#xff0c;测量技术也在不断精进。 副车架是汽车底盘的重要组成部分&#xff0c;负责支撑引擎&#xff0c;是车辆结构中至关重要的组成部分之一&#xff0c;其制造质量直接关系到汽…...

线程的创建和使用threading.Thread()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 线程的创建和使用 threading.Thread() [太阳]选择题 关于以下代码的输出是&#xff1f; import threading import time def f(name): print(name) for i in range(3): print…...

大数据学习之Redis,十大数据类型的具体应用(四)

3.8 Redis基数统计&#xff08;HyperLogLog&#xff09; 需求 统计某个网站的UV、统计某个文章的UV 什么是UV unique Visitor &#xff0c;独立访客&#xff0c;一般理解为客户端IP 大规模的防止作弊&#xff0c;需要去重复统计独立访客 比如IP同样就认为是同一个客户 需要去…...

哪个牌子的头戴式耳机好?推荐性价比高的头戴式耳机品牌

随着科技的不断发展&#xff0c;耳机市场也呈现出百花齐放的态势&#xff0c;从高端的奢侈品牌到亲民的平价品牌&#xff0c;各种款式、功能的耳机层出不穷&#xff0c;而头戴式耳机作为其中的一员&#xff0c;凭借其优秀的音质和降噪功能&#xff0c;受到了广大用户的喜爱&…...

Java EE 5 SDK架构

Java EE 5 SDK架构 大型组织每天都要处理大量数据和多用户的相关事务。为管理该组织如此大型而又复杂的系统,开发了企业应用程序。企业应用程序是在服务器上托管的应用程序,通过计算机网络同时向大量用户提供服务。这种应用程序可采用各种技术开发,如Java EE 5。Java EE 5平…...

nop-entropy可逆计算入门(1)

第1步&#xff1a;从大佬的gitee&#xff1a;https://gitee.com/canonical-entropy/nop-entropy下载源码&#xff0c;进行本地编译&#xff0c;具体编译看项目下的readme,想偷懒的可以下载我编译后的jar&#xff0c;放到自己的maven仓库 https://pan.baidu.com/s/15qANnrCh5RV…...

C++(9) 虚函数

文章目录 虚函数1. 虚函数1.1 虚函数案例11.2 虚函数案例21.2 纯虚函数1.3 纯虚函数语法要求总环1.4 纯虚函数应用1.4.1 生活案例1.4.2 虚函数引用代码 虚函数 1. 虚函数 1.1 虚函数案例1 #include <iostream>using namespace std;class Animal { public:// Animal 类…...

uniapp 使用canvas 画海报,有手粘贴即可用(拆成组件了,看后面)

1.直接使用 html部分 <view click"doposter">下载海报</view> <canvas canvas-id"myCanvas" type2d style"width: 370px; height: 550px;opcity:0;position: fixed;z-index:-1;" id"myCanvas" />js 部分 drawBac…...

Amazon Bedrock 的微调和持续预训练功能允许用户使用私有数据定制模型

今天我很高兴地宣布&#xff0c;您现在可以在 Amazon Bedrock 中使用自己的数据&#xff0c;安全并私密地定制基础模型&#xff08;FMs&#xff09;&#xff0c;按照您所在领域、企业和用例的特定要求构建应用程序。借助定制模型&#xff0c;您可以创建独特的用户体验&#xff…...

Pyecharts绘制多种炫酷气泡图

Pyecharts绘制多种炫酷气泡图 引言 数据可视化是数据分析中不可或缺的一环&#xff0c;而Pyecharts作为一款基于Echarts的Python图表库&#xff0c;提供了丰富的图表类型&#xff0c;其中气泡图是一种常用于展示三维数据的炫酷图表。本文将介绍如何使用Pyecharts绘制多种炫酷…...

C# 多线程(2)——线程同步

目录 1 线程不安全2 线程同步方式2.1 简单的阻塞方法2.2 锁2.2.1 Lock使用2.2.2 互斥体Mutex2.2.3 信号量Semaphore2.2.3 轻量级信号量SemaphoreSlim2.2.4 读写锁ReaderWriterLockSlim 2.3 信号同步2.3.1 AutoResetEvent2.3.1.1 AutoResetEvent实现双向信号 2.3.2 ManualResetE…...

Java设计模式【工厂模式】

Java设计模式【工厂模式】 前言 三种工厂模式&#xff1a;简单工厂模式、工厂方法模式、抽象工厂模式&#xff1b; 创建型设计模式封装对象的创建过程&#xff0c;将对象的创建和使用分离开&#xff0c;从而提高代码的可维护性和可扩展性 简单工厂模式 概述&#xff1a;将…...

AI智能分析+明厨亮灶智慧管理平台助力“舌尖上的安全”

春节是中国最重要的传统节日之一&#xff0c;在春节期间&#xff0c;人们聚餐需求激增&#xff0c;餐饮业也迎来了高峰期。在这个时期&#xff0c;餐饮企业需要更加注重食品安全和卫生质量&#xff0c;以保证消费者的健康和权益&#xff0c;明厨亮灶智慧管理成为了餐饮业中备受…...

【现代密码学基础】详解完美安全与香农定理

目录 一. 介绍 二. 完美安全的密钥与消息空间 三. 完美安全的密钥长度 四. 最优的完美安全方案 五. 香农定理 &#xff08;1&#xff09;理论分析 &#xff08;2&#xff09;严格的正向证明 &#xff08;3&#xff09;严格的反向证明 六. 小结 一. 介绍 一次一密方案…...

Python 将文本转换成语音播放 pyttsx3

Python 将文本转换成语音播放 pyttsx3 目录 Python 将文本转换成语音播放 pyttsx3 1. 安装 2. 使用 3. 封装 Pyttsx3 是一个 Python 库&#xff0c;它提供了文本到语音&#xff08;Text-to-Speech&#xff0c;TTS&#xff09;转换的功能。这个库允许 Python 程序通过调用本…...

FPGA高端项目:Xilinx Artix7系列FPGA 多路视频缩放拼接 工程解决方案 提供4套工程源码+技术支持

目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案我已有的FPGA视频拼接叠加融合方案本方案的Xilinx Kintex7系列FPGA上的ov5640版本本方案的Xilinx Kintex7系列FPGA上的HDMI版本 3、设计思路框架设计框图…...

开源模型应用落地-业务优化篇(三)

一、前言 假如您跟随我的脚步&#xff0c;学习到上一篇的内容&#xff0c;到这里&#xff0c;相信细心的您&#xff0c;已经发现了&#xff0c;在上一篇中遗留的问题。那就是IM服务过载的时候&#xff0c;如何进行水平扩容&#xff1f; 因为在每个IM服务中&#xff0c;我们用JV…...

基于SpringBoot+Vue实现的物流快递仓库管理系统

基于SpringBootVue实现的物流快递仓库管理系统 文章目录 基于SpringBootVue实现的物流快递仓库管理系统系统介绍技术选型成果展示账号地址及其他说明源码获取 系统介绍 系统演示 关注视频号【全栈小白】&#xff0c;观看演示视频 基于SpringBootVue实现的物流快递仓库管理系…...

编程笔记 html5cssjs 072 JavaScrip BigInt数据类型

编程笔记 html5&css&js 072 JavaScrip BigInt数据类型 一、BigInt 数据类型二、BigInt 的创建和使用三、BigInt 操作与方法三、示例小结 JavaScript BigInt 数据类型是一种内置的数据类型&#xff0c;用于表示大于 Number.MAX_SAFE_INTEGER&#xff08;即2^53 - 1&…...

matlab simulink 步进电机控制

1、内容简介 略 41-可以交流、咨询、答疑 2、内容说明 电动执行器定位控制在生产生活中具有广泛的应用&#xff0c;在使用搭载步进电机的电动执行器进行定位控制的时候&#xff0c;定位系统的定位精度和响应波形&#xff0c;会随着负载质量的变化而变化&#xff0c;这是由电…...

使用阿里云的IDaaS实现知行之桥EDI系统的单点登录

&#xff0c;在开始测试之前&#xff0c;需要确定用哪个信息作为“登陆用户的ID字段”。 这个字段用来在完成SSO登陆之后&#xff0c;用哪个信息将阿里云IDaaS的用户和知行之桥EDI系统的用户做对应。这里我们使用了 phonenumber 这个自定义属性。需要在阿里云做如下配置&#x…...

基于微服务的高考志愿智能辅助决策系统(附源码)

目录 一.引言 1、编写目的 2、系统功能概述 二.功能分析 三.微服务模块 1、微服务用户相关模块 &#xff08;1&#xff09;用户注册 &#xff08;2&#xff09;用户登录 &#xff08;3&#xff09;用户信息管理 &#xff08;4&#xff09;用户操作 2、微服务文件云存…...

LeetCode —— 137. 只出现一次的数字 II

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…...

pnpm、npm、yarn 包管理工具

1、npm 关键词&#xff1a;软件包管理器、命令行工具、一个社区和一个平台 npm&#xff08;Node Package Manager&#xff09;是一个用于Node.js环境的软件包管理器。它是一个命令行工具&#xff0c;用于安装、升级、删除和管理JavaScript软件包。npm最初是随同Node.js一起发布…...

微服务知识

1、概念 大型单体应用拆分成多个独立部署运行的微服务&#xff08;解决并发问题&#xff09;​​​​​​​ 2、特点 3、技术栈 4、微服务带来的问题 ​​​​​​​ 5、微服务的注册中心 服务注册与发现&#xff1a;微服务实例在启动时会向注册中心注册自己的信息&#xf…...

如何在微信搭建私域流量池?

A: ①给客户打标签 添加标签&#xff0c;多维度构建用户画像&#xff0c;精准发送消息。 ②群发信息 选择自定义时间&#xff0c;上传内容 (支持文字&#xff0c;图片) &#xff0c;一键群发 。 ③建立专属素材库 将常用的话术、图片与文件录入至素材库&#xff0c;员工可随…...

MySQL原理(三)锁定机制(1)综述

一、介绍&#xff1a; 1、锁的本质 业务场景中存在共享资源&#xff0c;多个进程或线程需要竞争获取并处理共享资源&#xff0c;为了保证公平、可靠、结果正确等业务逻辑&#xff0c;要把并发执行的问题变为串行&#xff0c;串行时引入第三方锁当成谁有权限来操作共享资源的判…...

Qt知识点总结

将枚举类型转换为字符串 这里使用的在网络编程中&#xff0c;获取socket状态并显示的时候&#xff0c;遇到的一个问题 #include <QMetaEnum>// 将枚举类型转换为字符串 QMetaEnum metaEnum QMetaEnum::fromType<QAbstractSocket::SocketState>(); const char *c…...

什么是系统工程(字幕)13

0 00:00:00,670 --> 00:00:01,582 如果不加图 1 00:00:01,582 --> 00:00:02,130 怎么加 2 00:00:02,130 --> 00:00:03,225 我们来看一下 3 00:00:03,225 --> 00:00:03,590 你看 4 00:00:03,980 --> 00:00:06,720 右键点这个&#xff0c;添加元素 5 00:00:0…...