体验用ai做了个python小游戏
- 其他
- 2025-08-28 19:39:02

体验用ai做了个python小游戏 写在前面使用的工具2.增加功能1.要求增加视频作为背景。2.我让增加了一个欢迎页面。3.我发现中文显示有问题。4.我提出了背景修改意见,欢迎页面和结束页面背景是视频,游戏页面背景是静态图片。5.提出增加更多游戏元素。 总结: 写在前面
最近ai确实比较火。各种生成式AI,包括文字、图片、视频。之前听说ai生产代码能力比较强,一直想试试。所以及就有了本问
使用的工具deepinseek :用来生成python代码 即梦:用来生成图片素材 Remove.bg:用来对生成的图片素材去除背景 pixabay :用来下载音乐素材
#游戏建立步骤 ##1.设立游戏建立背景
我使用了深度思考 整个深度思索的过程,让我了解到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 = 8 def move(self, direction): if direction == "left" and self.rect.left > 0: self.rect.x -= self.speed elif 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_img self.image = pygame.transform.scale(self.image, (40, 40)) self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20)) self.speed = 5 def move(self): self.rect.y += self.speed # 游戏主循环 def main(): skier = Skier() obstacles = [] score = 0 font = pygame.font.Font(None, 36) game_active = True while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() return if 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 = False else: score += 50 obstacles.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 = True score = 0 obstacles = [] skier = Skier() pygame.display.update() clock.tick(60) if __name__ == "__main__": main()代码的完整度非常好,拷贝图片素材基本就可以运行了。代码中有注释,方便阅读代码。他还给出了后续的建议。游戏就是避障,然后接住游戏元素得分。碰到障碍物游戏结束,提示分数,提示按R键继续游戏。逻辑比较简单。
2.增加功能在这个基础上,我对deepseek提了一些要求,或者觉得有问题的让他解决。总体上都解决了。而且效果我认为满意。
1.要求增加视频作为背景。因为pygame是不支持视频元素的。我 看看deepseek怎么解决的哦,他比较了opencv和moviepy库,在小学生这个条件下,给出opencv更适合。这段深度思考部分,我觉得给出moviepy和opencv的比较逻辑有点欠缺。但是实际的思路还是比较清晰的使用第三方库从视频中取帧,然后绘制到pygame的surface上。
它还贴心的给出了如何安装opencv库,怎么引用素材
2.我让增加了一个欢迎页面。它的思路,通过设置变量,把游戏过程分为欢迎页,游戏进行中,游戏结束3个状态。逻辑没毛病。还贴心的提供修改说明和建议。
3.我发现中文显示有问题。提出了问题,deepseek也给出可行的解决方案,我使用了他给的方案2 ,因为自定义字体可以使得游戏画面更优。还贴心的给出了注意事项。
4.我提出了背景修改意见,欢迎页面和结束页面背景是视频,游戏页面背景是静态图片。5.提出增加更多游戏元素。
deepseek增加了加速道具,护盾道具,磁铁道具,减速道具。
总结:deepseek的代码输出能力完全没有问题,对于需求的分析也很精确。给出的修改提示和建议也非常有用。我的结论,deepseek完全可以作为生产力工具给程序员提供更快的代码输出,也可以帮助程序员学习新的知识点,通过项目一点点增加功能打磨代码。
最后给出我最终的代码(我没有加上更多元素)
链接: github /edzjx/snows-deepseek
体验用ai做了个python小游戏由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“体验用ai做了个python小游戏”
上一篇
15-最后一个单词的长度