体验用ai做了个python小游戏

news/2025/2/21 13:46:43/文章来源:https://www.cnblogs.com/edzjx/p/18725469

写在前面:

最近ai确实比较火。各种生成式AI,包括文字、图片、视频。之前听说ai生产代码能力比较强,一直想试试。所以及就有了本问。


使用的工具

deepinseek :用来生成python代码

即梦:用来生成图片素材

Remove.bg:用来对生成的图片素材去除背景

pixabay.com:用来下载音乐素材


游戏建立步骤

1.设立游戏建立背景


image



我使用了深度思考

image

整个深度思索的过程,让我了解到deepseek为啥选择pygame库,为啥选择收集物品得分的模式。主要是我前面的提示词:小学生。我觉得符合我预期。

很快他就生成了python代码

import pygame
import random# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()# 加载哈尔滨元素素材
bg = pygame.image.load("snow_bg.jpg")  # 冰雪大世界背景
player_img = pygame.image.load("skier.png")  # 滑雪运动员
ice_img = pygame.image.load("ice_block.png")  # 冰障碍物
flag_img = pygame.image.load("finish_flag.png")  # 终点旗# 颜色定义
WHITE = (255, 255, 255)
BLUE = (0, 100, 255)# 玩家类
class Skier:def __init__(self):self.image = pygame.transform.scale(player_img, (60, 60))self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT-100))self.speed = 8def move(self, direction):if direction == "left" and self.rect.left > 0:self.rect.x -= self.speedelif direction == "right" and self.rect.right < WIDTH:self.rect.x += self.speed# 障碍物类
class Obstacle:def __init__(self):self.type = random.choice(["ice", "flag"])self.image = ice_img if self.type == "ice" else flag_imgself.image = pygame.transform.scale(self.image, (40, 40))self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20))self.speed = 5def move(self):self.rect.y += self.speed# 游戏主循环
def main():skier = Skier()obstacles = []score = 0font = pygame.font.Font(None, 36)game_active = Truewhile True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()returnif game_active:keys = pygame.key.get_pressed()if keys[pygame.K_LEFT]:skier.move("left")if keys[pygame.K_RIGHT]:skier.move("right")# 生成障碍物if random.random() < 0.05:  # 5%概率生成obstacles.append(Obstacle())# 移动障碍物for obstacle in obstacles:obstacle.move()if skier.rect.colliderect(obstacle.rect):if obstacle.type == "ice":game_active = Falseelse:score += 50obstacles.remove(obstacle)if obstacle.rect.top > HEIGHT:obstacles.remove(obstacle)if obstacle.type == "ice":score += 10# 更新界面screen.blit(bg, (0, 0))screen.blit(skier.image, skier.rect)for obstacle in obstacles:screen.blit(obstacle.image, obstacle.rect)# 显示得分score_text = font.render(f"得分: {score}", True, WHITE)screen.blit(score_text, (10, 10))else:# 游戏结束界面screen.fill(BLUE)end_text = font.render("游戏结束!最终得分: " + str(score), True, WHITE)screen.blit(end_text, (WIDTH//2-150, HEIGHT//2))restart_text = font.render("按R重新开始", True, WHITE)screen.blit(restart_text, (WIDTH//2-100, HEIGHT//2+50))keys = pygame.key.get_pressed()if keys[pygame.K_r]:game_active = Truescore = 0obstacles = []skier = Skier()pygame.display.update()clock.tick(60)if __name__ == "__main__":main()
View Code

代码的完整度非常好,拷贝图片素材基本就可以运行了。代码中有注释,方便阅读代码。他还给出了后续的建议。游戏就是避障,然后接住游戏元素得分。碰到障碍物游戏结束,提示分数,提示按R键继续游戏。逻辑比较简单。

image

image


2.增加功能

在这个基础上,我对deepseek提了一些要求,或者觉得有问题的让他解决。总体上都解决了。而且效果我认为满意。

1.要求增加视频作为背景。

因为pygame是不支持视频元素的。我 看看deepseek怎么解决的哦,他比较了opencv和moviepy库,在小学生这个条件下,给出opencv更适合。这段深度思考部分,我觉得给出moviepy和opencv的比较逻辑有点欠缺。但是实际的思路还是比较清晰的使用第三方库从视频中取帧,然后绘制到pygame的surface上。

它还贴心的给出了如何安装opencv库,怎么引用素材

image

image

import pygame
import cv2  # 新增OpenCV库
import numpy as np
import random# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()# 加载视频背景(新增部分)
video = cv2.VideoCapture("harbin_winter.mp4")  # 准备哈尔滨冬季主题视频
video_width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
video_height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))# 加载其他素材(保持原有)
player_img = pygame.image.load("skier.png")
ice_img = pygame.image.load("ice_block.png")
flag_img = pygame.image.load("finish_flag.png")# 视频帧转换函数(新增)
def get_video_frame():ret, frame = video.read()if not ret:  # 如果视频播放完毕video.set(cv2.CAP_PROP_POS_FRAMES, 0)  # 重置到开头ret, frame = video.read()frame = cv2.resize(frame, (WIDTH, HEIGHT))  # 调整尺寸frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)  # 颜色空间转换return pygame.surfarray.make_surface(frame.swapaxes(0, 1))  # 转为Pygame Surface# 玩家类(保持原有)
class Skier:# ... 原有代码不变 ...# 障碍物类(保持原有)
class Obstacle:# ... 原有代码不变 ...# 修改后的游戏主循环
def main():skier = Skier()obstacles = []score = 0font = pygame.font.Font(None, 36)game_active = Truewhile True:# 处理事件(保持原有)for event in pygame.event.get():if event.type == pygame.QUIT:video.release()  # 新增:释放视频资源pygame.quit()return# 获取视频背景帧(新增部分)bg_surface = get_video_frame()if game_active:# ... 原有游戏逻辑保持不变 ...# 更新界面(修改背景部分)screen.blit(bg_surface, (0, 0))  # 替换原来的bgscreen.blit(skier.image, skier.rect)# ... 其余绘制逻辑保持不变 ...else:# 游戏结束界面(可以保持原有)# ... 原有代码 ...pygame.display.update()clock.tick(60)if __name__ == "__main__":main()
View Code


2.我让增加了一个欢迎页面。

它的思路,通过设置变量,把游戏过程分为欢迎页,游戏进行中,游戏结束3个状态。逻辑没毛病。还贴心的提供修改说明和建议。

imageimageimageimageimageimage

import pygame
import cv2
import numpy as np
import random# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()# 加载视频背景
video = cv2.VideoCapture("harbin_winter.mp4")
video_width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
video_height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))# 加载游戏素材
player_img = pygame.image.load("skier.png")
ice_img = pygame.image.load("ice_block.png")
flag_img = pygame.image.load("finish_flag.png")# 视频帧转换函数
def get_video_frame():ret, frame = video.read()if not ret:video.set(cv2.CAP_PROP_POS_FRAMES, 0)ret, frame = video.read()frame = cv2.resize(frame, (WIDTH, HEIGHT))frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)return pygame.surfarray.make_surface(frame.swapaxes(0, 1))# 玩家类
class Skier:def __init__(self):self.image = pygame.transform.scale(player_img, (60, 60))self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT-100))self.speed = 8def move(self, direction):if direction == "left" and self.rect.left > 0:self.rect.x -= self.speedelif direction == "right" and self.rect.right < WIDTH:self.rect.x += self.speed# 障碍物类
class Obstacle:def __init__(self):self.type = random.choice(["ice", "flag"])self.image = ice_img if self.type == "ice" else flag_imgself.image = pygame.transform.scale(self.image, (40, 40))self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20))self.speed = 5def move(self):self.rect.y += self.speeddef main():skier = Skier()obstacles = []score = 0font = pygame.font.Font(None, 36)# 新增游戏状态变量game_active = Falsewelcome_page = True  # 新增欢迎页面状态while True:# 获取视频背景帧bg_surface = get_video_frame()# 事件处理for event in pygame.event.get():if event.type == pygame.QUIT:video.release()pygame.quit()return# 欢迎页面逻辑if welcome_page:screen.blit(bg_surface, (0, 0))# 绘制标题文字title_font = pygame.font.Font(None, 72)title_text = title_font.render("哈尔滨冰雪大冒险", True, (255, 255, 255))title_rect = title_text.get_rect(center=(WIDTH//2, HEIGHT//3))screen.blit(title_text, title_rect)# 绘制提示文字tip_font = pygame.font.Font(None, 36)tip_text = tip_font.render("按空格键开始游戏", True, (255, 255, 255))tip_rect = tip_text.get_rect(center=(WIDTH//2, HEIGHT//2))screen.blit(tip_text, tip_rect)# 检测空格键keys = pygame.key.get_pressed()if keys[pygame.K_SPACE]:welcome_page = Falsegame_active = True# 游戏进行中elif game_active:# 玩家控制keys = pygame.key.get_pressed()if keys[pygame.K_LEFT]:skier.move("left")if keys[pygame.K_RIGHT]:skier.move("right")# 生成障碍物if random.random() < 0.05:obstacles.append(Obstacle())# 更新障碍物for obstacle in obstacles[:]:obstacle.move()if skier.rect.colliderect(obstacle.rect):if obstacle.type == "ice":game_active = Falseelse:score += 50obstacles.remove(obstacle)if obstacle.rect.top > HEIGHT:obstacles.remove(obstacle)if obstacle.type == "ice":score += 10# 绘制游戏界面screen.blit(bg_surface, (0, 0))screen.blit(skier.image, skier.rect)for obstacle in obstacles:screen.blit(obstacle.image, obstacle.rect)# 显示得分score_text = font.render(f"得分: {score}", True, (255, 255, 255))screen.blit(score_text, (10, 10))# 游戏结束界面else:screen.fill((0, 100, 255))end_text = font.render(f"游戏结束!最终得分: {score}", True, (255, 255, 255))screen.blit(end_text, (WIDTH//2-150, HEIGHT//2))restart_text = font.render("按R重新开始", True, (255, 255, 255))screen.blit(restart_text, (WIDTH//2-100, HEIGHT//2+50))# 重新开始逻辑keys = pygame.key.get_pressed()if keys[pygame.K_r]:game_active = Truescore = 0obstacles = []skier = Skier()pygame.display.update()clock.tick(60)if __name__ == "__main__":main()
View Code

3.我发现中文显示有问题。

提出了问题,deepseek也给出可行的解决方案,我使用了他给的方案2 ,因为自定义字体可以使得游戏画面更优。还贴心的给出了注意事项。

imageimageimage

4.我提出了背景修改意见,欢迎页面和结束页面背景是视频,游戏页面背景是静态图片。

deepseek也爽快完成了效果。

import pygame
import cv2
import numpy as np
import random# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()# 加载视频背景
video = cv2.VideoCapture("harbin_winter.mp4")  # 欢迎页面和结束页面的背景视频# 加载图片背景
game_bg = pygame.image.load("snow_bg.jpg")  # 游戏界面的背景图片
game_bg = pygame.transform.scale(game_bg, (WIDTH, HEIGHT))# 加载游戏素材
player_img = pygame.image.load("skier.png")
ice_img = pygame.image.load("ice_block.png")
flag_img = pygame.image.load("finish_flag.png")# 加载背景音乐
pygame.mixer.init()
welcome_music = pygame.mixer.Sound("welcome_music.mp3")  # 欢迎页面音乐
game_music = pygame.mixer.Sound("game_music.mp3")        # 游戏界面音乐
end_music = pygame.mixer.Sound("end_music.mp3")          # 结束页面音乐# 设置音乐音量
welcome_music.set_volume(0.5)
game_music.set_volume(0.5)
end_music.set_volume(0.5)# 视频帧转换函数
def get_video_frame():ret, frame = video.read()if not ret:  # 如果视频播放完毕video.set(cv2.CAP_PROP_POS_FRAMES, 0)  # 重置到开头ret, frame = video.read()frame = cv2.resize(frame, (WIDTH, HEIGHT))  # 调整尺寸frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)  # 颜色空间转换return pygame.surfarray.make_surface(frame.swapaxes(0, 1))  # 转为Pygame Surface# 玩家类
class Skier:def __init__(self):self.image = pygame.transform.scale(player_img, (60, 60))self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT-100))self.speed = 8def move(self, direction):if direction == "left" and self.rect.left > 0:self.rect.x -= self.speedelif direction == "right" and self.rect.right < WIDTH:self.rect.x += self.speed# 障碍物类
class Obstacle:def __init__(self):self.type = random.choice(["ice", "flag"])self.image = ice_img if self.type == "ice" else flag_imgself.image = pygame.transform.scale(self.image, (40, 40))self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20))self.speed = 5def move(self):self.rect.y += self.speeddef main():skier = Skier()obstacles = []score = 0font = pygame.font.Font(None, 36)# 游戏状态变量game_active = Falsewelcome_page = True  # 初始为欢迎页面# 当前播放的音乐current_music = Nonewhile True:# 事件处理for event in pygame.event.get():if event.type == pygame.QUIT:video.release()pygame.quit()return# 检测空格键按下事件if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:if welcome_page or not game_active:  # 在欢迎页面或结束页面按空格键welcome_page = Falsegame_active = Truescore = 0obstacles = []skier = Skier()print("游戏开始!")# 欢迎页面if welcome_page:if current_music != welcome_music:pygame.mixer.stop()  # 停止当前音乐welcome_music.play(-1)  # 循环播放欢迎音乐current_music = welcome_musicbg_surface = get_video_frame()  # 使用视频背景screen.blit(bg_surface, (0, 0))# 绘制标题文字title_font = pygame.font.Font(None, 72)title_text = title_font.render("哈尔滨冰雪大冒险", True, (255, 255, 255))title_rect = title_text.get_rect(center=(WIDTH//2, HEIGHT//3))screen.blit(title_text, title_rect)# 绘制提示文字tip_font = pygame.font.Font(None, 36)tip_text = tip_font.render("按空格键开始游戏", True, (255, 255, 255))tip_rect = tip_text.get_rect(center=(WIDTH//2, HEIGHT//2))screen.blit(tip_text, tip_rect)# 游戏进行中elif game_active:if current_music != game_music:pygame.mixer.stop()  # 停止当前音乐game_music.play(-1)  # 循环播放游戏音乐current_music = game_music# 使用图片背景screen.blit(game_bg, (0, 0))# 玩家控制keys = pygame.key.get_pressed()if keys[pygame.K_LEFT]:skier.move("left")if keys[pygame.K_RIGHT]:skier.move("right")# 生成障碍物if random.random() < 0.05:obstacles.append(Obstacle())# 更新障碍物for obstacle in obstacles[:]:obstacle.move()if skier.rect.colliderect(obstacle.rect):if obstacle.type == "ice":game_active = Falseelse:score += 50obstacles.remove(obstacle)if obstacle.rect.top > HEIGHT:obstacles.remove(obstacle)if obstacle.type == "ice":score += 10# 绘制玩家和障碍物screen.blit(skier.image, skier.rect)for obstacle in obstacles:screen.blit(obstacle.image, obstacle.rect)# 显示得分score_text = font.render(f"得分: {score}", True, (255, 255, 255))screen.blit(score_text, (10, 10))# 游戏结束界面else:if current_music != end_music:pygame.mixer.stop()  # 停止当前音乐end_music.play(-1)  # 循环播放结束音乐current_music = end_musicbg_surface = get_video_frame()  # 使用视频背景screen.blit(bg_surface, (0, 0))# 绘制结束文字end_text = font.render(f"游戏结束!最终得分: {score}", True, (255, 255, 255))screen.blit(end_text, (WIDTH//2-150, HEIGHT//2))restart_text = font.render("按空格键重新开始", True, (255, 255, 255))screen.blit(restart_text, (WIDTH//2-100, HEIGHT//2+50))pygame.display.update()clock.tick(60)if __name__ == "__main__":main()
View Code

imageimage

5.提出增加更多游戏元素。

deepseek增加了加速道具,护盾道具,磁铁道具,减速道具。

image

import pygame
import cv2
import numpy as np
import random
import math# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()# 加载视频背景
video = cv2.VideoCapture("harbin_winter.mp4")# 加载图片背景
game_bg = pygame.image.load("snow_bg.jpg")
game_bg = pygame.transform.scale(game_bg, (WIDTH, HEIGHT))# 加载游戏素材
player_img = pygame.image.load("skier.png")
ice_img = pygame.image.load("ice_block.png")
flag_img = pygame.image.load("finish_flag.png")
boost_img = pygame.image.load("boost.png")  # 加速道具
shield_img = pygame.image.load("shield.png")  # 护盾道具
magnet_img = pygame.image.load("magnet.png")  # 磁铁道具
slow_img = pygame.image.load("slow.png")  # 减速道具# 加载背景音乐
pygame.mixer.init()
welcome_music = pygame.mixer.Sound("welcome_music.mp3")
game_music = pygame.mixer.Sound("game_music.mp3")
end_music = pygame.mixer.Sound("end_music.mp3")# 设置音乐音量
welcome_music.set_volume(0.5)
game_music.set_volume(0.5)
end_music.set_volume(0.5)# 视频帧转换函数
def get_video_frame():ret, frame = video.read()if not ret:video.set(cv2.CAP_PROP_POS_FRAMES, 0)ret, frame = video.read()frame = cv2.resize(frame, (WIDTH, HEIGHT))frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)return pygame.surfarray.make_surface(frame.swapaxes(0, 1))# 玩家类
class Skier:def __init__(self):self.image = pygame.transform.scale(player_img, (60, 60))self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT-100))self.speed = 8self.shield = False  # 护盾状态self.magnet = False  # 磁铁状态self.boost = False  # 加速状态self.boost_timer = 0  # 加速剩余时间def move(self, direction):if direction == "left" and self.rect.left > 0:self.rect.x -= self.speedelif direction == "right" and self.rect.right < WIDTH:self.rect.x += self.speeddef update(self):if self.boost:self.boost_timer -= 1if self.boost_timer <= 0:self.boost = Falseself.speed = 8# 障碍物类
class Obstacle:def __init__(self):self.type = random.choice(["ice", "flag", "boost", "shield", "magnet", "slow"])self.image = self.get_image()self.image = pygame.transform.scale(self.image, (40, 40))self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20))self.speed = 5def get_image(self):if self.type == "ice":return ice_imgelif self.type == "flag":return flag_imgelif self.type == "boost":return boost_imgelif self.type == "shield":return shield_imgelif self.type == "magnet":return magnet_imgelif self.type == "slow":return slow_imgdef move(self):self.rect.y += self.speeddef main():skier = Skier()obstacles = []score = 0font = pygame.font.Font(None, 36)game_active = Falsewelcome_page = Truecurrent_music = Noneslow_timer = 0  # 减速剩余时间while True:# 事件处理for event in pygame.event.get():if event.type == pygame.QUIT:video.release()pygame.quit()returnif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:if welcome_page or not game_active:welcome_page = Falsegame_active = Truescore = 0obstacles = []skier = Skier()slow_timer = 0# 欢迎页面if welcome_page:if current_music != welcome_music:pygame.mixer.stop()welcome_music.play(-1)current_music = welcome_musicbg_surface = get_video_frame()screen.blit(bg_surface, (0, 0))title_font = pygame.font.Font(None, 72)title_text = title_font.render("哈尔滨冰雪大冒险", True, (255, 255, 255))title_rect = title_text.get_rect(center=(WIDTH//2, HEIGHT//3))screen.blit(title_text, title_rect)tip_font = pygame.font.Font(None, 36)tip_text = tip_font.render("按空格键开始游戏", True, (255, 255, 255))tip_rect = tip_text.get_rect(center=(WIDTH//2, HEIGHT//2))screen.blit(tip_text, tip_rect)# 游戏进行中elif game_active:if current_music != game_music:pygame.mixer.stop()game_music.play(-1)current_music = game_musicscreen.blit(game_bg, (0, 0))# 玩家控制keys = pygame.key.get_pressed()if keys[pygame.K_LEFT]:skier.move("left")if keys[pygame.K_RIGHT]:skier.move("right")# 生成障碍物和道具if random.random() < 0.05:obstacles.append(Obstacle())# 更新障碍物和道具for obstacle in obstacles[:]:obstacle.move()if skier.rect.colliderect(obstacle.rect):if obstacle.type == "ice":if not skier.shield:game_active = Falseelse:skier.shield = Falseelif obstacle.type == "flag":score += 50elif obstacle.type == "boost":skier.boost = Trueskier.speed = 12skier.boost_timer = 300  # 加速持续5秒elif obstacle.type == "shield":skier.shield = Trueelif obstacle.type == "magnet":skier.magnet = Trueelif obstacle.type == "slow":slow_timer = 300  # 减速持续5秒obstacles.remove(obstacle)if obstacle.rect.top > HEIGHT:obstacles.remove(obstacle)if obstacle.type == "ice":score += 10# 磁铁效果if skier.magnet:for obstacle in obstacles[:]:if obstacle.type == "flag":dx = skier.rect.centerx - obstacle.rect.centerxdy = skier.rect.centery - obstacle.rect.centerydistance = math.hypot(dx, dy)if distance < 200:  # 吸引范围obstacle.rect.x += dx * 0.1obstacle.rect.y += dy * 0.1# 减速效果if slow_timer > 0:slow_timer -= 1for obstacle in obstacles:obstacle.speed = 2else:for obstacle in obstacles:obstacle.speed = 5# 更新玩家状态skier.update()# 绘制玩家和障碍物screen.blit(skier.image, skier.rect)for obstacle in obstacles:screen.blit(obstacle.image, obstacle.rect)# 显示得分和状态score_text = font.render(f"得分: {score}", True, (255, 255, 255))screen.blit(score_text, (10, 10))if skier.shield:shield_text = font.render("护盾: 激活", True, (0, 255, 0))screen.blit(shield_text, (10, 50))if skier.magnet:magnet_text = font.render("磁铁: 激活", True, (0, 255, 255))screen.blit(magnet_text, (10, 90))if skier.boost:boost_text = font.render("加速: 激活", True, (255, 0, 0))screen.blit(boost_text, (10, 130))if slow_timer > 0:slow_text = font.render("减速: 激活", True, (255, 255, 0))screen.blit(slow_text, (10, 170))# 游戏结束界面else:if current_music != end_music:pygame.mixer.stop()end_music.play(-1)current_music = end_musicbg_surface = get_video_frame()screen.blit(bg_surface, (0, 0))end_text = font.render(f"游戏结束!最终得分: {score}", True, (255, 255, 255))screen.blit(end_text, (WIDTH//2-150, HEIGHT//2))restart_text = font.render("按空格键重新开始", True, (255, 255, 255))screen.blit(restart_text, (WIDTH//2-100, HEIGHT//2+50))pygame.display.update()clock.tick(60)if __name__ == "__main__":main()
View Code

总结:

deepseek的代码输出能力完全没有问题,对于需求的分析也很精确。给出的修改提示和建议也非常有用。我的结论,deepseek完全可以作为生产力工具给程序员提供更快的代码输出,也可以帮助程序员学习新的知识点,通过项目一点点增加功能打磨代码。

最后给出我最终的代码(我没有加上更多元素)

https://github.com/edzjx/snows-deepseek

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

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

相关文章

2.1.5 节省内存

首先来介绍一下可变对象和不可变对象可变对象:整数,浮点数,字符串,元组等 不可变对象:列表,字典,集合等然后看一下Python中内存分配的方式 执行x=1会发生什么?此时,内存会分配一个地址给1,1是一个整型对象,而x是一个引用(不是对象!),指向1所在的位置,并不占用实…

ABC392E翻译

AT_abc392_e [ABC392E] Cables and Servers 题目描述 有编号从 \(1\) 到 \(N\) 的 \(N\) 台服务器和编号从 \(1\) 到 \(M\) 的 \(M\) 根电缆。 电缆 \(i\) 双向连接服务器 \(A_i\) 和服务器 \(B_i\)。 通过进行以下操作(可以是 \(0\) 次),使得所有服务器之间都能通过电缆相互…

【外贸】集装箱的规格

集装箱类型(以米为单位)集装箱类型 外部尺寸(长宽高) 内部尺寸(长宽高) 容积(立方米) 载重(公斤)20英尺标准集装箱 6.1m 2.44m 2.59m 5.9m 2.35m 2.39m 33 28,00040英尺标准集装箱 12.2m 2.44m 2.59m 12m 2.35m 2.39m 67 26,50040英尺高柜集装箱 12.2m 2.44…

PriorityBlockingQueue 的put方法底层源码

一、PriorityBlockingQueue 的put方法底层源码 PriorityBlockingQueue 的 put 方法用于将元素插入队列。由于 PriorityBlockingQueue 是一个无界队列,put 方法不会阻塞,总是会成功插入元素 1、put 方法的作用将元素插入队列。由于队列无界,put 方法不会阻塞,总是会成功插入…

深度剖析多任务模型 QAT 策略

本文为笔者个人见解,如有不同意见欢迎评论1.引言 为了节省端侧计算资源以及简化部署工作,目前智驾方案中多采用动静态任务融合网络,地平线也释放了 Lidar-Camera 融合多任务 BEVFusion 参考算法。这种多任务融合网络的浮点训练策略可以简述为: 首先在大量数据的条件下完成多…

猫步简历 - 开源免费AI简历生成器 | 一键导出PDF/JSON

猫步简历是一款免费开源的AI简历生成与制作神器,旨在帮助求职者轻松创建独特、优美且专业的简历。无论是应届毕业生、职场新人,还是资深专业人士,猫步简历都能满足您的需求。它支持导出超高清PDF、图片、源码级JSON数据等多种格式,并提供AI智能创作、AI语种切换、AI润色等强…

老年人能力评估uni-app

登录界面 (https://img2024.cnblogs.com/blog/3474174/202502/3474174-20250219211712486-62129844.png) 老年人信息界面添加老年人信息界面这个不知道哪里写错了,选择器的选项看不到。我本来想和web端一样,用弹出对话框来添加老年人信息的,结果整了半天,对话框弹不出来,然…

ICLR 2025 时间序列

1. TimeMixer++: A General Time Series Pattern Machine for Universal Predictive Analysis 链接:https://openreview.net/forum?id=1CLzLXSFNn 关键词:多任务(预测,分类,插补,异常检测)、基础模型 TL;DR:TimeMixer++ 是一种时间序列模式机器,它采用多尺度和多分辨…

用于 Qt 的 OpenCV 编译 (CMake 方式) 问题解决

本文主要参考 《QT+opencv源码编译》:https://blog.csdn.net/m0_49156395/article/details/135721596 详细步骤请阅读上面文章,本文主要着重强调其中的关键步骤。 一、Configure(CMakeList.txt)和 generate(Makefile) 过程(11)先进行初次Configure "Where to build th…

【硬件测试】基于FPGA的2ASK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

1.算法仿真效果 本文是之前写的文章基于FPGA的2ASK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR的硬件测试版本。在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。硬件ila测试结果如下:(完整代码运行后无水印…

即将迎来全民编程时代

最近,我的这种情绪现在越来越强烈了。 还记得我刚开始使用AI辅助编程的时候,写出来的代码能运行就不错了,还别想着要他理解需求和修改bug了。直到2024年年底到2025年年初这短短两个多月的时间,我对它的想法变成了,它是我们的编程搭子,甚至可以说是免费劳动力了。 再试编程…

.net8:拦截器Interceptors

在C#12中,引入了拦截器,但一直是试验性的功能,所以自己初步看了一下,没有写文章,最近在看AOT时,发现Dapper.AOT已经用上了这个功能,觉得还是整理一下,分享出来吧,如果以后这个功能改变了,或移除了,请无视这篇文章。下面是微软官方文档的提示:拦截器是一项试验性功能…