文心一言编写小球反弹程序并优化

使用文心一言尝试编写一个小游戏,先完成

1.python中用pygame模块设计出一个显示区域720x540的屏幕,并绘制一个小球,可以完成小球在显示区域内自动随机直线移动,碰到显示区域的便捷并反弹

import pygame
import random
import sys# 初始化 Pygame
pygame.init()# 设置屏幕尺寸
screen_width, screen_height = 720, 540
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("小球反弹示例")# 定义颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)# 定义小球属性
ball_radius = 20
ball_color = WHITE
ball_x, ball_y = screen_width // 2, screen_height // 2  # 初始位置
ball_dx, ball_dy = random.choice([-5, 5]), random.choice([-5, 5])  # 初始速度# 游戏时钟
clock = pygame.time.Clock()# 游戏循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 更新小球位置ball_x += ball_dxball_y += ball_dy# 检查并处理小球与边界的碰撞if ball_x - ball_radius < 0 or ball_x + ball_radius > screen_width:ball_dx = -ball_dx  # 水平方向反弹if ball_y - ball_radius < 0 or ball_y + ball_radius > screen_height:ball_dy = -ball_dy  # 垂直方向反弹# 绘制屏幕screen.fill(BLACK)  # 用黑色填充屏幕pygame.draw.circle(screen, ball_color, (ball_x, ball_y), ball_radius)  # 绘制小球# 更新显示pygame.display.flip()# 控制帧率clock.tick(60)# 退出 Pygame
pygame.quit()
sys.exit()

2.python中用pygame模块设计出一个显示区域720x540的屏幕,并绘制一个小球,可以完成小球在显示区域内自动随机直线移动,碰到显示区域的便捷并反弹,反弹后小球的颜色变化一些

import pygame
import random
import sys# 初始化 Pygame
pygame.init()# 设置屏幕尺寸
screen_width, screen_height = 720, 540
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("小球反弹与变色示例")# 定义颜色
BLACK = (0, 0, 0)
COLORS = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 165, 0), (138, 43, 226)]  # 多种颜色供选择# 定义小球属性
ball_radius = 20
ball_color = COLORS[0]  # 初始颜色
ball_x, ball_y = random.randint(ball_radius, screen_width - ball_radius), random.randint(ball_radius, screen_height - ball_radius)  # 随机初始位置
ball_dx, ball_dy = random.choice([-5, 5]), random.choice([-5, 5])  # 随机初始速度# 游戏时钟
clock = pygame.time.Clock()# 游戏循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 更新小球位置ball_x += ball_dxball_y += ball_dy# 检查并处理小球与边界的碰撞if ball_x - ball_radius < 0 or ball_x + ball_radius > screen_width:ball_dx = -ball_dx  # 水平方向反弹ball_color = random.choice(COLORS)  # 随机改变颜色if ball_y - ball_radius < 0 or ball_y + ball_radius > screen_height:ball_dy = -ball_dy  # 垂直方向反弹ball_color = random.choice(COLORS)  # 随机改变颜色# 绘制屏幕screen.fill(BLACK)  # 用黑色填充屏幕pygame.draw.circle(screen, ball_color, (ball_x, ball_y), ball_radius)  # 绘制小球# 更新显示pygame.display.flip()# 控制帧率clock.tick(60)# 退出 Pygame
pygame.quit()
sys.exit()

3.在运行过程中按下键盘的向上和向下箭头分别增加小球的运动速度和减小小球的运动速度

import pygame
import random
import sys# 初始化 Pygame
pygame.init()# 设置屏幕尺寸
screen_width, screen_height = 720, 540
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("小球反弹与变色及调速示例")# 定义颜色
BLACK = (0, 0, 0)
COLORS = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 165, 0), (138, 43, 226)]  # 多种颜色供选择# 定义小球属性
ball_radius = 20
ball_color = COLORS[0]  # 初始颜色
ball_x, ball_y = random.randint(ball_radius, screen_width - ball_radius), random.randint(ball_radius, screen_height - ball_radius)  # 随机初始位置
ball_speed = 5  # 初始速度大小(绝对值),方向由 ball_dx 和 ball_dy 决定
ball_dx, ball_dy = random.choice([-ball_speed, ball_speed]), random.choice([-ball_speed, ball_speed])  # 随机初始速度方向# 游戏时钟
clock = pygame.time.Clock()# 游戏循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 获取按键状态keys = pygame.key.get_pressed()if keys[pygame.K_UP] and ball_speed < 20:  # 向上箭头增加速度,但不超过某个最大值ball_speed += 1ball_dx = random.choice([-ball_speed, ball_speed])  # 重新随机选择方向以保持一致性(可选)ball_dy = random.choice([-ball_speed, ball_speed])  # 同上elif keys[pygame.K_DOWN] and ball_speed > 1:  # 向下箭头减小速度,但不小于某个最小值ball_speed -= 1ball_dx = random.choice([-ball_speed, ball_speed])  # 重新随机选择方向以保持一致性(可选)ball_dy = random.choice([-ball_speed, ball_speed])  # 同上# 更新小球位置ball_x += ball_dxball_y += ball_dy# 检查并处理小球与边界的碰撞if ball_x - ball_radius < 0 or ball_x + ball_radius > screen_width:ball_dx = -ball_dx  # 水平方向反弹ball_color = random.choice(COLORS)  # 随机改变颜色if ball_y - ball_radius < 0 or ball_y + ball_radius > screen_height:ball_dy = -ball_dy  # 垂直方向反弹ball_color = random.choice(COLORS)  # 随机改变颜色# 绘制屏幕screen.fill(BLACK)  # 用黑色填充屏幕pygame.draw.circle(screen, ball_color, (ball_x, ball_y), ball_radius)  # 绘制小球# 更新显示pygame.display.flip()# 控制帧率clock.tick(60)# 退出 Pygame
pygame.quit()
sys.exit()

4.程序开始时界面增加一个game start按钮,鼠标单击松开后小球开始运动

import pygame
import random
import sys
import math# 初始化 Pygame
pygame.init()# 设置屏幕尺寸
screen_width, screen_height = 720, 540
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("小球反弹与变色及启动按钮示例")# 定义颜色
BLACK = (0, 0, 0)
GRAY = (169, 169, 169)  # 按钮灰色
WHITE = (255, 255, 255)  # 按钮文字白色
COLORS = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 165, 0), (138, 43, 226)]  # 多种颜色供选择# 定义按钮属性
button_width, button_height = 150, 50
button_x, button_y = (screen_width - button_width) // 2, (screen_height - button_height) // 2 + 100  # 居中位置,稍微偏上
button_rect = pygame.Rect(button_x, button_y, button_width, button_height)
button_font_size = 30
button_font = pygame.font.Font(None, button_font_size)
button_text = button_font.render("Game Start", True, WHITE)
button_text_rect = button_text.get_rect(center=button_rect.center)
show_button = True  # 控制按钮是否显示的标志# 定义小球属性
ball_radius = 20
ball_color = COLORS[0]  # 初始颜色
ball_x, ball_y = random.randint(ball_radius, screen_width - ball_radius), random.randint(ball_radius,screen_height - ball_radius)  # 随机初始位置
ball_dx, ball_dy = 0, 0  # 初始速度
game_started = False  # 游戏是否开始的标志# 游戏时钟
clock = pygame.time.Clock()# 游戏循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.MOUSEBUTTONDOWN:if show_button and button_rect.collidepoint(event.pos):  # 检查鼠标是否点击在按钮上且按钮是否显示game_started = True  # 游戏开始show_button = False  # 隐藏按钮# 如果游戏已经开始,则更新小球位置和检查碰撞if game_started:if not (ball_dx or ball_dy):  # 如果速度为0,则随机设置速度方向和大小ball_speed = random.randint(3, 10)  # 随机速度大小angle = random.uniform(0, 2 * math.pi)  # 随机角度ball_dx = int(ball_speed * math.cos(angle))ball_dy = int(ball_speed * math.sin(angle))ball_x += ball_dxball_y += ball_dy# 检查并处理小球与边界的碰撞if ball_x - ball_radius < 0 or ball_x + ball_radius > screen_width:ball_dx = -ball_dx  # 水平方向反弹ball_color = random.choice(COLORS)  # 随机改变颜色if ball_y - ball_radius < 0 or ball_y + ball_radius > screen_height:ball_dy = -ball_dy  # 垂直方向反弹ball_color = random.choice(COLORS)  # 随机改变颜色# 绘制屏幕screen.fill(BLACK)  # 用黑色填充屏幕# 如果按钮应该显示,则绘制按钮if show_button:pygame.draw.rect(screen, GRAY, button_rect)screen.blit(button_text, button_text_rect)# 如果游戏已经开始,则绘制小球if game_started:pygame.draw.circle(screen, ball_color, (ball_x, ball_y), ball_radius)  # 绘制小球# 更新显示pygame.display.flip()# 控制帧率clock.tick(60)# 退出 Pygame
pygame.quit()
sys.exit()

5.在界面的右上角增加一个game over 结束按钮,为半透明,单击松开后结束此游戏

import pygame
import random
import sys
import math# 初始化 Pygame
pygame.init()# 设置屏幕尺寸
screen_width, screen_height = 720, 540
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("小球反弹与Game Over按钮")# 定义颜色
BLACK = (0, 0, 0)
GRAY = (169, 169, 169)  # 按钮灰色
WHITE = (255, 255, 255)  # 按钮文字白色
SEMI_TRANSPARENT_GRAY = (169, 169, 169, 128)  # 半透明灰色
COLORS = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 165, 0), (138, 43, 226)]  # 多种颜色供选择# 定义按钮属性
button_width, button_height = 150, 50
start_button_x, start_button_y = (screen_width - button_width) // 2, (screen_height - button_height) // 2 + 100  # 居中位置,稍微偏上
start_button_rect = pygame.Rect(start_button_x, start_button_y, button_width, button_height)
game_over_button_x, game_over_button_y = screen_width - button_width - 10, 10  # 右上角位置
game_over_button_rect = pygame.Rect(game_over_button_x, game_over_button_y, button_width, button_height)
button_font_size = 30
button_font = pygame.font.Font(None, button_font_size)
start_button_text = button_font.render("Game Start", True, WHITE)
start_button_text_rect = start_button_text.get_rect(center=start_button_rect.center)
game_over_button_text = button_font.render("Game Over", True, WHITE)
game_over_button_text_rect = game_over_button_text.get_rect(center=game_over_button_rect.center)
show_start_button = True  # 控制开始按钮是否显示的标志
game_started = False  # 游戏是否开始的标志# 定义小球属性
ball_radius = 20
ball_color = COLORS[0]  # 初始颜色
ball_x, ball_y = random.randint(ball_radius, screen_width - ball_radius), random.randint(ball_radius,screen_height - ball_radius)  # 随机初始位置
ball_dx, ball_dy = 0, 0  # 初始速度# 游戏时钟
clock = pygame.time.Clock()# 游戏循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.MOUSEBUTTONDOWN:if show_start_button and start_button_rect.collidepoint(event.pos):  # 检查鼠标是否点击在开始按钮上且按钮是否显示game_started = True  # 游戏开始show_start_button = False  # 隐藏开始按钮elif game_started and game_over_button_rect.collidepoint(event.pos):  # 检查鼠标是否点击在游戏结束按钮上且游戏已开始running = False  # 结束游戏# 如果游戏已经开始,则更新小球位置和检查碰撞if game_started:if not (ball_dx or ball_dy):  # 如果速度为0,则随机设置速度方向和大小ball_speed = random.randint(3, 10)  # 随机速度大小angle = random.uniform(0, 2 * math.pi)  # 随机角度ball_dx = int(ball_speed * math.cos(angle))ball_dy = int(ball_speed * math.sin(angle))ball_x += ball_dxball_y += ball_dy# 检查并处理小球与边界的碰撞if ball_x - ball_radius < 0 or ball_x + ball_radius > screen_width:ball_dx = -ball_dx  # 水平方向反弹ball_color = random.choice(COLORS)  # 随机改变颜色if ball_y - ball_radius < 0 or ball_y + ball_radius > screen_height:ball_dy = -ball_dy  # 垂直方向反弹ball_color = random.choice(COLORS)  # 随机改变颜色# 绘制屏幕screen.fill(BLACK)  # 用黑色填充屏幕# 如果开始按钮应该显示,则绘制开始按钮if show_start_button:pygame.draw.rect(screen, GRAY, start_button_rect)screen.blit(start_button_text, start_button_text_rect)# 绘制游戏结束按钮(始终显示,但只有在游戏开始后有效)pygame.draw.rect(screen, SEMI_TRANSPARENT_GRAY, game_over_button_rect)screen.blit(game_over_button_text, game_over_button_text_rect)# 如果游戏已经开始,则绘制小球if game_started:pygame.draw.circle(screen, ball_color, (ball_x, ball_y), ball_radius)  # 绘制小球# 更新显示pygame.display.flip()# 控制帧率clock.tick(60)# 退出 Pygame
pygame.quit()
sys.exit()

以上程序基本都是文心一言自动生成,在程序中修改math.pi圆周率,基本成只有这个需要修改的

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

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

相关文章

华为开源自研AI框架昇思MindSpore应用案例:人体关键点检测模型Lite-HRNet

如果你对MindSpore感兴趣&#xff0c;可以关注昇思MindSpore社区 一、环境准备 1.进入ModelArts官网 云平台帮助用户快速创建和部署模型&#xff0c;管理全周期AI工作流&#xff0c;选择下面的云平台以开始使用昇思MindSpore&#xff0c;获取安装命令&#xff0c;安装MindSpo…

gitlab和jenkins连接

一&#xff1a;jenkins 配置 安装gitlab插件 生成密钥 id_rsa 要上传到jenkins&#xff0c;id_rsa.pub要上传到gitlab cat /root/.ssh/id_rsa 复制查看的内容 可以看到已经成功创建出来了对于gitlab的认证凭据 二&#xff1a;配置gitlab cat /root/.ssh/id_rsa.pub 复制查…

SpringBoot实现WebSocket

参考链接&#xff1a;https://www.kancloud.cn/king_om/mic_03/2783864 一、环境搭建 1.创建SpringBoot项目&#xff0c;引入相关依赖 <dependencies><!-- Spring Boot核心启动器&#xff0c;引入常用依赖基础 --><dependency><groupId>org.springf…

现代密码学|公钥密码体制 | RSA加密算法及其数学基础

文章目录 公钥密码RSA数学基础欧拉函数欧拉定理模指数运算 RSA加密算法对rsa的攻击 公钥密码 现代密码学&#xff5c;公钥密码体制概述 加密 A用B的公钥加密 B用B的私钥解密 认证 A使用A的私钥加密 B使用A的公钥解密 加密认证 A用A的私钥加密&#xff0c;再用B的公钥加密 B用…

VuePress v2 快速搭建属于自己的个人博客网站

目录 为什么用VuePress&#xff1f; 一、前期准备 Node.js 使用主题快速开发 二、VuePress安装 三、个性化定制 修改配置信息 删除不需要的信息 博客上传 四、部署 使用github快速部署 初始化仓库 本地配置 配置github的ssh密钥 部署 为什么用VuePress&#xff…

【阅读记录-章节1】Build a Large Language Model (From Scratch)

目录 1. Understanding large language models1.1 What is an LLM?补充介绍人工智能、机器学习和深度学习的关系机器学习 vs 深度学习传统机器学习 vs 深度学习&#xff08;以垃圾邮件分类为例&#xff09; 1.2 Applications of LLMs1.3 Stages of building and using LLMs1.4…

平台整合是网络安全成功的关键

如今&#xff0c;组织面临着日益复杂、动态的网络威胁环境&#xff0c;随着恶意行为者采用越来越阴险的技术来破坏环境&#xff0c;攻击的数量和有效性也在不断上升。我们最近的 Cyber​​Ark 身份威胁形势报告&#xff08;2024 年 5 月&#xff09;发现&#xff0c;去年 99% 的…

PlantUML——时序图

PlantUML时序图 背景 时序图&#xff08;Sequence Diagram&#xff09;&#xff0c;又名序列图、循序图&#xff0c;是一种UML交互图&#xff0c;用于描述对象之间发送消息的时间顺序&#xff0c;显示多个对象之间的动态协作。时序图的使用场景非常广泛&#xff0c;几乎各行各…

【MYSQL】分库分表

一、什么是分库分表 分库分表就是指在一个数据库在存储数据过大&#xff0c;或者一个表存储数据过多的情况下&#xff0c;为了提高数据存储的可持续性&#xff0c;查询数据的性能而进行的将单一库或者表分成多个库&#xff0c;表使用。 二、为什么要分库分表 分库分表其实是两…

Spring纯注解开发

在我的另一篇文章中&#xff08;初识Spring-CSDN博客&#xff09;&#xff0c;讲述了Bean&#xff0c;以及通过xml方式定义Bean。接下来将讲解通过注解的方法管理Bean。 我们在创建具体的类的时候&#xff0c;可以直接在类的上面标明“注解”&#xff0c;以此来声明类。 1. 常…

git push时报错! [rejected] master -> master (fetch first)error: ...

错误描述&#xff1a;在我向远程仓库push代码时&#xff0c;即执行 git push origin master命令时发生的错误。直接上错误截图。 错误截图 错误原因&#xff1a; 在网上查了许多资料&#xff0c;是因为Git仓库中已经有一部分代码&#xff0c;它不允许你直接把你的代码覆盖上去…

java常用工具包介绍

Java 作为一种广泛使用的编程语言&#xff0c;提供了丰富的标准库和工具包来帮助开发者高效地进行开发。这些工具包涵盖了从基础的数据类型操作到高级的网络编程、数据库连接等各个方面。下面是一些 Java 中常用的工具包&#xff08;Package&#xff09;及其简要介绍&#xff1…

latex中,两个相邻的表格,怎样留一定的空白

目录 问题描述 问题解决 问题描述 在使用latex写论文时&#xff0c;经常表格需要置顶写&#xff0c;则会出现两个表格连在一起的情况。下一个表名容易与上面的横线相连&#xff0c;如何通过明令&#xff0c;留出一定的空白。 问题解决 在第二个表格的 \centering命令之后…

react中如何在一张图片上加一个灰色蒙层,并添加事件?

最终效果&#xff1a; 实现原理&#xff1a; 移动到图片上的时候&#xff0c;给img加一个伪类 &#xff01;&#xff01;此时就要地方要注意了&#xff0c;因为img标签是闭合的标签&#xff0c;无法直接添加 伪类&#xff08;::after&#xff09;&#xff0c;所以 我是在img外…

C++builder中的人工智能(27):如何将 GPT-3 API 集成到 C++ 中

人工智能软件和硬件技术正在迅速发展。我们每天都能看到新的进步。其中一个巨大的飞跃是我们拥有更多基于自然语言处理&#xff08;NLP&#xff09;和深度学习&#xff08;DL&#xff09;机制的逻辑性更强的AI聊天应用。有许多AI工具可以用来开发由C、C、Delphi、Python等编程语…

【项目开发】URL中井号(#)的技术细节

未经许可,不得转载。 文章目录 前言一、# 的基本含义二、# 不参与 HTTP 请求三、# 后的字符处理机制四、# 的变化不会触发网页重新加载五、# 的变化会记录在浏览器历史中六、通过 window.location.hash 操作七、onhashchange 事件八、Google 对 # 的处理机制前言 2023 年 9 月…

AUTOSAR_EXP_ARAComAPI的7章笔记(5)

☞返回总目录 相关总结&#xff1a;典型的 SOME/IP 多绑定用例总结 7.3.3 典型的SOME/IP多绑定用例 在前面的章节中&#xff0c;我们简要提到&#xff0c;在一个典型的SOME/IP 网络协议的部署场景中&#xff0c;AP SWC不太可能自己打开套接字连接来与远程服务通信。为什么不…

Jenkins下载安装、构建部署到linux远程启动运行

Jenkins详细教程 Winodws下载安装Jenkins一、Jenkins配置Plugins插件管理1、汉化插件2、Maven插件3、重启Jenkins&#xff1a;Restart Safely插件4、文件传输&#xff1a;Publish Over SSH5、gitee插件6、清理插件&#xff1a;workspace cleanup system系统配置1、Gitee配置2、…

Flutter:Dio下载文件到本地

import dart:io; import package:dio/dio.dart;main(){// 创建dio对象final dio Dio();// 下载地址var url https://*******.org/files/1.0.0.apk;// 手机端路径String savePath Directory.systemTemp.path/ceshi.apk;print(savePath);downLoad(dio,url,savePath); }downLo…

【C++笔记】C++三大特性之多态

【C笔记】C三大特性之多态 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】C三大特性之多态前言一.多态1.1 多态的概念1.2 虚函数1.3 虚函数的重写/覆盖1.4 多态的定义及实现 二.虚函数重写的⼀些其他问题2.1 协变(…