返回首页

介绍
15洞的三角钉板游戏是一个现代版了自17世纪末以来,已在欧洲所扮演的游戏。赫伯特・史密斯在美国,在1891年专利三角版本的游戏。它也被称为挂纸牌或饼干桶难题。日益普及的难题餐厅把每个表上,等待他们的食物来取悦顾客。
这个程序允许你玩单人纸牌游戏拼图,也被称为PEG纸牌益智。游戏包括14钉在15洞保龄球瓶一样的三角形,但更多的行。一个三角形的空间是空的,对象是跳钉,取出一个萝卜跳,直到你离开了,只有一个。程序,事实上,实现了一个简单的回溯算法DFS寻找一个解决方案,从板件的当前处置。背景
该方案的主要原则是证明递归函数的概念,固有的递归问题回溯。它还提供了一个面向对象的法衣回溯,在一个可重复使用的所有回溯逻辑类的形式。 NBSP,在这个作业中,你会写一个程序,解决了一个经典难题,有时也被称为三角难题或挂纸牌。解决这一难题,将需要使用的技术称为回溯到搜索通过所有可能的动作,这是很容易实现使用递归序列。它如何工作:一般步骤
三角之谜是一家集组织成一个三角形,将它钉放置15洞,留下至少一个空洞。通常情况下,开始拼图代表洞只有一个洞,在配置(a)所示,其中实心圆圈代表钉,空圈。拼图的目的是使一个动作序列,每个举动,引起一个PEG被删除,这样,只有一个PEG仍。一个陀螺被删除,只能通过quot; jumpingquot,它与另一PEG。因此,只能作出一个合法的举动,如果有另一个PEG和一个洞,排列在一条线路两侧一个陀螺。例如,配置(二)所示配置(一)获得一个跳跃,然后(三)从(b)第二跳获得。{S0的}使用代码
我只是想给一个真正的代码的基本概况。在项目的源代码是很好的评价,应该很容易跟随鼠标事件上添加一些断点。
这是在这个挂纸牌解决方案所使用的算法。

DepthFirstSearch(Board b, Peg start)

{

      If (Grandchild.isEmpty())

            Jump();

            updateBoard(); //updates empty peg, location, etc.

      else

            backtrack();  // backtrack to previous and/or try right child

}

最主要的是董事会,这是一个ArrayListlt; TGT;一个的BitArray管理位值的压缩数组表示为布尔值,其中true表示位是打开的,这是(1)和false表示位是关闭的(0)。对于本场比赛的目的,真正的代表,PEG是当前和虚假表示一个空洞。下面是的功能InitializeBoard(),设立一个新的游戏板:
下面是一些介绍游戏板的代码。正如你可以看到代码中的:{C}游戏tree.java
 package play;

 import java.util.List;

 import java.util.ArrayList;

 import board.*;



  public class GameTree {

  GameTree level;

  GameBoard gb;

  List<GameTree> children = new ArrayList<GameTree>();



   public GameTree(GameBoard gb) {

            this.gb = gb;

      }



   public void addChild(GameTree child) {

            children.add(child);

      }



   public GameBoard getGameBoard() { return gb; }



   public boolean hasChildren() {

            return children.size() > 0;

      }



   public GameTree getFirstChild() {

            return children.get(0);

      }



   public void removeFirstChild() {

            children.remove(0);

      }



   public int numChildren() {

            return children.size();

      }

}
move.java
由三个步骤解决这个难题。你开始用板跳和结束的空白点,你可以看到下面这段代码。{体C3}计划如何运作?
我用深度优先搜索算法(DFS)创建的游戏。我用的NetBeans IDE 7.0。首先,你可以选择开始在孔的位置。我附上的程序和输出。
第一次当我创建的程序,在程序开始的地方孔是固定的。然后,我改变了程序输入孔手动的地方。结论
我有很多的乐趣,创造这个游戏。我希望这篇文章帮助你,你将有一个很好的时间玩游戏。此外,随时离开你可能有任何意见。创造这个人工智能游戏后,我有清晰的思路回溯算法。历史2011年10月,20:初始versionnbsp;

回答

评论会员:t 时间:2