问题标签 [gridworld]
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.
javascript - 编程基于坐标的游戏,例如点或棋盘格
我希望学习一些关于笛卡尔几何或基于坐标的游戏编程的基础知识。平台无关紧要,尽管我最精通 JavaScript、C、Objective-C。最终能够创建诸如点或棋盘格之类的东西将是理想的。这个想法是让我了解精灵如何工作以及路径如何以编程方式工作。我对你们的问题是,学习基础知识的最佳地点在哪里?数学不是很重的东西,因为坦率地说,在这一点上,任何比微积分更高级的东西对我来说都是一条灰线,需要刷新我的记忆。
如果有特定的书籍、站点或开源项目——那可能对我帮助最大。
感谢您的任何想法。
java - 在我的寻路区域周围设置边界是否可以接受?
我目前正在使用 A* 寻路算法来计算无限网格上的路径(使用 Gridworld 中的 UnboundedGrid,AP CS 案例研究,如果对任何人有帮助的话)。一切都很好,除了因为末端节点完全被墙包围而没有有效路径的情况。正如预期的那样,算法继续无限搜索,永远找不到结束节点。
一个可能的解决方案是在整个寻路区域周围放置不可见的(如用户看不到但算法看到的)墙,确保开始节点、结束节点和所有墙节点都在这些范围内墙壁,有2-3个空格填充左右。就像是:
...想法是最终所有节点都将添加到封闭列表中,开放列表将变为空,此时我将知道不存在有效路径。
这似乎是解决问题的合理方法吗?有什么方法可能会出错吗?我知道另一种解决方案是同时从末端向后寻路,但这似乎可能很昂贵,特别是在末端节点没有那么紧密封闭的情况下。
java - 找不到符号符号:方法 process(WorkerAnt)
我正在为我的 Java 类做这个 AntFarm 项目。该项目由不同的类(Food、WorkerAnt、Queen)组成,它们使用接口(使用称为 process 的方法)相互交互。
http://ljhs.sandi.net/faculty/volger/apajava/GridWorld/Assignments/AntFarm/ - 项目
我目前坚持processActors()
使用WorkerAnt
. (它几乎在页面的底部。)
当前代码如下:
我得到的错误如下。
找不到符号符号:方法 process(WorkerAnt)
java - 如何将网络添加到我在 GridWorld 中制作的游戏中?
(GridWorld 作为 Collegeboard 的 AP 考试案例研究的东西)
所以,几年来我一直在空闲时间开发这款游戏,而且进展非常顺利。我有一个不错的 lil'stick 角色,它在网格中跑来跑去,捡起物品并与怪物和东西战斗。现在,我想我已经准备好将它提升到一个新的水平(无论如何我都有尽可能多的选择,因为我需要为我的网络课程制作一个项目,哈哈......),而且我'我对如何进步感到有些困惑。
过去我使用 ServerSocket 制作了一些程序,其中我有一个服务器正在运行,并且几个客户端可以连接到它并接收消息,但它们都是简单的文本程序,不会交换超过几个字符串。套接字是我正在考虑使用的,但我不知道如何设置它......
现在,当 GridWorld 运行时,它会自动弹出一个看起来像 JFrame 的东西,其中包含网格和其中的所有参与者。在包含所有代码的主源文件中,呃,“引擎”,如果你愿意的话,基本上有两个巨大的方法:step(),它控制每单位时间发生的事情,以及 keyPressed(),它控制用户按下按键时发生的情况。现在,我在想 step() 肯定需要在服务器端,而 keyPressed() 应该在客户端,还有窗口(当然——否则用户怎么能看到他们的内容呢?重玩?)这个想法是让控制所有 NPC 的动作和游戏计算的主游戏在服务器上只运行一次,
但是就像,我将如何拆分它?(或者如果这甚至是正确的方法?)我什至不确定如何在服务器和客户端之间来回传递数据 - 对于我提到的简单文本程序,我一直使用 PrintWriter 和 BufferedReader。我发现 PrintWriter 确实有一个 print() 方法可以接受任何对象,但是 BufferedReader 将如何接收它呢?它没有任何可以读取对象的方法。
所以基本上,我想知道服务器应该做什么、客户端应该做什么、我应该使用哪些库以及将某些功能放在哪里的所有细节。
java - (GridWorld) 世界的 setGrid() 没有正确重绘?
我正在尝试使用 GridWorld(来自 AP 计算机科学课程)制作游戏,但在使用多个网格时遇到了问题。World 的 setGrid 方法似乎不起作用。我的印象是您可以有多个网格对象共存,并且 World 指向的当前对象是在 GUI 中绘制的对象。但这不是发生的事情......当我调用 World 的 setGrid 并传递给它一个网格时,网格似乎只在逻辑上被设置,并且 System.out.printing 它给出了它的演员及其当前位置的正确结果,但是GUI 不会更新,您实际上看不到网格。
我写了一个简单的 ActorWorld 来说明这一点:
每一步都应该更改到另一个网格并显示它,所以基本上应该发生的是网格中的一个 Actor 将位置从 (1,1) 更改为 (9,9)。但实际上,它只是显示一个空网格(因为它使用的是在默认构造函数中创建的原始网格,因为我没有提供)。这是怎么回事?如何让它绘制当前网格?
java - GridWorld 实验室问题
我正在尝试创建一个代码,如果它是打开的,它将把一个演员移动到一个随机位置。但是,我在处理此行导致的错误时遇到了困难。
基本上我认为这条线会检查该位置是否开放。但是我收到此错误有人可以帮忙吗?
java - 如何围绕 NullPointerException 跳舞?
我正在尝试使用eclipse和gridworld检查游戏奥赛罗中的移动是否合法。我对位置做的第一件事是检查它是否有效,但为了检查有效位置,它必须不为空。问题是,它是合法移动的要求之一是它是空的/空的/未被占用的。我该如何避免这种情况?我已经指出了错误应该在哪里。(对不起,如果这让任何人感到困惑。)
java - 如何抛出和捕获 IllegalArgumentException?
所以基本上我有一个 GridWorld 项目,我现在正在我的 AP Comp Sci 课程中做。我在做吃豆人。这是我的 act 方法代码(对于那些不熟悉 GridWorld 的人,每次预期演员做出新动作时都会调用 act 方法):
最后两个 if 语句中的奇怪措辞的原因是因为我希望 Pacman 能够在真实游戏中传送。现在,当我运行游戏时,大约 90% 的时间它可以工作,但在另外 10% 的情况下,我得到一个 IllegalArgumentException bc,它说我正在尝试移动到一个不在棋盘上的地方(例如(9,-1 ) 和 (9,21))。我想知道如何接球或扔球,或者我需要做些什么来阻止这种情况的发生。我从来没有使用过 catch 或 throw 所以也请尝试解释你的推理谢谢!
java - Gridworld-你能添加声音吗?
就像标题一样。我想知道是否可以在后台播放歌曲,如果可以,代码是如何实现的?我无休止地用谷歌搜索无济于事。任何帮助,将不胜感激。
java - Gridworld 的 getDirectionToward(Location target) 方法有什么作用?
我正在尝试使用 Gridworld 进行作业,这是作为 AP CS 课程的一部分推出的案例研究。任何熟悉 Gridworld 的人都可以告诉我 getDirectionToward(Location target) 方法的确切作用吗?我想我需要将它用于我需要能够判断一个对象是否面向另一个对象的分配,但文档没有帮助,说明它“返回最接近目标的指南针方向”。我不确定这甚至意味着什么。谢谢