ChatGPT4写贪吃蛇游戏(Notion)[pygame的学习]

这篇具有很好参考价值的文章主要介绍了ChatGPT4写贪吃蛇游戏(Notion)[pygame的学习]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里我使用的是Notion写出来的贪吃蛇,开始使用百度的文心一言来试下效果,生成了好几次的代码都是有bug,所以生成代码这块还得是ChatGPT。这篇主要就是了解下pygame库的一些方法,当然在没有安装这个库的,需要先安装,安装的时候还是一直都推荐的安装方法,带上国内镜像地址,这样下载速度快很多,本人喜欢带豆瓣镜像,在命令行执行如下命令:

pip install pygame -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

其中对于Notion在前面也有介绍,还跟百度的文心一言做了一下对比:
百度文心一言与Notion的比较(机器人通信的例子)
Notion的使用还是很方便的,有桌面客户端,登录一次之后,后期就不需要翻墙了。跟国内使用没有区别,推荐大家去体验。

代码来自Notion自动生成的,本人做了一些注释和修改,方便大家查阅,比如可以显示中文,使用自定义图片作为背景,而不是颜色填充。这里未修改之前的中文是乱码,需要注意的是这里的乱码不属于常规意义的编码问题,属于字体的问题。

font_style = pygame.font.SysFont(None, 30)

这种默认系统的字体,如果是中文就会显示乱码,于是指定系统里的一种字体:

font_style = pygame.font.Font('C:/WINDOWS/Fonts/simkai.ttf', 20)

贪吃蛇是一种比较简单的游戏,所以对于熟悉pygame库来说,是一种很好的入门示例,代码如下:

import pygame
import time
import random

pygame.init()

white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (50, 153, 213)
# 游戏界面的宽高
dis_width = 600
dis_height = 400
dis = pygame.display.set_mode(size=(dis_width,dis_height)) #若size=(0,0)为全屏
pygame.display.set_caption('贪吃蛇')

clock = pygame.time.Clock() #每秒帧数(控制游戏的速度)

snake_block = 10 #蛇和食物的大小
snake_speed = 15 #蛇的频率或说速度

#font_style = pygame.font.SysFont(None, 30)
#显示中文
font_style = pygame.font.Font('C:/WINDOWS/Fonts/simkai.ttf', 20) 

# 绘制蛇(随着键盘操作,不断更新xy坐标位置)
def our_snake(snake_block, snake_List):
    for x in snake_List:
        pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])

# 将游戏结束时的文字,绘制到屏幕1/6宽,1/3高的位置
def message(msg, color):
    mesg = font_style.render(msg, True, color)
    dis.blit(mesg, [dis_width / 6, dis_height / 3])

bg=pygame.image.load("D:/n.jpg")
def gameLoop():
    game_over = False
    game_close = False

    x1 = dis_width / 2
    y1 = dis_height / 2

    x1_change = 0
    y1_change = 0

    snake_List = []
    Length_of_snake = 1

    # 随机食物
    foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
    foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0

    while not game_over:

        while game_close == True:
            #dis.fill(blue)
            dis.blit(bg,bg.get_rect())
            message("游戏结束!按大写Q键退出或者C键重新开始游戏", white)
            pygame.display.update()

            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        game_over = True
                        game_close = False
                    if event.key == pygame.K_c:
                        gameLoop()
        
        # 按键事件下捕获上下左右键,注意方向
        for event in pygame.event.get():
            #右上角的关闭
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    x1_change = -snake_block
                    y1_change = 0
                elif event.key == pygame.K_RIGHT:
                    x1_change = snake_block
                    y1_change = 0
                elif event.key == pygame.K_UP:
                    y1_change = -snake_block
                    x1_change = 0
                elif event.key == pygame.K_DOWN:
                    y1_change = snake_block
                    x1_change = 0
        # 越界了,游戏结束
        if x1 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0:
            game_close = True
        # 根据方向键进行坐标的更新
        x1 += x1_change
        y1 += y1_change
        #dis.fill(blue)
        bg=pygame.image.load("D:/n.jpg")
        dis.blit(bg,bg.get_rect())
        # 绘制食物
        pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])
        snake_Head = []
        snake_Head.append(x1)
        snake_Head.append(y1)
        snake_List.append(snake_Head)
        if len(snake_List) > Length_of_snake:
            del snake_List[0]

        # 首尾相连游戏结束
        for x in snake_List[:-1]:
            if x == snake_Head:
                game_close = True
        # 时刻更新蛇的状态
        our_snake(snake_block, snake_List)
        pygame.display.update()
        
        # 吃到食物,随机更新食物位置
        if x1 == foodx and y1 == foody:
            foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
            foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
            Length_of_snake += 1
            print("真棒!")

        clock.tick(snake_speed)

    pygame.quit()
    quit()

gameLoop()

ChatGPT4写贪吃蛇游戏(Notion)[pygame的学习]

ChatGPT4写贪吃蛇游戏(Notion)[pygame的学习] 

ChatGPT4写贪吃蛇游戏(Notion)[pygame的学习] 

修改背景为自定义图片:

ChatGPT4写贪吃蛇游戏(Notion)[pygame的学习] 

当然还可以加一些音乐之类的,玩起来更有意思。

PS:说个题外话,很多人对于ChatGPT4的出现,产生了焦虑感,感觉会替代很多工作,甚至有人调侃首先就是代替了程序员的工作,在我看来是不会的,我一直保持一种乐观的看法,这种里程碑式的产品问世,大大提高了人们的工作效率,作为一种工具是不会将人代替的,当然会解雇一些人这个是肯定的。就以这个游戏代码为例来说明,如果说跨行业的来做程序,虽然可以运行,但需求是无止境的,就拿前面说的中文乱码的例子来说吧,如果只是寄希望于ChatGPT4,我想它也可能不会给出正确答案,因为ChatGPT4再怎么厉害,它还是需要大数据做基础的,而这些数据对于乱码问题基本都归咎于编码问题,于是会给出很多关于修改编码的答案,那我们知道这里其实就是指系统字体的原因。
对于能替代的事情,一般是一些重复的事情,比如工厂流水线操作,这些未来都将被机器人代替,而对于需要人去干预才能做好的事情,还是没法代替的。文章来源地址https://www.toymoban.com/news/detail-426664.html

到了这里,关于ChatGPT4写贪吃蛇游戏(Notion)[pygame的学习]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 游戏开发丨基于Pygame的AI版贪吃蛇小游戏

    本期内容 基于pygame的AI版贪吃蛇小游戏 所需环境 python pycharm或anaconda pygame 下载地址 https://download.csdn.net/download/m0_68111267/88789665 本游戏使用Pygame模块开发,不需要玩家操纵贪吃蛇,贪吃蛇会自动吃掉屏幕上随机出现的食物,每吃一个食物贪吃蛇长度增加一节。如果贪吃蛇撞到

    2024年02月20日
    浏览(35)
  • 手把手教你使用Python写贪吃蛇游戏(pygame,附源码)

    贪吃蛇游戏是有史以来最受欢迎的街机游戏之一。在这个游戏中,玩家的主要目标是在不撞墙或不撞墙的情况下抓住最大数量的水果。在学习 Python 或 Pygame 时,可以将创建蛇游戏视为一项挑战。这是每个新手程序员都应该接受的最好的初学者友好项目之一。学习构建视频游戏

    2024年02月16日
    浏览(21)
  • python学习时与chatgpt4对话的一些感悟

    今天学SCENIC教程,看到里面有一句不是很懂 If you run this from a python script instead of a Jupyter notebook, please enclose the code in a if __name__ == \\\'__main__\\\': construct. 现在把和chatgpt4问答的内容发上来,确实是很厉害  没有太看懂,二次发问  说的很清楚了,if __name__ == \\\'__main__\\\' 这段可以让你在

    2024年02月15日
    浏览(44)
  • ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模

      2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在各行各业的应用呈现了更多的可能性。

    2024年01月23日
    浏览(28)
  • 基于ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模

    022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在各行各业的应用呈现了更多的可能性。2023年

    2024年01月25日
    浏览(30)
  • 【pygame学习+实战】第一篇:游戏最小系统

    14天学习训练营导师课程: 李宁《Python Pygame游戏开发入门与实战》 李宁《计算机视觉OpenCV Python项目实战》1 李宁《计算机视觉OpenCV Python项目实战》2 李宁《计算机视觉OpenCV Python项目实战》3 “我有一个梦想,那就是有生之年做出一款属于自己的游戏。” 不知道屏幕前的你是

    2023年04月19日
    浏览(23)
  • ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模进阶应用

    2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在各行各业的应用呈现了更多的可能性。202

    2024年02月02日
    浏览(27)
  • 基于ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模教程

    详情点击链接:基于ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模教程 第一:GPT4 1、ChatGPT(GPT-1、GPT-2、GPT-3、GPT-3.5、GPT-4模型的演变) 2、ChatGPT对话初体验 3、GPT-4与GPT-3.5的区别,以及与国内大语言模型(文心一言、星火等)的区别 4、ChatGPT科研必备插件(Da

    2024年01月23日
    浏览(27)
  • 一文了解ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模应用

    2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在各行各业的应用呈现了更多的可能性。202

    2024年01月20日
    浏览(24)
  • pygame制作贪吃蛇

    目录 综述 制作前的分析 面向对象和面向过程 对象相关(地图,蛇,食物) 地图和墙体的绘制 蛇的绘制 食物的绘制 总结 代码 游戏的基础(gamebase.py) 引用 一些基础参数的设置 颜色 点类(方块元素) 文本类 游戏主体(snake.py) 引用 基础参数(其实可以加到gamebase里)

    2024年04月28日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包