gpt4 book ai didi

javascript - 用 JavaScript 表示地牢然后用怪物填充它的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 08:11:41 26 4
gpt4 key购买 nike

我正在尝试创建一个 MUD 作为练习 JS 的有趣项目(我是一个完全的菜鸟,但受到 codecademy 的启发,想学习更多!)我希望我能得到一些关于如何代表我的建议JS 中的地牢。

我希望我的地牢具有的功能是:

  1. 地牢应该有随机数量的房间(在指定参数内)
  2. 房间应该自动填充怪物
  3. (我们暂时可以忽略房间是如何连接的)

鉴于 JS 是 OO 语言,我认为表示地牢的最佳方式是作为一个对象:

var dungeon = {
var room1:roomA,
var room2:roomB,
var room3:roomC
}

//RoomX is an object created with the following constructor

function Room(){
this.description: "Some text",
this.monsters:[monster1,monster2,monster3],
this.treasure:[treasure1,treasure2,treasure3]
}

计划是为 Room 对象创建方法,允许玩家与房间中的东西进行交互。

问题:

1) 这是个好主意吗/行得通吗?

2) 如何为对象生成随机数量的属性?

谢谢!

最佳答案

这是一个相当开放的问题 - 有很多方法都可以同样“正确”地做到这一点。但有几点:

您的对象字面量语法无效 - 您需要从属性名称中删除 var 关键字,使其看起来像这样:

var dungeon = {
room1:roomA,
room2:roomB,
room3:roomC
}

但我认为您最好选择一系列房间:

var dungeon = [ roomA, roomB, roomC ];

因为这样您就可以轻松改变房间的数量。假设您以某种方式随机生成房间,您可以使用 dungeon.push(new Room()) 轻松地将新房间添加到数组中。

此外,如果碰巧您的房间位于规则网格中,您可能希望使用数组数组来表示:

var dungeon = [ [ roomA, roomB, roomC ],
[ roomD, roomE, roomF ],
[ roomG, roomH, roomI ] ];

这样右中间的房间将被访问为 dungeon[1, 2](第 1 行,第 2 列,注意数组索引是从零开始的)。

您函数中的赋值语法也不正确:您需要说

this.propertyName = someValue;
// NOT
this.propertyName : someValue;

冒号 : 用于对象字面量 { property : value } 语法中的属性创建,但等号 = 用于其他赋值 variableOrProperty = value

关于javascript - 用 JavaScript 表示地牢然后用怪物填充它的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com