首页 > 其他分享 >我更新啦!

我更新啦!

时间:2025-01-08 19:31:41浏览次数:8  
标签:self move 更新 WORLD world block SIZE


 
python
  
import random

# 定义方块的类型
BLOCK_TYPES = ["stone", "dirt", "grass", "wood", "diamond", "gold"]

# 方块的属性
class Block:
    def __init__(self, type_, hardness):
        self.type = type_
        self.hardness = hardness

# 游戏世界的大小
WORLD_SIZE = 10

# 玩家类
class Player:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def move_up(self):
        if self.y > 0:
            self.y -= 1

    def move_down(self):
        if self.y < WORLD_SIZE - 1:
            self.y += 1

    def move_left(self):
        if self.x > 0:
            self.x -= 1

    def move_right(self):
        if self.x < WORLD_SIZE - 1:
            self.x += 1

    def place_block(self, world, block_type):
        if 0 <= self.x < WORLD_SIZE and 0 <= self.y < WORLD_SIZE:
            world[self.x][self.y] = Block(block_type, random.randint(1, 10))  # 随机设置方块硬度

    def break_block(self, world):
        if 0 <= self.x < WORLD_SIZE and 0 <= self.y < WORLD_SIZE:
            if world[self.x][self.y] is not None:
                block = world[self.x][self.y]
                if random.randint(1, 10) > block.hardness:  # 模拟破坏方块的概率
                    world[self.x][self.y] = None

# 初始化游戏世界
world = [[None for _ in range(WORLD_SIZE)] for _ in range(WORLD_SIZE)]

# 随机生成初始的方块
for x in range(WORLD_SIZE):
    for y in range(WORLD_SIZE):
        world[x][y] = Block(random.choice(BLOCK_TYPES), random.randint(1, 10))  # 初始化方块时设置硬度

# 创建玩家,初始位置在世界中心
player = Player(WORLD_SIZE // 2, WORLD_SIZE // 2)

# 打印游戏世界的函数
def print_world():
    for row in world:
        print(" ".join([str(block.type if block else "Empty") for block in row]))

# 游戏主循环
while True:
    print_world()
    action = input("请选择操作(w:上,s:下,a:左,d:右,p:放置方块,b:破坏方块,q:退出): ")
    if action == 'w':
        player.move_up()
    elif action =='s':
        player.move_down()
    elif action == 'a':
        player.move_left()
    elif action == 'd':
        player.move_right()
    elif action == 'p':
        block_type = input("请输入要放置的方块类型: ")
        player.place_block(world, block_type)
    elif action == 'b':
        player.break_block(world)
    elif action == 'q':
        break
 
 
这个修改后的代码增加了玩家的移动操作、方块的硬度属性以及更丰富的用户交互。可以根据需要继续扩展和完善它。

点赞破40,光速更新!

<( ̄ c ̄)y▂

标签:self,move,更新,WORLD,world,block,SIZE
From: https://blog.csdn.net/TtCoffee_2025/article/details/144932436

相关文章

  • AI换脸:FaceFusion 3.1 重磅更新,支持DFM模型
    FaceFusion3.1迎来了全新的功能和优化,不仅为用户带来了更强大的换脸效果,还提升了整个应用的稳定性和操作体验。以下是此次更新的亮点:更新内容DeepFaceLive对模型的支持新增对DeepFaceLive模型的支持,使得面部交换效果更加精细、流畅。后备感知下载提供商引入了后备下载提供商,......
  • Spark 源码分析(一) SparkRpc中序列化与反序列化Serializer的抽象类解读 (正在更新中~)
    接上一章请先看解读序列化抽象类第一部分目录接上一章请先看解读序列化抽象类第一部分2.Java序列化实现类JavaSerializer(1)JavaSerializationStream类定义了一个java序列化流继承了SerializationStream抽象类代码实际例子1:序列化(2)JavaDeserializationStream......
  • MySQL表的增删查改(下)——Update(更新),Delete(删除)
    文章目录Update将孙悟空同学的数学成绩修改为80分将曹孟德同学的数学成绩变更为60分,语文成绩变更为70分将总成绩倒数前三的3位同学的数学成绩加上30分将所有同学的语文成绩更新为原来的2倍Delete删除数据删除孙悟空同学的考试成绩删除整张表数据截断表插入......
  • IIS中快速更新网站后端文件的脚本
    如下::约定的文件夹:publish,backup/yyyyMMdd_HHmmss,updatefiles@echooffsetlocalenabledelayedexpansion::获取当前日期和时间for/f"tokens=1-8delims=/:."%%ain('wmicosgetlocaldatetime^|find"."')do(setDATETIME=%%a)::......
  • 国内中文版 ChatGPT镜像网站整理合集【2025/1/8更新】
    一、GPT镜像网站① https://chatgpt-4-mirror-zh.github.io/ChatGPT/ 支持GPT4.0、4o以及o1,支持MJ绘画② https://github.com/chatgpt-4-mirror-zh/ChatGPT/ 支持GPT4.0、4o以及o1、o1pro 1.什么是镜像网站ChatGPT镜像网站(MirrorSite)是指通过复制原始网站内容和结......
  • openEuler升级到openssh9.9p1,openssl3.4.0(20250107更新)
    ​测试成功系统:       升级前最好在测试环境先本地测试后再使用       测试环境系统都是全新系统(只做了关闭firewalld,selinux等基础初始化操作,也可以使用我前面发的linux系统初始化脚本)       本次脚本支持离线安装和在线下载安装包安装   ......
  • 吴恩达Machine Learning课程学习笔记2(持续更新)
    3这是第二波笔记,即吴恩达的第二课:AdvancedLearningAlgorithms高级学习算法,会结合视频、ppt进行注释并补充笔记,欢迎交流学习,教程视频来自B站(P42-100,涵盖四周的课程:(超爽中英!)2024公认最好的【吴恩达机器学习】教程!附课件代码MachineLearningSpecialization_哔哩哔哩_bi......
  • 一个每日更新0day的漏洞库-错过后悔一辈子
     渗透测试0day漏洞库-威胁情报库-每日更新1day0day漏洞通知0x01简介         星球拥有1day/0day漏洞文库(每周一至周五更新1day/0day漏洞),2024漏洞文库已更新POC3500+(累计收集12w+的POC),如果你想学习更多渗透挖洞技术/技巧欢迎加入我们内部星球可获得内部工具字典和......
  • Electron如何增量更新?
    Electron的增量更新主要通过以下步骤实现:打包配置:首先,需要对Electron应用进行特定的打包配置。这通常涉及到使用electron-builder等打包工具,并配置相关的打包选项。例如,可以将web运行文件打包到app.asar.unpacked中,以便在需要时能够替换这些文件。同时,可以利用adm-zip等工具对ap......
  • 中文大模型(持续更新中)
    ​ChatGPT爆火之后,国内也出现了很多的大模型。总结常见的中文大模型,排名不分先后。阿里巴巴-通义系列AI通义系列通义千问开放时间:2023年9月13日面向公众开放。阿里旗下通义系列AI产品包括:1、通义千问:最早推出的产品之一,它是一款基于深度学习技术的超大规模语言模型......