当前位置: 首页 > 知识库问答 >
问题:

tic-tac-toe游戏树

危砚
2023-03-14

首先,我是java的初学者,我正在尝试模拟TicTacToe游戏。我想使用游戏树为所有状态创建一个可能的树。树中的每个节点都将代表状态并使用此树来决定下一步要做的事情。我计划按如下方式进行,

>

  • 接口类包括表示单个移动所需的信息。
  • 抽象/接口类包括以下方法:

    a、 返回一个新的状态对象,该对象表示应用该移动后游戏的状态。

    B.如果当前状态代表其中一名玩家的胜利,则此游戏的获胜者ID。

    c、 返回当前玩家和下一个玩家ID。

    在一个类中包含方法,

    A.游戏树中此节点表示的游戏状态

    b.给定一个移动,向该节点添加一个子节点。

    C。给定一个移动,返回适当的子节点。

    在另一个类中,包括,

    a、 构造一棵具有初始状态的树。

    b、 返回游戏的当前状态

    c、 给定一个移动,更新树,使树的根保持游戏的新状态。

    d、 为该树生成给定深度的子节点。

    我知道树的概念(二进制、avl或红黑色),但我有点困惑从哪里开始以及如何继续。关于这个上下文的任何建议都会非常有帮助。

    谢啦

    辛克斯

  • 共有1个答案

    甘骞尧
    2023-03-14

    对于3x3的网格来说,树木是多余的,只需使用一个2D玩家ID数组来模拟场景即可。要检查是否获胜,请在每行(三行、三列和两条对角线)的每个单元格上循环。如果这些行中的所有单元格都属于同一玩家,则该玩家获胜。

    为了简单起见,这些线可以是坐标列表,即

    [[[0, 0], [0, 1], [0, 2]],
    ...
    [[0, 0], [1, 1], [2, 2]],
    ...
    

    FWTW,我正在用Javascript/ThreeJS为一个学校项目制作一个3D TictaToe游戏,这个方法在4x4网格上运行良好。

     类似资料:
    • 我正在做一个井字游戏。我添加了带有ActionListeners的9个JButton。每个按钮都会正确监听操作事件。最后,我正在研究游戏的逻辑部分,但我被困在了如何进行这项工作上。 如果您查看我的TicTacToeButton类,我决定为扩展JButton的TicTacToeButton对象提供两个实例变量:一个表示按钮编号的整数变量(因此我知道按下了哪个按钮#。数字零是第一个数字)和一个字符变量

    • 我正在做一个井字游戏项目,我正在使用9个按钮和图像(Circle.jpg,Cross.jpg)。首先,我想向你们澄清一件事,所以首先我用字母(“X”),(“O”)制作了这个游戏,现在我用这个游戏的图像,也是电脑对玩家的游戏运行后,当我点击按钮显示我在那个按钮上交叉,没错,电脑会自动在另一个按钮上画圆圈! 问题是,当我点击按钮时,它会显示一个十字,这是正确的。但电脑不会用圆圈挡住我的行。 }

    • 我该怎么做? 下面是我的代码:

    • 对角线从右到左 在这里,支票中奖者代码结束。

    • 我一直在更新我在网上找到的一个有点过时的tic-tac-toe代码(好像它现在真的可以工作了:P)。我的代码几乎完成了,但我一直有一个相同的问题。tic tac趾板内的3x3按钮工作完美,除了一件事,它们被点击后的颜色始终是背景,我尝试过纠正这一点,但它所做的只是使按钮完全不改变颜色。这两种颜色是红色和绿色,我希望这样,当每个玩家点击一个按钮,它会改变他们的颜色。 主要游戏代码: