• 运行结果和预期结果不一样


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 2401_84322390 2024-04-12 16:07 采纳率: 0% 浏览 4 首页/ 编程语言 / 运行结果和预期结果不一样 python贴图 刚刚接触,想写一个外星人游戏,想要十个外星人但是用上面的代码只生成了一个,求解答😊 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • Kwan的解忧杂货铺 Java领域优质创作者 2024-04-16 12:38
      关注

      中午好🌞🌞🌞
      本答案参考ChatGPT-3.5

      问题描述:运行代码生成外星人时只生成了一个外星人,而不是按预期生成十个外星人。 问题分析:在生成外星人时,代码只创建了一个外星人,然后将其坐标随机在十个位置中选一个,因此只生成了一个外星人。需要每次都创建新的外星人实例对象。 解决方案:

      1. 在创建外星人时,每次都要创建新的实例对象而不是重复利用同一个对象。

      2. 将for循环嵌套改为两个独立的for循环。 修改后的代码如下:

        def creat_al(self): # 创建10个外人和外人的门随机坐体 set1 = set() for i in range(0, 10): num=random.randint(0,800) set1.add(num) for a in set1: alien=Alien(self) alien.rect.x=a self.aliens.add(alien) print(set1)

        if name == "main": # 实例化游戏 ai = AlienInvasion() ai.run_game()

      注意:在修改代码时请确保缩进正确。

      评论
    • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-12 16:07
      关注

      引自免费微信小程序:皆我百晓生

      看起来你在尝试创建一个包含10个外星人的列表,但代码中的问题在于你将所有外星人的x坐标都设置为了set1中的每个元素。实际上,你应该在每次循环中为新的外星人选择一个新的随机坐标。下面是修改后的代码:

      import random
      
      class Alien:
          def __init__(self, parent):
              self.rect = None  # 假设你有一个名为rect的属性,用于表示外星人的矩形区域
      
      def create aliens(screen):
          aliens = pygame.sprite.Group()
      
          for _ in range(10):  # 使用 "_" 作为占位符,因为我们并不关心迭代变量
              alien = Alien(screen)
              x = random.randint(0, 800)  # 为每个外星人选择一个新的随机x坐标
              alien.rect.x = x
              aliens.add(alien)
      
          return aliens
      
      if __name__ == "__main__":
          screen = pygame.display.set_mode((800, 600))  # 假设这是一个pygame屏幕实例
          aliens = create_aliens(screen)
          # 现在你可以继续处理这些外星人,比如更新它们的位置、渲染它们等
      

      这段代码首先定义了一个简单的Alien类,并创建了一个名为create_aliens的函数,它会创建并返回一组(Group)外星人对象。在这个函数中,我们使用了random.randint(0, 800)来为每个新创建的外星人生成一个随机的x坐标。这样就能确保每个外星人都有各自的坐标了。

      注意:这个代码片段假设你正在使用Pygame库来开发游戏。如果你没有安装Pygame,你需要先安装它,可以使用pip install pygame命令进行安装。同时,这里还假设你已经定义了一个名为screen的游戏窗口。如果没有,你需要根据你的项目来创建一个。

      展开全部

      评论 编辑记录
      2401_84322390 2024-04-13 21:25

      怎么样才能使坐标不重复,用集合?

      回复
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    Linux常见指令
    基于springboot,vue旅游信息推荐系统
    点云从入门到精通技术详解100篇-基于激光雷达点云的路面破损检测
    linux中在vscode中使用docker
    【mysql】—— 复合查询
    C++--简单实现定长内存池
    KVB:黄仁勋的职业智慧——找到一门技艺,用一生去完善、磨炼!
    网络协议模型
    Redis的淘汰策略
    【软件工程】介绍
  • 原文地址:https://ask.csdn.net/questions/8087427