利用亚马逊AI代码开发助手Amazon Q开发游戏我的世界(下篇)

2024-08-29 12:04

本文主要是介绍利用亚马逊AI代码开发助手Amazon Q开发游戏我的世界(下篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

快来用人工智能帮咱们程序员写代码!今天小李哥就来介绍利用亚马逊云科技推出的国际前沿人工智能代码开发助手Amazon Q Developer开发游戏 - 我的世界。目前该代码助手在Hugging Face代码生成权威测试集SWE-bench中排名第一,可以根据我们的需求生成整个代码项目,并可以帮助我们解释代码、提供架构设计方案、编写代码测试案例、提供漏洞扫描和修复建议、基于我们GitHub代码库中的历史代码生成新的代码段。

接下来我将带大家沉浸式实操这个AI代码生成助手,带大家手把手体验该工具的每个特色功能。在该系列上篇中,我们介绍开发助手在IDE中的安装步骤和代码解释功能测试,在本篇我们将进行代码实操,用AI开发助手开发沙盘模拟游戏-我的世界的新功能。该开发助手目前在IDE插件中即可下载,大家可以自己尝试本博客中的游戏开发步骤,并应用到日常工作中提升代码开发效率。本游戏启动后的截图如下。

方案所需基础知识

什么是Amazon Q Developer?

Amazon Q Developer 是一款由亚马逊云科技推出的AI驱动的软件开发助手,用于帮助开发者重新构想整个软件开发生命周期的体验,使得在亚马逊云科技或其他平台上构建、保护、管理和优化代码的过程变得更加快捷。其中比较亮点的功能是Amazon Q Developer Agent,它一个特性开发代理,该代理可以在集成到VSCode等开发环境(IDE)中,通过该工具开发者只需要通过自然语言输入,就可以自动生成定制化代码项目、修复代码bug和漏洞以及单元测试。当开发者输入特定代码需求后,软件开发代理会分析开发者的代码库并制定实现代码计划。开发者可以接受该计划,或者要求代理对其进行迭代优化之前的项目版本。在计划被确认接受后,代理会自动生成基于开发者需求的代码更改。

Amazon Q Developer 通过生成式人工智能(AI)为所有开发者提供目前性能最佳的代码生成工具,目前Amazon Q Developer在SWE-bench排行榜上名列第一。SWE-bench是一个测试系统自动解决GitHub代码问题的开发工具评估数据集。接下来小李哥就会介绍如何开始使用软件开发代理、概述代理的工作原理。

本实践包括的内容

1.  利用Amazon Q Developer为游戏添加新功能。
2. 利用Amazon Q Developer为游戏代码debug排查故障并利用AI建议修改。

本实践包括的内容

在开始本项目实践之前,我们默认大家已经预装了Python 3.10.11以上版本,pyglet1.5.27版本,以及亚马逊云科技Python Boto3 SDK。

并且项目中包括了在该系列上篇中分享的”我的世界“源代码

1. 首先我们启动我们的游戏。

python main.py

2. 启动游戏后我们就会进入该界面。

大家可以根据如下的操作控制人物行动:

操作方式:

按下 wasd 控制角色前后左右移动
按下 空格键 控制角色跳跃
按下 左键 破坏方块
按下 右键 放置方块
按下数字 123 切换即将放置的方块
按下 tab 即可切换飞行模式
按下 esc 释放鼠标后,点击右上角的 X 即可关闭游戏

3. 确定利用Amazon Q Developer修改代码的需求,当我们走到地图边缘后,我们会掉出地图不断下坠,要过很久才能重新回到出生点。我们希望通过代码优化修改该功能。

4. 需求分析:为了实现掉出世界后传送的功能,我们需要不停地检测角色当前的 y 坐标 。 当 y 坐标 低于某一特定值(例如-10)后,程序应将角色传送到出生点 (0,0,0)。 下面我们让 Amazon Q 来帮助我们实现这个功能。 在 Amazon Q Chat 面板中提问以下问题:

How can I change the _update() function in main.py so that if the player's y position is below -10, they are returned to the starting point (0,0,0)?

Amazon Q Developer给出了以下回复,帮助我们生成了新的一段更新玩家位置的代码。

5. 我们将以下代码复制到main.py的646-649行

   # Check if the character's y-coordinate is below -10if y < -10:# Teleport the player back to the starting point (0, 0, 0)x, y, z = 0, 0, 0

6. 如果我们想进一步优化,当玩家从地图边缘跳下后,传送到跳下去的地图边界。我们可以提问以下问题:

How can I modify the _update() function in main.py so that if the player's y position is below -10, they are teleported to the closest surface block on the map? Write additional functions to calculate distances, if necessary.

7. Amazon Q为我们提供了如下回复,返回了建议代码和解释

8. 我们再把如下代码粘贴到main.py文件的646-654行

   # Check if the character's y-coordinate is below -10if y < -10:# Find the closest surface blockclosest_block = self.find_closest_surface_block((x, y, z))if closest_block:# Teleport the player to the closest surface blockx, y, z = closest_block

9. 当我们再次从地图边界跳下后,我们发现我们没有按照代码定义的一样回到地图边缘,而是卡在了水泥方块中。下面我们需要利用Amazon Q Developer的功能为代码debug。

10. 我们按照如下提问,让AI助手帮我们debug重新修改代码,让我们重生时跳跃到水泥方块的最顶端。

When the player was teleported, they were stuck inside a block. Can you fix this bug, so the player is always placed on TOP of the closest block? Write new code for _update() in main.py to fix this.

得到了如下的代码修改建议

11. 我们按照修改建议将以下代码复制到main.py的646-654行

   # Check if the character's y-coordinate is below -10if y < -10:# Find the closest surface blockclosest_block = self.find_closest_surface_block((x, y, z))if closest_block:# Teleport the player to the closest surface blocky += 2  # Place the player 2 units above the blockx, y, z = closest_block

12. 再次进入游戏后,我们就可以按照我们的定义的需求重生到水泥块的顶部了

以上就是在亚马逊云科技上沉浸式体验AI代码开发/生成工具-Amazon Q Developer的全部内容,大家在本系列上篇的游戏源代码中都可以自己尝试利用Amazon Q Developer的AI能力为游戏添加新的功能,大家快动手打造自己的”我的世界“吧!

欢迎大家关注小李哥的亚马逊云科技AI服务深入调研系列,不要错过我们未来更多关于AI与云计算结合的技术分享,关注小李哥未来获取更多国际前沿的AWS云开发/云架构方案。 

这篇关于利用亚马逊AI代码开发助手Amazon Q开发游戏我的世界(下篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

SQL Server身份验证模式步骤和示例代码

《SQLServer身份验证模式步骤和示例代码》SQLServer是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQLServer身份验证,本文将详细介绍身份... 目录身份验证方式的概念更改身份验证方式的步骤方法一:使用SQL Server Management S

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

利用Python实现可回滚方案的示例代码

《利用Python实现可回滚方案的示例代码》很多项目翻车不是因为不会做,而是走错了方向却没法回头,技术选型失败的风险我们都清楚,但真正能提前规划“回滚方案”的人不多,本文从实际项目出发,教你如何用Py... 目录描述题解答案(核心思路)题解代码分析第一步:抽象缓存接口第二步:实现两个版本第三步:根据 Fea

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.