两句话,ChatGPT帮我写一个打飞机的游戏
大家好,我是全村的希望
今天的主题是让 chatGPT 来帮我们写一个打飞机的游戏
记得我刚学 Python 的时候,看的那本很经典的入门书《Python 编程:从入门到实践》,里面就有小项目就是教你编写一个打飞机的游戏
我那时候是对着书一个一个敲的代码,花了大半天的时间
现在有了 ChatGPT,让他来帮我们写一个,一起来看下效果怎么样

代码如下:
import sys
import random
import pygame
from pygame.locals import QUIT, KEYDOWN, K_ESCAPE, K_SPACEpygame.init()FPS = 60 # 游戏帧率
fps_clock = pygame.time.Clock()WINDOW_SIZE = (400, 600) # 游戏窗口大小
WINDOW = pygame.display.set_mode(WINDOW_SIZE)
pygame.display.set_caption('Space Shooter')PLAYER_IMG = pygame.image.load('player_ship.png') # 玩家飞船图片
ENEMY_IMG = pygame.image.load('enemy_ship.png') # 敌人飞船图片
BULLET_IMG = pygame.image.load('bullet.png') # 子弹图片class Enemy:def __init__(self):self.x = random.randint(0, WINDOW_SIZE[0] - ENEMY_IMG.get_width())self.y = -ENEMY_IMG.get_height()self.speed = random.randint(2, 5)def update(self):self.y += self.speed # 更新敌人位置def draw(self):WINDOW.blit(ENEMY_IMG, (self.x, self.y)) # 绘制敌人class Bullet:def __init__(self, x, y):self.x = xself.y = yself.speed = 10def update(self):self.y -= self.speed # 更新子弹位置def draw(self):WINDOW.blit(BULLET_IMG, (self.x, self.y)) # 绘制子弹def main():player_pos = [WINDOW_SIZE[0] // 2, WINDOW_SIZE[1] - 60] # 玩家初始位置enemies = [] # 敌人列表bullets = [] # 子弹列表enemy_spawn_counter = 0 # 敌人生成计数器while True:WINDOW.fill((0, 0, 0))for event in pygame.event.get():if event.type == QUIT: # 退出事件pygame.quit()sys.exit()if event.type == KEYDOWN: # 按键事件if event.key == K_ESCAPE:pygame.quit()sys.exit()if event.key == K_SPACE: # 空格键发射子弹bullet_x = player_pos[0] + PLAYER_IMG.get_width() // 2 - BULLET_IMG.get_width() // 2bullet_y = player_pos[1] - BULLET_IMG.get_height()bullets.append(Bullet(bullet_x, bullet_y))keys = pygame.key.get_pressed()# 控制玩家移动if keys[pygame.K_LEFT]:player_pos[0] -= 5if keys[pygame.K_RIGHT]:player_pos[0] += 5if keys[pygame.K_UP]:player_pos[1] -= 5if keys[pygame.K_DOWN]:player_pos[1] += 5# 限制玩家飞船在窗口内移动因为 chatGPT 的回答有长度限制,超过限制部分,直接和他说继续,他就能继续上面的回答

player_pos[0] = max(min(player_pos[0], WINDOW_SIZE[0] - PLAYER_IMG.get_width()), 0)player_pos[1] = max(min(player_pos[1], WINDOW_SIZE[1] - PLAYER_IMG.get_height()), 0)# 添加敌人enemy_spawn_counter += 1if enemy_spawn_counter >= 60:enemy_spawn_counter = 0enemies.append(Enemy())# 更新敌人for enemy in enemies:enemy.update()# 更新子弹for bullet in bullets:bullet.update()# 检查碰撞bullets[:] = [bullet for bullet in bullets if bullet.y > 0] # 移除离开屏幕的子弹enemies[:] = [enemy for enemy in enemies if enemy.y < WINDOW_SIZE[1]] # 移除离开屏幕的敌人for bullet in bullets:for enemy in enemies:if (bullet.x >= enemy.xand bullet.x <= enemy.x + ENEMY_IMG.get_width()and bullet.y >= enemy.yand bullet.y <= enemy.y + ENEMY_IMG.get_height()):enemies.remove(enemy)bullets.remove(bullet)break# 绘制玩家飞船WINDOW.blit(PLAYER_IMG, player_pos)# 绘制敌人飞船for enemy in enemies:enemy.draw()# 绘制子弹for bullet in bullets:bullet.draw()pygame.display.update() # 更新显示fps_clock.tick(FPS) # 控制游戏帧率这段代码是一个简单的打飞机游戏,添加了敌人的生成、移动和碰撞检测。当子弹与敌人碰撞时,敌人和子弹都会消失
两句话,整个代码已经生成了!!
可以看到代码注释还挺完整的,这里我故意对他做个了小小的测试,我故意没有放玩家飞船图片,子弹图片。然后将运行报错的提示发给chatGPT

哈哈😄 他还挺不好意思的,然后告诉我要自己去提供图片,放到项目中
我随便在网上找了三个图片放进去,然后运行,来看下效果
哈哈哈😂效果还不错,图片我是随便找的,所以看着有点大...
可以看到ChatGPT是一个很强大的工具,很多行业将被重塑,也会出现很多新的行业职业,这是我们普通人最大的机会,希望每个人都能抓住。
而且ChatGPT的发展速度非常之快,最后的短板已经补上了,ChatGPT已经可以联网了

你能想象这是过去一周发生的时候吗?!
我最近也一直在熟悉ChatGPT,还建了一个自己的圈子
抓住这次变革,让自己成为最早入局,最早驾驭ChatGPT那部分人


chatGPT 每个人都应该掌握的技能
ChatGPT插件系统正式开放,不用写代码,人人都是程序员
相关文章:
两句话,ChatGPT帮我写一个打飞机的游戏
大家好,我是全村的希望今天的主题是让 chatGPT 来帮我们写一个打飞机的游戏记得我刚学 Python 的时候,看的那本很经典的入门书《Python 编程:从入门到实践》,里面就有小项目就是教你编写一个打飞机的游戏我那时候是对着书一个一个…...
计算机图形学14:三维图形的投影变换
作者:非妃是公主 专栏:《计算机图形学》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、三维图形的投…...
【ChatGPT4】王老师零基础《NLP》(自然语言处理)第二课
我的已经在起、点开了书《王老师带我成为救世主》,那个更新及时 (1)---------------------------------------------------------------------------------------- 我: 1我/喜欢/吃/苹果,因为/它/们/很/好吃。 2 Th…...
设计模式之中介者模式在前端的应用
文章目录中介者模式在前端的应用场景1.实现组件之间的松耦合2. 实现异步请求的协同3. 实现事件驱动的编程模型4. 实现复杂交互的协调总结中介者模式在前端的应用场景 中介者模式是一种常见的设计模式,它可以将对象之间的通信集中处理,从而提高系统的可维…...
2023年还能入行程序员吗?工作3年以上的黑马老学员怎么说?
很多人觉得,毕业3年,不过是毕业第1年的重复,键盘Ctrl、C和V键磨损更严重了。妥妥属于光涨年龄,不涨经验;只涨体重,不涨工资…… 他们不理解,为什么同样的起跑线,有人发展神速&#…...
接收机的噪声来源与噪声分析
噪声分类 射频接收机中的噪声主要可以分为两类:内部噪声和外部噪声。 内部噪声 内部噪声主要来自于接收机内部的放大器、混频器、本振等元件所产生的噪声。根据不同的产生机制,内部噪声可以分为以下几类: a. 电感噪声:由于电感…...
Android FrameWork——SystemServer
Android系统在启动的时候有两个非常重要的进程,一个是Zygote,另一个就是system_server。SystemServer是系统用来启动service的入口,比如我们常用的AMS,WMS,PMS等等都是由它创建的。 system_server进程的启动 system_…...
婴儿推车ASTMF883测试
1.cpc认证是总称,cpc认证下边有很多的标准,常见的有ASTM F963(铅含量)、CPSIA(邻苯8P)、ASTM F833(婴儿车)等; 2.婴儿车ASTM认证是什么 2019年8月2日,美国消…...
射频接收机概述
接收机架构 射频接收机架构是指电子设备中用于接收无线电信号的部分。它通常由前置放大器、中频放大器、混频器、局部振荡器和带通滤波器等组成。以下是一个基本的射频接收机架构: 前置放大器:前置放大器的作用是放大接收天线接收到的微弱无线电信号&am…...
实验三Numpy知识点总结
熟悉和使用NumPy模块 import numpy as np一、完成下列数组操作与运算。 (1)创建2行4列的数组arr_a,数组中的元素为0至7,要求用arange()函数创建。 arr_anp.arange(8) arr_a.resize(2,4) print(arr_a)[[0 1 2 3][4 5 6 7]]&…...
Code Review时学到的技巧之isAssignableFrom
🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年4月1日 …...
IP协议以及相关技术
这里写目录标题前言正文IP基本认识IP的作用IP和MAC的关系IP地址的基础知识IP地址定义IP地址分类(IPv4)无分类IP地址CIDR子网掩码IPv6基础知识相关技术DNS域名解析ARPDHCPNATICMPIGMP总结参考连接前言 大家好,我是练习两年半的Java练习生,今天我们来讲一…...
SpringBoot 项目使用 Sa-Token 完成登录认证
一、设计思路 对于一些登录之后才能访问的接口(例如:查询我的账号资料),我们通常的做法是增加一层接口校验: 如果校验通过,则:正常返回数据。如果校验未通过,则:抛出异…...
javaScript 蓝桥杯----梅楼封的一天
目录一、介绍二、目标1.函数入参要求:2.出参要求:三、输出示例1.示例一2.示例二3.示例三4.示例四5.示例五四、待完善代码五、知识点1.正则表达式2.split方法3.test方法4.match方法5.matchAll方法6.slice方法7.replace() 方法8.repeat方法六、答案一、介绍…...
谷粒商城笔记+踩坑(18)——购物车
目录 一、环境搭建 1.1、购物车模块初始化 1.2、动静资源处理 1.3、页面跳转配置 二、数据模型分析 2.1、购物车需求 2.1.1、离线购物车和在线购物车需求、数据库选择redis 2.1.2、购物车数据结构 2.2、模型类抽取,Cart和CartItem 2.3、Redis依赖和配置、…...
进阶C语言:指针笔试题
在学习完进阶C指针之后,可以来做一些笔试题来进行提升、巩固,小编在这里给大家分享几道比较有意思的笔试题 目录 一、笔试题1: 二、笔试题2 三、笔试题3: 四、笔试题4: 五、笔试题5: 编辑 六、笔试题…...
基于SSM(jsp)的宿舍管理系统
带项目源码和数据库文件 MySQL 导入即可用 可作为毕设参考 框架:SSM 1.1功能需求 本系统的设计目的是为了让老师可以随时随地的关注学生的在校情情况,方便老师对学生在校情况的添加、修改、删除和查询,实时关注学生的安全问题。该系统能…...
Java Web应用开发——作业四
一.单项选择题(共3题,30.0分) 1 如何获取一个 Cookie[]( ) A、 request.getCookies() B、 request.getCookie() C、 response.getCookies() D、 response.getCookie() 正确答案: A 2 ( )隐…...
基于ASP的反垃圾邮件管理系统的设计与实现
随着Internet的迅速普及,电子邮件以其快捷、方便、低成本的特点逐渐成为人们进行信息交流的主要媒介之一,但是随之而来的垃圾邮件也越来越泛滥。垃圾邮件占用了有限的存储、计算和网络资源,耗费了用户大量的处理时间,影响和干扰了…...
2010年9月计算机二级JAVA笔试试题及答案
一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1&…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
