尝试用ChatGpt写程序
AIGC(人工智能生成内容)最近火得不行,openAI公司的chatgpt成了当红炸子鸡,由于国内网络限制不好访问,我通过国内API接口访问chatgpt,看它写软件程序的能力。
我用的提示语是:用python写一个俄罗斯方块游戏。
过了大概半分钟,它给我贴了一段代码import pygame
import random
# 定义游戏区域的大小和方块的大小
WIDTH, HEIGHT = 300, 600
BLOCK_SIZE = 30
# 定义方块的形状和颜色
SHAPES = [
[[1, 1, 1],
[0, 1, 0]],
[[0, 2, 2],
[2, 2, 0]],
[[3, 3, 0],
[0, 3, 3]],
[[4, 0, 0],
[4, 4, 4]],
[[0, 0, 5],
[5, 5, 5]],
[[6, 6],
[6, 6]]
]
COLORS = [
(0, 0, 0),
(255, 0, 0),
(0, 255, 0),
(0, 0, 255),
(255, 255, 0),
(255, 0, 255),
(0, 255, 255)
]
# 初始化游戏
def init_game():
# 初始化pygame
pygame.init()
# 创建游戏窗口
screen = pygame.display.set_mode((WIDTH, HEIGHT))
# 设置窗口标题
pygame.display.set_caption("俄罗斯方块")
# 创建时钟对象
clock = pygame.time.Clock()
return screen, clock
# 随机生成一个方块
def generate_block():
shape = random.choice(SHAPES)
color = random.randint(1, len(COLORS)-1)
return shape, color
# 将方块放到游戏区域中
def put_block(grid, block, x, y, color):
for i in range(len(block)):
for j in range(len(block[i])):
if block[i][j] != 0:
grid[y+i][x+j] = color
return grid
# 检查方块能否放下
def check_block(grid, block, x, y):
for i in range(len(block)):
for j in range(len(block[i])):
if block[i][j] != 0:
if y+i >= len(grid) or x+j < 0 or x+j >= len(grid[i]) or grid[y+i][x+j] != 0:
return False
return True
# 消除已经填满的行
def remove_lines(grid):
new_grid = [[0]*len(grid[0]) for _ in range(len(grid))]
row = len(grid) - 1
for i in range(len(grid)-1, -1, -1):
if 0 not in grid[i]:
continue
for j in range(len(grid[i])):
new_grid[row][j] = grid[i][j]
row -= 1
return new_grid
# 绘制游戏区域
def draw_grid(screen, grid):
for i in range(len(grid)):
for j in range(len(grid[i])):
pygame.draw.rect(screen, COLORS[grid[i][j]], (j*BLOCK_SIZE, i*BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE))
pygame.draw.rect(screen, (255, 255, 255), (j*BLOCK_SIZE, i*BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE), 1)
# 游戏主函数
def play_game():
# 初始化游戏
screen, clock = init_game()
# 创建游戏区域
grid = [[0]*int(WIDTH/BLOCK_SIZE) for _ in range(int(HEIGHT/BLOCK_SIZE))]
# 初始化方块
block, color = generate_block()
x, y = int(len(grid[0])/2-len(block[0])/2), 0
# 循环掉落方块
while True:
# 处理游戏事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
return
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
if check_block(grid, block, x-1, y):
x -= 1
elif event.key == pygame.K_RIGHT:
if check_block(grid, block, x+1, y):
x += 1
elif event.key == pygame.K_DOWN:
if check_block(grid, block, x, y+1):
y += 1
elif event.key == pygame.K_UP:
rotated_block = [[block[j][i] for j in range(len(block))] for i in range(len(block[0])-1, -1, -1)]
if check_block(grid, rotated_block, x, y):
block = rotated_block
# 让方块自动下落
if check_block(grid, block, x, y+1):
y += 1
else:
grid = put_block(grid, block, x, y, color)
block, color = generate_block()
x, y = int(len(grid[0])/2-len(block[0])/2), 0
grid = remove_lines(grid)
# 绘制游戏区域
screen.fill((255, 255, 255))
draw_grid(screen, grid)
# 绘制方块
for i in range(len(block)):
for j in range(len(block[i])):
if block[i][j] != 0:
pygame.draw.rect(screen, COLORS[color], ((x+j)*BLOCK_SIZE, (y+i)*BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE))
pygame.draw.rect(screen, (255, 255, 255), ((x+j)*BLOCK_SIZE, (y+i)*BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE), 1)
# 更新屏幕
pygame.display.update()
# 控制帧率
clock.tick(5)
# 运行游戏
play_game()
把代码copy到vscode中,安装好python3解释器和pygame插件,我的PC是win11x64,在vscode中配置好python运行环境,点击运行走起,结果出现:
AI写的俄罗斯方块游戏运行
俄罗斯方块
真能跑起来,虽然游戏界面比较简陋,但是可以玩,实现了俄罗斯方块游戏最基本功能,通过键盘方向键可以控制方块左右运行,向上键可以转动方块,不过程序好像不能判断一局结束,也没有重新开始交互按钮,有点意外的是程序源代码是中文注释。这是中国人写的还是AI翻译的?
AI提供的游戏代码实现了俄罗斯方块游戏最基础的功能,我想它实现更复杂一点的功能,比如游戏计分、用户名,背景音乐,当发送申请到chatgpt,结果AI提醒我今天不能用了。
您今日使用次数已达上限,请明日再试!
那就等明天了,打算用更复杂的提示语,看看AI能不能给出想要的俄罗斯方块游戏源代码。
那一个夏天作者雪凝如何面对,曾一起走过的日子如何用心声一一讲你知,从来没人明白我,唯一你给我好日子。。多少风波都愿闯,只因彼此不死的目光不可猜测总有天意,才珍惜相处的日子,道别话亦未多讲,只
感别人的思,改自己的过人生的修行过程就是一个自觉觉他的过程。对于这句话可能你会认为自觉就是为了渡人,修行的终极目标就是为了觉他。可我的认为是自觉才是终极目标,而觉他是将自己的所感所悟分享给别人,是在自觉
小雪(散文)又到了小雪节气,雪没有如约而来。温煦的阳光拂照着每条街巷,暖暖地。读了一首诗,其中一句我理解雪,它不想落下,它想停在深深的天空。是啊,世上万物都有惯性,也或者可以说成是惰性。每常习
这个社会,穷人的出路是什么?穷人的出路用一句话总结在经济上躺平,在生活上奋斗。什么叫做在经济上躺平呢,就是对于赚钱不再想着要突破阶级,不再想着要实现所谓的财务自由,而是将赚钱标准降至能保证自己有基本的生活水平
喜迎小雪,向暖而行,一切都是最好的安排摄影师张海洋图片来源图虫北风呼啸,冷雨淅沥,黄叶飘零,似乎一转眼,老天就收走了所有的柔情蜜意,将萧杀和季节的寒凉赐予风雨中漂泊的人们。穿行在城市的柏油大道上,看着片片黄叶在风中萧瑟
夜读丨学会释怀,每一天都是晴天今天是动听陪伴你的第1001。文字丨树儿主播丨莹丽亿番洛瓦人生本没有完美,缺憾亦是一种美,学会释怀,每一天都是晴天。岁月总是匆匆,故事里的故事,每一天都在重复上演,也许不是所有的尘
A股公告导读20221121一大事看点华盛昌(002980)11月20日晚间披露股票交易异动公告称,公司近期经营情况正常及内外部经营环境未发生重大变化。截至目前,公司呼吸机处于产品测试阶段,尚未取得医疗注册认
手机别乱买,预算25003000,四款优质旗舰推荐,买完不吃亏今天我们要聊四款很适合入手的手机,预算在两千五到三千,每一款都是优质的旗舰机。OPPOFindX3这款手机搭载骁龙870处理器,相比于骁龙888,它拥有更实惠的价格和更优秀的温控表
10月售出14391辆,远低于9月,特斯拉ModelY是怎么回事?特斯拉作为纯电动豪华品牌,在进入国内汽车市场之后,就得到了不俗的关注度,下面就以ModelY2022款Performance高性能全轮驱动版为例介绍,一起来看看吧。前脸颇为低趴,设
基金的不同投资方最近一些年,有两个名词很火,一个是独角兽公司,另外一个是独角兽基金。这两个词是什么意思呢?独角兽是神话传说中的一种动物,它稀有而且优雅,显得高贵。后来,美国人把独角兽这个词引入投资
让15万字节跳动人高效运转背后的目标管理工具OKR随着时代的发展,创新型组织越来越多,相比制造业(标准化流程,SOP大大流行,每一个事情有严格的流程,企业不希望员工有自己的流程上的变化等,比如,汽车行业,精密仪器制造行业,医疗行业
小米新公告,米粉要有福了就在昨天(3月15日)小米发布新公告,其中公布了MIUI14正式版本第三批支持的机型并附带了第三批机型正式推送版本的时间。其中包括了MIXFOLD系列,小米10系列,RedmiK3
920支医学竹简,打开古代中医药学的瑰丽篇章四川省成都市青羊区的一处战国时期的墓葬发掘中,出土了一批令人瞩目的文献920支医学竹简。这批古代医学文献是对中国古代医学史的重要贡献,其对于研究中医药学医学史考古学等学科都具有着极
新疆是个好地方赴全国四省一市文化旅游推广活动17日启幕石榴云新疆日报讯(记者阿比拜报道)3月14日,记者从自治区文化和旅游厅获悉新疆是个好地方赴全国四省一市文化旅游推介活动将于3月17日启动,届时将在广东省广州市福建省厦门市浙江省杭州
强化数字赋能推进湖南地方戏曲守正创新周新娟程艺萍党的二十大报告提出,要加快建设网络强国数字中国中共中央国务院日前印发的数字中国建设整体布局规划提出,要推进数字技术与经济政治文化社会生态文明建设五位一体深度融合。这有利
邕城2。2万余株洋紫荆盛放,这些地方可以打卡!阳春三月,春意盎然。黄花风铃木还未完全谢幕,如施粉黛霞帔的宫粉洋紫荆就迫不及待地浪漫登场了。白沙大道壮锦立交白沙大道的洋紫荆五象大桥下洋紫荆和其他色彩互搭美如画3月14日,记者走访
云南罗茨一个因温泉而闻名的地方罗次,一个古老的地方,位于云南省禄丰县,罗茨是碧城镇仁兴镇勤丰镇的统称,普遍称为罗次坝子。早些年,罗次是一个独立的县,后来和广通禄丰一起合并为禄丰县。罗次坝子周围都是山,中间平坦,
在太阳转身的地方,叫云南墨江,不知为何这里双胞胎出生几率极高在太阳转身的地方,有一个地名叫墨江,非常优雅好听的名字,位于云南省普洱市墨江县,不知为何,这里的双胞胎和龙凤胎的出生几率极高,很多人被这神秘现象所吸引前往一探究竟。她位于北纬232
中国目前唯一允许合法持枪的地方,民俗奇特,竟然还会用镰刀剃头这里是刘小顺的旅行和生活研究所。最近,我在贵州省黔东南苗族侗族自治州游玩,这里浓郁的少数民族风情给我留下了非常深刻的印象。我们在黔东南州的第一站来到了岜沙苗寨,这里据说是中国目前唯
探究古希腊的奴隶制,奴隶种类不一样,生活会不一样吗?虽然没有实质性证据表明奴隶制第一次被创造为人类剥削的一种形式,但经过研究人们确实知道它在公元前三千年和第二千年很普遍。希腊不是第一个实行奴隶制的国家,但由于其丰富的文学资源,人们对
河南省企业创新引导专项资金管理办法发布丨全文大河财立方消息3月16日,河南省财政厅河南省科技厅印发河南省企业创新引导专项资金管理办法。办法所指的专项资金,是省级财政预算安排的用于引导市县和金融机构支持科技企业创新发展的专项资
小手拉大手,萌娃齐学防火秘籍3月15日,黄兴会展经济区干杉消防救援站联合斗塘新村宣传人员走进小神童幼儿园,开展疏散演练和消防知识宣传活动。伴随着紧急的警报声响起,一场消防演练也随即拉开。演练培训结束后,各班老