尝试用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能不能给出想要的俄罗斯方块游戏源代码。
为什么越简单越时髦?为什么越简单越时髦近年来,越来越多的人追求简约简单的生活方式和时尚风格。这一现象的背后,有多种原因和解释。首先,简约时尚符合人们对于生活品质的追求。在快节奏的现代生活中,人们对于简
街拍朝鲜平壤市民真实的生活场景,生活虽很简单但满足感很强从朝鲜回来的很多中国游客都会说,到朝鲜旅游,发现朝鲜只有两个地区,一个是平壤地区,一个是平壤以外地区。平壤作为朝鲜倾全国之力打造的一座城市,一座向外国人展示朝鲜在经济发展和人民生活
不会和孩子相处吗?学会这个办法让你轻松应对熊孩子帆帆看我在忙,没有理他,坐在地上,开始哭。我对她说你先自己玩一会妈妈做完饭就陪你好不好?我说话的时候,帆帆停止了哭泣,我对她说完,我就继续安静的做饭。看我没有过去,帆帆就继续哭,甚
首届开源鸿蒙技术峰会举行,发布终端操作系统十大挑战2月25日,以技术构筑万物智联为主题的第一届开放原子开源基金会OpenHarmony技术峰会(以下简称技术峰会)于深圳举行。本次技术峰会向外界分享了OpenAtomOpenHarm
这3名女兵的履历真不简单文池俊成张嘉颖吴锦图刘志勇张笑领刘思宇回忆里有刚下连队时的满怀憧憬有冒雨前进时的武装奔袭有巡回演出时的欢声笑语有年终考核时的赛前冲刺她们在平凡的岗位上用青春最美的芳华谱写了属于她们
随县太白顶景区激活乡贤新动力同绘景区共富图湖北日报客户端讯(通讯员吴亚东韩淑娴)随县太白顶景区积极融入全域旅游示范区建设,锚定打造文化旅游康养生态区,通过着力构建红绿特色一村一品统战乡贤模式,深入挖掘民营企业家村(居)委会
好消息!这一往返中国的航线将复航记者24日从常州国际机场获悉,常州曼谷直飞国际航线将于3月9日起复航。据悉,这是新型冠状病毒感染实施乙类乙管以来,常州恢复开通的首个国际航班。常州曼谷国际航线由泰国越捷航空股份有限
中国历史上第二位女政治家,武则天历史上唯一的女皇帝,建立武周第二位武则天武周皇武媚娘武则天也可以称他为武周皇帝是中国历史上也是唯一一位正统的女皇帝,亦是史上卓有功绩善于理政的女政治家之一。公元637年,出身官宦家庭年仅14岁的武则天入宫,成
影响中国历史进程的十位伟大帝王!中国历史悠悠五千载,几十个王朝的兴亡更替,几百位帝王轮番上演,主宰天下命运。他们其中有雄才大略,开疆拓土的铁血帝王,有昏庸无能的懦弱帝王,有好色残暴的嗜血帝王,也有性格温和敦厚的仁
未来已来高质量发展看中国助力品牌出海锚定现代服务业高质量发展国际在线消息(记者张馨叶)年处理包裹数量达3亿件以上年累计处理货物吞吐量达100万吨以上累计出口货值273。4亿美元出口包裹26亿件出口车辆(集装箱)29。7万辆(箱)次作为跨境电
中国芯缺少专业人才,谁之过错?任正非卡脖子的是自己人自从华为被老美制裁后,人们才知道我国在半导体产业上存在很多短板。以光刻机为例,我国最先进的光刻机厂商上海微电子能够生产90nm的光刻机,和ASML公司的3nm光刻机有好几代差距。因