首页 > 其他分享 >用chartGPT自动生成的贪吃蛇游戏

用chartGPT自动生成的贪吃蛇游戏

时间:2023-04-13 14:33:07浏览次数:34  
标签:游戏 WINDOW 贪吃蛇 pygame score chartGPT speed block snake

import pygame
import time
import random

# 初始化 Pygame 库
pygame.init()

# 定义游戏窗口大小
WINDOW_WIDTH = 500
WINDOW_HEIGHT = 500

# 定义游戏速度
SPEED = 15

# 创建游戏窗口
screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))

# 设置游戏标题
pygame.display.set_caption("贪吃蛇游戏")

# 定义颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)

# 游戏字符大小
FONT_STYLE = pygame.font.SysFont(None, 30)


# 显示分数
def show_score(score):
    score_text = FONT_STYLE.render("分数: " + str(score), True, WHITE)
    screen.blit(score_text, [0, 0])


# 绘制蛇
def draw_snake(snake_block, snake_list):
    for x in snake_list:
        pygame.draw.rect(screen, GREEN, [x[0], x[1], snake_block, snake_block])


# 主函数
def game_loop():
    # 设置蛇的初始位置和长度
    snake_block = 10
    snake_speed_x = 0
    snake_speed_y = 0

    # 初始位置 (x,y) 坐标
    x1 = WINDOW_WIDTH / 2
    y1 = WINDOW_HEIGHT / 2

    # 蛇的初始长度
    snake_List = []
    Length_of_snake = 1

    # 食物的位置
    foodx = round(random.randrange(0, WINDOW_WIDTH - snake_block) / 10.0) * 10.0
    foody = round(random.randrange(0, WINDOW_HEIGHT - snake_block) / 10.0) * 10.0

    # 游戏是否结束的标志位
    game_over = False

    # 记录得分
    score = 0

    # 游戏循环
    while not game_over:

        # 处理游戏事件
        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:
                    snake_speed_x = -snake_block
                    snake_speed_y = 0
                elif event.key == pygame.K_RIGHT:
                    snake_speed_x = snake_block
                    snake_speed_y = 0
                elif event.key == pygame.K_UP:
                    snake_speed_y = -snake_block
                    snake_speed_x = 0
                elif event.key == pygame.K_DOWN:
                    snake_speed_y = snake_block
                    snake_speed_x = 0

        # 更新蛇头的位置
        x1 += snake_speed_x
        y1 += snake_speed_y

        # 判断是否吃到食物
        if x1 == foodx and y1 == foody:
            foodx = round(random.randrange(0, WINDOW_WIDTH - snake_block) / 10.0) * 10.0
            foody = round(random.randrange(0, WINDOW_HEIGHT - snake_block) / 10.0) * 10.0
            Length_of_snake += 1
            score += 10

        # 游戏结束的条件
        if x1 < 0 or x1 >= WINDOW_WIDTH or y1 < 0 or y1 >= WINDOW_HEIGHT:
            game_over = True

        # 更新蛇的列表
        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_over = True

        # 绘制游戏界面
        screen.fill(BLACK)
        pygame.draw.rect(screen, RED, [foodx, foody, snake_block, snake_block])
        draw_snake(snake_block, snake_List)
        show_score(score)
        pygame.display.update()

        # 控制游戏速度
        clock = pygame.time.Clock()
        clock.tick(SPEED)

    # 退出 Pygame 库
    pygame.quit()
    quit()

if __name__ == '__main__':
    game_loop()

 

标签:游戏,WINDOW,贪吃蛇,pygame,score,chartGPT,speed,block,snake
From: https://www.cnblogs.com/hulk-1029/p/17314717.html

相关文章

  • c语言贪吃蛇(2)关于蛇的函数封装
    hassnakenode():检测循环体内部是否含有蛇身结点,若有,则返回1(对应main输出蛇结点),否则判断点后移吗,再判断,之后返回0(不输出蛇结点)  addnode():创造新蛇结点,用malloc申请空间,并插入到尾结点之后。(尾插法)initsnake():创建初始头尾结点,malloc申请空间,方便后续蛇结点的添加,初始赋......
  • 动态规划02——45. 跳跃游戏 II
    45.跳跃游戏II给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意nums[i+j]处:0<=j<=nums[i] i+j<n返回到达 nums[n-1]的最小跳跃次数......
  • c语言贪吃蛇(1)地图实现
    采用循环输出来实现按照行和列的顺序两次for循环输出。代码:结果: ......
  • 记首次用Cheat Engine修改游戏内存
    记得第一次见到ce修改器还是因为听闻ce修改器可以修改百度网盘下载速度,但是测试了一下发现确实可行(虽然不知道现在修复了没)。最近想起来得好好研究它的功能。最后我发现了了一片讲的很细的CE修改器教程入门篇,作者用ce自带的一个练习程序详细的讲解了几种修改方式。学习之后为了实......
  • ChatGPT账号没封的看过来,与ChatGPT玩个超级创意游戏
    文/高扬 这几天ChatGPT账号批量封禁之事让大家人心惶惶,今天为大家散散心,用ChatGPT玩些花样。 ChatGPT在绘画上没天赋,但我很想让它画画,怎么办? 我想到了ASCII码可以作图,想到了早期的ASCII码校园论坛。    那么,ChatGPT是不是也可以通过ASCII码展示图形,咱们来试......
  • 11.1金山游戏开发笔试
    intmain(){ inti; (i=1,i=10)?i++||++i:++i; printf("%d",i); getchar();}答案:11.解释:逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为表达式1,表达式2,表达式3……表达式n求解过程是:先求解表达式1,再求解表达式2,...。整个逗号表达式的值是最后一个表达式n的......
  • Github 添加贪吃蛇动画
    前言我们都知道,对于Github来说,当你选择你的账户时,可以看到自己的提交记录。于是就有大神动脑筋了,这些commit记录都是一些豆,如果弄一条蛇来,不就可以搞个贪吃蛇了吗?有道理有道理,本文就来讲一下如何弄一条蛇出来。 创建步骤创建个人仓库个人仓库是一个特殊的仓库,名字就是你的......
  • (libgdx小结)游戏地图
    一、制作游戏地图首先我们下载游戏地图的制作软件。下载地址http://www.mapeditor.org/接下来,我们新建一个目录,名为“游戏地图1”其目录结构如下:input:我们将制作游戏地图时所使用到的的素材都放在这里。并且使用TiledMap软件制作完以后的文件(.tmx)也保存在这里。output:我们在.tmx......
  • 游戏
    在玩的  库存  心愿  搁置  喜欢(1)网络游戏:逆战、偶尔玩玩CSGO;(2)手游:《元气骑士》、偶尔玩玩《使命召唤》;(3)单机:《光环》系列:  ①《光环战争1》:  ②《光环:致远星》:  ③《光环:战斗进化》(光环1):  ④《光环2:地狱伞兵ODST》:  ⑤《光环3》:  ⑥《......
  • 贪吃蛇
     importpygameimportrandom#初始化pygame.init()#游戏界面宽高和方块大小WINDOW_WIDTH=800WINDOW_HEIGHT=1080CELL_SIZE=20#颜色定义WHITE=(255,255,255)BLACK=(0,0,0)GREEN=(0,255,0)RED=(255,0,0)#创建游戏界面pygame.display......