PacMan:主要使用哪种启发式方法?
在A*,BFS,DFS等旁边,其他在Pacman中通常使用的其他良好路径找到算法/启发式方法是什么?我认为,如果有多个水果可以找到Pacman的水果,我提到的人不会有效. 我需要一些良好的路径调查算法,Pacman可以用这些算法来完成迷宫,并以最小可能的步骤计数.我试图四处寻找指南,但到目前为止还没有运气. a*随处可见曼哈顿的距离,但它只能与一个(或两个?或最多只有几个?)水果一起使用的迷宫. 顺便说一句,假设周围没有鬼魂,请保持简单. 来自原始Pacman问题的一些示例: first , 解决方案 您评论说您正在寻找最短路径.这个问题是 tsp 在平面图上://en.wikipedia.org/wiki/np-hard" rel =" noreferrer"> np-hard . A*可能可以解决问题的启发式功能,但不能允许发现的路径不能保证是最佳的]: 曼哈顿从所有水果到代理商的距离总和. 您也可以使用#fruits的可再生启发式 - 但需要很
10 2024-01-23
编程技术问答社区
最小化算法的java中的树状表示法
我想在Java中实现Minimax算法. 我找不到一个好的树代表.有现有的还是我自己做的? 顺便说一句,这是Pacman游戏 谢谢 解决方案 您不需要一个. 经常用树说明最小算法. 但是,该树代表算法选择最佳动作的步骤.它不是算法持有的数据结构. 相反,您将使用迭代和递归.在树的每个内部节点上,您都会迭代孩子,并在每个孩子上使用递归.
12 2023-10-26
编程技术问答社区
如何在Java中把一个图像带到前台?
我正在尝试在Java创建Pacman游戏,到目前为止,我已经显示了背景图像(蓝色和黑色迷宫),但是我很难显示Pacman的图像.当我尝试以与我展示背景相同的方法显示他时,除非我稍微手动更改Jframe的大小,否则他不会出现.即使那时,当他出现时,他的图像的右下角都有一个小的白色正方形.我该怎么办来解决这个问题?还有其他方法可以在有效的情况下插入pacman图像吗? 这是代码: JFrame window = new JFrame(); ImageImplement pacman = new ImageImplement(new ImageIcon("C:\\Users\\16ayoubc\\Desktop\\Pacman-moving.gif").getImage()); ImageImplement panel = new ImageImplement(new ImageIcon("C:\\Users\\16ayoubc\\Desktop\\backgro
0 2023-10-11
编程技术问答社区
吃豆人开/关嘴部动画
我想使用最简单的方法使Pacman打开/关闭嘴巴动画. 这是我最近的代码:问题是什么都没有发生? package ordner; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class PacMan implements ActionListener { private JFrame frame; private DrawPanel panel; private void initGui() { frame = new JFrame("Pacman"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel = new DrawPane
28 2023-10-11
编程技术问答社区
SVG吃豆人中的鬼眼在Firefox中能正确呈现,但在其他浏览器中却不能。
我的svg pacman的github存储库可在此处找到: SVG-PACMAN 您可以在这里看到它:绘制鬼魂的功能在这里: function drawGhost(x, y, color, id, transparent) { //Duhovi su geometrijski likovi omedeni crtama (dno) i kubicnom Bezierovom krivuljom (vrh). if (/Firefox/.test(navigator.userAgent)) { var svg = document.createElementNS(XML_namespace_of_SVG, "svg"); svg.setAttribute("x", x - 8); svg.setAttribute("y", y - 16); var pat
2 2023-10-06
编程技术问答社区
如何使用pygame在迷宫中随机移动物体?
这是Pac-Man的代码.我已经有一个动人的pacman和带有鬼魂的碰撞,但是我不知道如何使它们随机移动在地图上.我不需要他们追逐Pac-Man,只是为了随机滑过地图并在墙上撞到方向时改变方向.我还想知道,当他与鬼相撞时,我怎么能使他死去. import pygame pygame.init() tela = pygame.display.set_mode((1000, 560)) jogo = True class Tabuleiro: def __init__(self, tela, x, y): self.x = x self.y = y self.tela = tela self.maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 1,
2 2023-07-14
编程技术问答社区
我如何让我的python代码删除我的Pac man游戏中的药片?
我的pacman代码使所有细胞都会切换,因此当我通过pacman穿过药丸时,他不吃它,只会忽略它们并改变位置. 我希望药丸在穿过它们时消失,做一个计数器并将分数放在屏幕上,但我不知道该如何切换位置. import pygame import random from pygame.constants import * pygame.init() tela = pygame.display.set_mode((1000, 560)) class Tabuleiro: def __init__(self, tela, x, y): self.x = x self.y = y self.tela = tela self.maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0,
20 2023-07-14
编程技术问答社区
能够使用DFS找到路径,但不能指定正确的方向给Pacman _ Python
我正在从事伯克利网站的AI课程页面上找到的作业.我需要对Pacman游戏进行深度优先的搜索,以便可以找到自己的路径.问题是Pacman被卡住了.我将首先粘贴代码,以使我说的话更清楚: import util class SearchProblem: """ This class outlines the structure of a search problem, but doesn't implement any of the methods (in object-oriented terminology: an abstract class). You do not need to change anything in this class, ever. """ def getStartState(self): """ Returns the start state for the search problem ""
38 2023-07-08
编程技术问答社区
吃豆人:眼睛怎么找到回怪物洞的路?
我发现了Pacman中幽灵的AI的很多参考,但他们都没有提到在Pacman吃了鬼魂后,眼睛如何回到中央鬼洞. 在实施中,我实施了一个简单但可怕的解决方案.我只是在每个角落都进行了硬编码. 有更好的/或最好的解决方案吗?也许是一种具有不同级别设计的通用型号? 解决方案 实际上,我会说您的方法是一个很棒的解决方案,与任何类型的探路相比,几乎零运行的时间成本. 如果您需要它概括为任意地图,则可以使用任何探路算法 - 宽图搜索很容易实现,并以此来计算游戏前每个角落在每个角落进行编码的方向运行. 编辑(2010年8月11日):我刚刚转到PACMAN系统上的一个非常详细的页面: pac-man档案,并且由于我在这里有接受的答案,所以我觉得应该对其进行更新.该文章似乎并没有明确涵盖返回怪物房屋的行为,但它指出,Pac-Man中的直接路线是以下情况: 继续朝下一个十字路口迈进(尽管这本质上是一个特殊情况. 在十字路口,请查看相邻的出口正方形,除了您刚刚来自; 选择
6 2023-05-21
编程技术问答社区
吃豆人的寻路算法
我想实施游戏pacman.对于AI,我正在考虑使用A*算法,并在众多论坛上看到它.但是,我首先搜索了一些简单的探路(从点A到B点B具有某些障碍物),并发现它总是给出了最佳路径.我想这可能是因为在像Pacman这样的游戏中使用简单的探路,图中没有成本的概念.因此,如果我使用bfs而不是*在Pacman中进行探路,可以吗? 解决方案 对于路径找到,请注意以下 bfs将比一个* will的节点要多得多,这使它慢得多 a*将与BFS相同的答案 a*真的很容易实施 使用曼哈顿距离有效的搜索 看 heuristics.html 有关更多信息(整个系列真的很有趣) 如果您在谈论幽灵AI,请查看页面上提到的页面: Pac -Man Dossier - 幽灵实际上只是在确定如何进入目标瓷砖时使用欧几里得距离,这使他们在某些情况下很难找到Pac Man. 其他解决方案 好吧,这取决于,您实际上想让幽灵像在Pac-Man一样工作吗? 这是关于Ghosts ghosts
16 2023-05-21
编程技术问答社区
将jLabel移动到jPanel的不同位置(类似于吃豆子的游戏)。
我正在制作像Pacman这样的游戏,到目前为止,我才从网格开始.我开始启动网格,但我需要弄清楚如何将某些东西移至网格中的另一个位置,以便用户单击或我的幽灵移动时,它将显示在屏幕上.我该如何移动?我尝试了很多不同的方式,但没有任何方法对我有用. import java.awt.*; import javax.swing.*; import javax.swing.border.BevelBorder; public class GUI { public static void main(String[] args) { final JFrame f = new JFrame("Frame Test"); GridLayout Layout = new GridLayout(50,50); JPanel panel = new JPanel(new GridLayout(50, 50, 1, 1)); //Not sure if I need
22 2023-04-01
编程技术问答社区
在制作pacman时遇到一些问题?
编辑:完全忘了提到我在Java中编码 我确实很难制定某种检测系统或某种方式使我的Pacman Sprite/角色在游戏中通过板顺畅地移动.我没有制作木板是图像. 我首先尝试了颜色检测,这效果最好,但根本不光滑,而且很不稳. 然后,我尝试不允许输入位置的手动输入坐标.这也不能很好地奏效. 我目前正在尝试让程序使用颜色检测并检查一个单独的看不见的板,以查看我是否仍在路径上.这是迄今为止失败的.看来这将是最聪明的,但是角落很富裕,很难通过调整图像来修复. 我想知道你们对这样的任务的建议. 解决方案 存储"旧学校"游戏板的一种典型方法是使用char或int 多维数组.使用 Matt的出色小图形您可以看到21 by 21 by 21板上的21个正方形: int board[21][21] = {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
32 2023-03-27
编程技术问答社区
吃豆子java移动问题
我现在正在处理的Pacman运动遇到了一个小问题. 我似乎找不到一种与原始的Pacman运动相似的方法.为了解释我希望它如何移动,我已经上传了这张照片. 现在,我使黄色矩形和蓝色墙壁之间的碰撞工作.问题是当我像图片中的左移动时,我单击向上箭头,它不应停止,而是继续移动,然后在有自由空间时向上移动. 现在,如果您单击这样的向上箭头,则黄色矩形将停止: 已经上传了我的Pacman课程,其中包含我的运动,并在检测到碰撞时从董事会类中进行代码. pacman class public class Pacman { private String pacmanup = "pacmanup.png"; private String pacmandown = "pacmandown.png"; private String pacmanleft = "pacmanleft.png"; private String pacmanright = "pacmanright
26 2023-03-18
编程技术问答社区
如何使用JLayered Pane在另一个图像上显示一个图像?
我们正在制作Pacman游戏,我们想在背景之上添加Pacman的图片. 如果有人可以提供一些实施j layered窗格的示例代码,那将是很棒的. 这是我们尝试编写的一些代码.当我们尝试运行它时,什么也没有显示: JLayeredPane pacman = new JLayeredPane(); pacman.setPreferredSize(new Dimension(576, 655)); ImageIcon sprite = new ImageIcon("C:\\\\Users\\\\16ayoubc\\\\Desktop\\\\Pacman-moving.gif"); ImageIcon background = new ImageIcon("C:\\\\Users\\\\16ayoubc\\\\Desktop\\\\background.png"); JLabel pacmansprite = new JLabel(spr
14 2022-11-23
编程技术问答社区
输入错误。没有名为sklearn.feature_extraction.text的模块
我使用 python 2.7 和 pacman 包管理器,并使用它安装 sclearn.但是当我遇到 ImportError 时: >>> from sklearn.feature_extraction.text import TfidfVectorizer Traceback (most recent call last): File "", line 1, in ImportError: No module named sklearn.feature_extraction.text 我该如何解决这个错误? 解决方案 对于python 2,你应该可以使用这个命令来使用pacman安装: pacman -S python2-scikit-learn 确保包名中包含数字“2". 根据 scikit-learn 的安装指南,另一种安装方式是使用 pip: pip install --user --install-opt
1272 2022-08-11
编程技术问答社区