问题标签 [mud]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ASCII 颜色到 HEX 颜色
我是老式 MUD 的建造者。我的任务是制作一个基于网络的房间/对象/移动编辑器。这对我来说没问题,而且几乎完成了。我唯一的问题是颜色图表。我不确定如何将 ASCII 颜色从 Lope 的颜色系统转换为 HEX 值以在 CSS 中使用。
例如,红色定义为:
我不确定如何在 Hex 中将其更改为红色以用于 CSS,以及哪种阴影(lope 的颜色系统中有两种红色阴影。一种深色,一种浅色。大多数颜色相同)。
有谁知道从一个转换到另一个的方法?
python - 根据用户输入进行循环,然后将结果保存为 Python 中的 MUD
我正在尝试做两件事:
在 python 中创建一个循环,为用户提供 4 个可能选项的提示;输入“1”、“2”、“3”或其他任何内容。如果用户选择 1、2 或 3,则会显示文本。如果用户输入任何其他内容,他们会看到文本,并再次提示。如此重复,直到他们输入 1、2 或 3。
然后我想从用户那里获取输入以在该循环之外使用并继续游戏。
到目前为止我的解决方案:在我发布我的代码之前,我将描述它,我基本上已经将我想要的所有代码放在一个没有参数的函数中的循环中。然后我在 else 语句中调用该函数。
代码在做什么:代码按照我想要的方式循环,但我不知道如何根据用户输入的内容“跳出”循环以继续。我知道它必须是一个回报,但我想我不知道把它放在哪里。
我尝试过的:发布调用我输入的函数:
并从那里继续,但这不起作用。
编码:
我如何才能将输入用于决策以将其用作保持游戏继续进行的条件?
python - 异步获取用户输入并传递给python中的事件循环
我正在构建一个单人 MUD,它基本上是一个基于文本的战斗游戏。它没有联网。
我不明白如何收集用户命令并将它们异步传递到我的事件循环中。玩家需要能够在游戏事件触发时随时输入命令。因此,使用 raw_input 暂停该过程是行不通的。我想我需要做一些类似 select.select 和使用线程的事情。
在下面的示例中,我有一个 userInputListener() 模型函数,我喜欢在其中接收命令,如果有输入,则将它们附加到命令 Que。
如果有一个事件循环,例如:
我如何在那里获得我的用户输入?
或者更简单地说,任何人都可以向我展示在另一个循环同时运行时存储用户输入的任何示例吗?如果我们能走到那一步,我可以弄清楚其余的。
java - 在 JVM 应用程序中托管非 JVM 语言
我正在寻找一些方向来学习如何从 Java 托管其他语言。到目前为止,我已经找到了 JSR 223 和 Bean Scripting Framework 之类的东西,但我的知识和经验不足以告诉我这些是否是合适的起点。
该应用程序是一个泥浆,其中游戏系统作为连接(通过套接字)到基于 JVM 的服务器的服务运行。
理想情况下,我希望我的泥浆能够处理所有网络,因此我正在考虑编写一个小型网络模块,它可以从任何语言或至少一些流行语言加载代码。当有人想编写游戏模块时,他们会使用我的网络模块并将其与他们的代码打包在一起。在启动时,我的网络模块加载他们的代码并与我的服务器对话。
例如,一个游戏开发者在 Lua 中编写了一个战斗程序。我希望连接到我的服务器的网络程序通过“加载”它(以某种方式)来“托管”这个 Lua 代码。我不希望将 Lua 嵌入到我的 Java 程序中(Jython、JRuby 等也是如此),因为我寻求更通用的解决方案,但是我理解这是否不切实际。
我正在使用这种方法,因此开发人员可以用任何语言编写游戏系统。
我也考虑过诸如 Bridge RPC 之类的服务,但我更喜欢不依赖于特定供应商的解决方案。
python - Python 太慢 - 我可以在较低级别和 cp 脚本中重写引擎吗?
所以,首先。这是我的服务器引擎。吉尔穆德.py!
好的,这是我以前的小说大小帖子的缩短版本。
上面的链接是我们的 MUD 的 Python 服务器引擎。注意第 73-75 行和第 359 行
...
您可能会看到为我们提供大约 100 名玩家和 2000 个怪物/NPC“生命”所需的可怕方法。tick() 检查他们是否会移动或捡起物品,或者他们是否在战斗中或成为目标等。当然,玩家也一样,减去一些自动化的东西。
有什么方法可以用 C++ 重写这个模块的一部分或全部,以获得更好的性能?目前,我们需要的 0.1 秒滴答声在我们现在使用的方法中使用 python 大约为 3 秒。
(此外,我们尝试了几种不同的线程类型和无堆栈。没有任何效果)。
在此先感谢您的帮助!欢迎任何建议!
python - Python 绘制 ASCII 地图
我需要在我用 python 构建的 MUD 中从玩家的当前房间绘制 2 半径地图(或更多,如果可能的话)。房间被设置为容器,self.exits = {'west':1, 'north':2}
其中键是值(相邻房间的 UID)所在的方向。房间仅以这种方式链接。self.location 为 0 的玩家可以输入 'n' 并且他们的位置,基于上面的变量,然后是 2,并且那个房间的内容将有玩家的 UID 附加到它的内容。
因此,我希望根据上述变量显示如下所示的地图,其中“u”是玩家的当前位置。
我已经完成了这部分,因为这只是 1 的半径。这是我如何执行此操作的一小段(经过大量修改以在此处发布),您会看到我发布的原因,因为它的代码很差。
在我的精神错乱中,我设法在所有 8 个不同的方向(对角线,不包括向上或向下)上完成了这项工作。但是我必须循环我刚刚用我的第一个 for 循环解析的房间,然后绘制它们,然后将它们全部隔开,然后考虑到 (sp)ace 的重叠,例如 '\' 或 ' |' 如果有相互交叉的路径。这个小任务立刻变成了噩梦,在我完成之前就变成了 200 行。
另一个障碍是我只能逐行打印。所以如果地图是 50 个字符高,我必须有player.hear()
50 行,我不反对。在发布答案之前请记住这一点。
我对格式也不挑剔。我只是想要一个“一目了然的地图”来帮助玩家在世界各地旅行。
多谢你们。我希望我提供了足够的信息。让我知道,如果没有。(这是我引用的整个(未完成和可怕的)模块的链接。Map.py
python - Python -- time.sleep() 按代码持续时间偏移
我有一个函数可以为我的游戏服务器中的所有玩家和对象运行 tick()。我通过每 0.1 秒循环一组来做到这一点。我需要它是一个坚实的.1。很多时间和数学取决于这个暂停尽可能精确到 0.1 秒。为此,我将其添加到刻度线:
我的问题是,这是最好的方法吗?如果我的循环持续时间是 0.01,那么 time_lapsed == 0.01 ... 然后睡眠时间应该只有 0.09。我问,因为它似乎不起作用。前几天我开始收到服务器超载的消息,服务器绝对没有超载。关于“动态”控制睡眠的好方法有什么想法吗?也许有另一种方法可以在不睡觉的情况下每十分之一秒运行一次代码?
java - Java 的 NIO2 API 是否可以替代使用 NIO 编写单线程多路复用服务器?
我正在学习如何使用NIO写一个泥(我不排除高级库,但我也想学习低级操作)。
在我的阅读中,我了解了 NIO2。因为我已经在这个项目中使用了 Java 7,所以我想知道我用来编写单线程多路复用服务器的 NIO 操作是否不会在 NIO2 中被替换——也就是说,可能会变得更简单。据我所知,NIO2 的相关部分是它的异步类。但是,我没有足够的经验来知道这些是必要的还是只是我不一定需要的不同/新的抽象来代替基本的多路复用器。
function - 我有两个 scala 项目 - 基本相同 - 一个有效,一个无效。有人能告诉我为什么吗?
对于课堂,我们必须制作一个基于测试的游戏,在这个游戏中,我们穿过一系列房间,比如老式的文字游戏 Colossal Cave Adventure。
我首先定义了不同房间的功能,以便在房间中输入方向时可以轻松切换。
以下代码大部分时间都在 REPL 中工作,但我希望它每次都能工作:
并且以下代码在 REPL 中根本不起作用:
有人可以帮我吗?我整天都在尝试不同的事情,但我似乎无法让它发挥作用。为什么第一个有时会起作用,而不是总是起作用?为什么第二个永远不起作用?每次运行时如何让第二个工作?
谢谢你。
java - 多维数组中的Java空指针异常
好吧,第一次在这里发帖,所以如果我做错了什么就对我大喊大叫,但我有以下代码,试图为那些老派圈泥中的一个做一个区域建设者的交易。但是我不断收到一些空指针错误。我已经在这个问题上搜索和修改了几个小时,我认为是时候尝试一下其他东西了:P
目的是创建一个 3D 数组来存储房间实例。如果你熟悉泥的房间有一个词缀列表,特别是这个有一个三维网格,用于每个房间的坐标,传递图形的艺术标签。然后,该数组将用于在 JPanel 上显示每个高度的楼层的 2D 网格,并根据房间的退出状态使用标签图片。问题似乎是,要么。构造函数没有设置我的变量,这似乎不太可能 b。我用错了(很可能是因为我对java并不熟悉)或c。我忽略了一些非常容易的错误。
每当我尝试访问 Rooms 类中的变量时,就会出现错误。
错误列表: