news 2026/3/1 15:20:38

使用 TRAE SOLO 一分钟写个简易版飞机大战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 TRAE SOLO 一分钟写个简易版飞机大战

大家好,我是V哥,最近找到一个好玩的工具 TRAE,官网是这样介绍的:TRAE 深度融合 AI 能力,是一名能够理解需求、调用工具并独立完成各类开发任务的“AI 开发工程师”,帮助你高效推进每一个项目。事不宜迟,马上开干,我们一起来使用 TRAE SOLO 1分钟写个简易版飞机大战玩玩。

首先我的需求是这样的:帮我写一个飞机大战

下面是 TRAE SOLO 自动生成的的全过程

我需要先检查当前目录结构,了解项目的基础情况,然后规划飞机大战游戏的实现步骤。 toolName: view_folder status: success /Users/vince/Trae/demo1 查看main.py的内容,了解现有代码情况,然后规划飞机大战游戏的实现。 toolName: view_files status: success filePath: /Users/vince/Trae/demo1/main.py 我将重写main.py文件,实现一个完整的飞机大战游戏,包含玩家飞机、敌机、子弹系统和碰撞检测等功能。 toolName: edit_file_search_replace status: success filePath: /Users/vince/Trae/demo1/main.py changes: undefined 现在我需要安装pygame库,然后运行游戏来测试是否正常工作。 toolName: run_command status: success command: pip install pygame undefined 使用python -m pip来安装pygame库,因为直接使用pip命令没有找到。 toolName: run_command status: success command: python -m pip install pygame undefined 使用python3 -m pip来安装pygame库,因为环境中可能只安装了python3。 toolName: run_command status: success command: python3 -m pip install pygame undefined pygame安装失败,因为缺少SDL依赖。我将修改代码,使用Python内置的turtle库来实现飞机大战游戏,这样不需要任何外部依赖。 toolName: edit_file_search_replace status: success filePath: /Users/vince/Trae/demo1/main.py changes: undefined 现在运行游戏,测试使用turtle库实现的飞机大战是否正常工作。 toolName: run_command status: success command: python3 main.py undefined turtle库在macOS上遇到了Tk依赖问题,我将重新编写一个基于文本界面的飞机大战游戏,使用Python标准库,无需任何外部依赖。 toolName: edit_file_search_replace status: success filePath: /Users/vince/Trae/demo1/main.py changes: undefined 修改代码,使用跨平台的非阻塞键盘输入方式,替换Windows特有的msvcrt库。 toolName: edit_file_search_replace status: success filePath: /Users/vince/Trae/demo1/main.py changes: undefined 运行游戏,测试跨平台的文本界面飞机大战是否正常工作。 toolName: run_command status: success command: python3 main.py undefined 飞机大战游戏已经成功编写完成!以下是游戏的主要功能和特点: ## 游戏功能 - **玩家控制**:使用A键向左移动,D键向右移动 - **武器系统**:空格键发射子弹 - **敌机系统**:自动生成敌机并向下移动 - **碰撞检测**: - 子弹击中敌机得分 - 敌机撞击玩家游戏结束 - **分数系统**:击中一架敌机得10分 - **游戏状态**:支持游戏结束、重新开始和退出功能 ## 游戏特点 - **跨平台**:支持Windows和macOS/Linux系统 - **无外部依赖**:仅使用Python标准库 - **文本界面**:使用字符绘制游戏元素,简洁直观 - **操作简单**:清晰的操作说明 - **代码结构清晰**:模块化设计,易于扩展 ## 运行方式 在终端中执行以下命令:

python3 main.py

## 操作说明 - **A键**:向左移动 - **D键**:向右移动 - **空格键**:发射子弹 - **R键**:游戏结束后重新开始 - **Q键**:退出游戏 游戏已经可以运行,你可以在终端中体验这个简单而有趣的飞机大战游戏!

完成以上动作后,在代码区生成的py代码如下:

importosimportsysimportrandomimporttimeimportselect# 游戏设置WIDTH=40HEIGHT=20PLAYER_CHAR="▲"ENEMY_CHAR="▼"BULLET_CHAR="|"EMPTY_CHAR=" "classPlaneGame:def__init__(self):self.player_x=WIDTH//2self.player_y=HEIGHT-2self.bullets=[]self.enemies=[]self.score=0self.game_over=Falseself.last_enemy_time=time.time()self.enemy_spawn_delay=1.0# 秒# 设置标准输入为非阻塞ifos.name=='nt':importmsvcrtelse:# Unix系统设置importttyimporttermios self.old_settings=termios.tcgetattr(sys.stdin)tty.setcbreak(sys.stdin.fileno())defclear_screen(self):# 跨平台清屏os.system('cls'ifos.name=='nt'else'clear')defdraw(self):self.clear_screen()# 创建游戏网格grid=[[EMPTY_CHARfor_inrange(WIDTH)]for_inrange(HEIGHT)]# 绘制玩家grid[self.player_y][self.player_x]=PLAYER_CHAR# 绘制子弹forbulletinself.bullets:if0<=bullet[1]<HEIGHTand0<=bullet[0]<WIDTH:grid[bullet[1]][bullet[0]]=BULLET_CHAR# 绘制敌机forenemyinself.enemies:if0<=enemy[1]<HEIGHTand0<=enemy[0]<WIDTH:grid[enemy[1]][enemy[0]]=ENEMY_CHAR# 绘制边界print("="*(WIDTH+2))forrowingrid:print("|"+"".join(row)+"|")print("="*(WIDTH+2))# 绘制分数print(f"分数:{self.score}")ifself.game_over:print("游戏结束!按R键重新开始,按Q键退出")print("操作说明:A键向左,D键向右,空格键发射")else:print("操作说明:A键向左,D键向右,空格键发射,Q键退出")defhandle_input(self):# 跨平台非阻塞键盘输入try:ifos.name=='nt':importmsvcrtifmsvcrt.kbhit():key=msvcrt.getch().decode('utf-8').lower()self.process_key(key)else:# Unix系统使用selectrlist,_,_=select.select([sys.stdin],[],[],0.01)ifrlist:key=sys.stdin.read(1).lower()self.process_key(key)exceptExceptionase:passdefprocess_key(self,key):ifkey=='a'andself.player_x>0:self.player_x-=1elifkey=='d'andself.player_x<WIDTH-1:self.player_x+=1elifkey==' ':# 发射子弹self.bullets.append([self.player_x,self.player_y-1])elifkey=='r'andself.game_over:self.reset_game()elifkey=='q':self.exit_game()defexit_game(self):# 恢复终端设置ifos.name!='nt':importtermios termios.tcsetattr(sys.stdin,termios.TCSADRAIN,self.old_settings)sys.exit()defupdate(self):ifnotself.game_over:# 更新子弹new_bullets=[]forbulletinself.bullets:bullet[1]-=1# 子弹向上移动ifbullet[1]>0:# 子弹未飞出屏幕new_bullets.append(bullet)self.bullets=new_bullets# 生成敌机current_time=time.time()ifcurrent_time-self.last_enemy_time>self.enemy_spawn_delay:enemy_x=random.randint(0,WIDTH-1)self.enemies.append([enemy_x,0])self.last_enemy_time=current_time# 更新敌机new_enemies=[]forenemyinself.enemies:enemy[1]+=1# 敌机向下移动ifenemy[1]<HEIGHT:# 敌机未飞出屏幕new_enemies.append(enemy)self.enemies=new_enemies# 检测碰撞:子弹击中敌机bullets_to_remove=[]enemies_to_remove=[]fori,bulletinenumerate(self.bullets):forj,enemyinenumerate(self.enemies):ifbullet[0]==enemy[0]andbullet[1]==enemy[1]:bullets_to_remove.append(i)enemies_to_remove.append(j)self.score+=10# 删除击中的子弹和敌机(从后往前删除,避免索引问题)foriinsorted(bullets_to_remove,reverse=True):delself.bullets[i]forjinsorted(enemies_to_remove,reverse=True):delself.enemies[j]# 检测碰撞:敌机撞击玩家forenemyinself.enemies:ifenemy[0]==self.player_xandenemy[1]==self.player_y:self.game_over=Truedefreset_game(self):self.player_x=WIDTH//2self.player_y=HEIGHT-2self.bullets=[]self.enemies=[]self.score=0self.game_over=Falseself.last_enemy_time=time.time()defrun(self):whileTrue:self.handle_input()self.update()self.draw()time.sleep(0.1)# 控制游戏速度if__name__=="__main__":game=PlaneGame()game.run()

下面我来测试运行一下,单击代码区右上角的运行按钮:

在终端运行的效果是这样的:

啥也不说,V哥先爽一把。

小结一下

TRAE 覆盖从编码、调试到测试、重构、部署等多类开发任务。提供智能体编程工具 CUE,支持代码补全、多行修改、智能导入和智能重命名等功能,适配多种日常开发场景,帮助你减少重复操作,专注核心创新。TRAE 不仅将 AI 集成进 IDE,也让 Al 使用更多开发工具。TRAE 目前拥有双重开发模式:IDE 模式保留原有流程,控制感更强;SOLO 模式让 AI 主导任务,自动推进开发任务。你可根据任务需求自由切换,让高效与灵活并存。兄弟们,不用犹豫,快去试试吧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/21 20:32:18

Sprint Blog 2 (Dec 14-Dec 15) from“Pulse news stream”

目录 I. Overview of the second Day of Sprint Progress 1. Sprint Phase Background 2. Task Completion Status in Two Days 3. Unfinished Tasks and Reasons (To Be Prioritized Next Sprint) II. Core Deliverables III.Problems Encountered and Solutions Cod…

作者头像 李华
网站建设 2026/2/24 16:26:25

基于Faster R-CNN的ADR罐车智能检测与识别系统研究_1

1. 基于Faster R-CNN的ADR罐车智能检测与识别系统研究 随着工业自动化和智能交通系统的快速发展&#xff0c;目标检测技术在各个领域的应用日益广泛。罐车作为物流运输和工业生产中的重要设备&#xff0c;其安全检测与管理对于保障公共安全、提高运输效率具有重要意义。传统的…

作者头像 李华
网站建设 2026/2/26 23:21:47

微服务中如何保证数据一致性?

当 A、B、C、D 四个微服务都涉及更新或插入&#xff08;写操作&#xff09;时&#xff0c;由于每个服务有自己的独立数据库&#xff0c;传统的单机事务无法覆盖多个数据库&#xff0c;因此必须采用分布式事务方案来保证数据一致性。 下面我按常见的分布式事务模式来分析&#x…

作者头像 李华
网站建设 2026/2/27 2:50:13

2025年央国企业财一体平台选型指南

在金税四期全面推行、数电发票广泛普及以及智能AI技术迅猛发展的当下&#xff0c;央国企正经历着业财管理模式的深刻变革。传统以纸质票据为主导的业财流程&#xff0c;不仅效率低下&#xff0c;而且风险隐患较大&#xff0c;同时数据孤岛现象极为突出。央国企迫切需要搭建“业…

作者头像 李华
网站建设 2026/2/1 11:08:25

讲真的,上班一定要学会立人设,太重要了!

“讲真的&#xff0c;上班一定要学会立人设&#xff0c;太重要了&#xff01;”这是很多打工人摸爬滚打后悟出来的实在道理。 不过&#xff0c;设立人设也不是大家装样子&#xff0c;而是要把自己优秀的一面展现出来&#xff0c;保持真诚、真实&#xff0c;这样才能在职场中走…

作者头像 李华