有可能创建一个函数,检查最好的下一步行动这个连接N游戏吗?

1视图(30天)
输入:
M = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 1, 1, - 1, 0, 0, 0; 2、2、1、1、2, 0, 0, 1, 2, 1、2、1、1、2)
可视化:
0 0 0 0 0 0 0
0 0 0 1 0 0 0
0 2 0 2 0 0 0
0 1 1 1 0 0 0
2 2 1 1 2 0 0
1 2 1 2 1 1 2
有可能创建一个函数,检查最好的下一步行动这个连接N游戏(在本例中N = 4)
连接N时N块线水平,垂直或斜。
这是我使用的函数来检查胜利,这是有帮助的,但我不知道如何使用这个为此自己:
函数胜利= checkVictory (M, N);
胜利= 0;
checkWin = @ (x) conv2 (x,眼睛(N),“相同”)> = N | conv2 (x, flipud(眼(N)),“相同”)> = N | conv2 (x, (N, 1),“相同”)> = N | conv2 (x, (1, N),“相同”)> = N;
teamOne = checkWin (M = = 1);
teamTwo = checkWin (M = = 2);
如果任何(teamOne (:)) = = 1
胜利= 1;
elseif任何(teamTwo (:)) = = 1
胜利= 2;
结束
结束

接受的答案

约翰D 'Errico
约翰D 'Errico 2019年12月16日
编辑:约翰D 'Errico 2019年12月16日
这当然是可能的。你只生成一个树的所有可能的行动,检查是否发生一场胜利。出现强制赢得如果球员2没有由此防止球员最终赢得1(反之亦然)。问题是,说树的举措可能会变得相当笨拙,因为可能有很多行动在每个每个球员。但这是完全可能的,至少在理论上如此。在编程方面的要点是你的技能(我不会为自己做的事情,因为毕竟这是你的作业。)
更智能的方案可能会想出一个评分算法,评估董事会的“善”,玩家1或2。这比国际象棋并没有太大的区别。直到你得到,被迫在短时间内赢得可以预见,只需优化位置的评估。(在每个转折点,你可能会检查迫使赢得下一个。可以说,一个好的评估工具将位置评价。)
上述计划将取决于你的算法有多好。当然,这与MATLAB无关,但完全是发展你的技能在一个好的位置评价算法。
但你问它是可能的。当然是。游戏具有有限长度和一个有限的树的大小。
注意,国际象棋有相同的属性,任何游戏都有有限数量的可能是的时候,永远不能。因此,国际象棋可以从理论上分析强制行是否存在赢得白人或黑人从初始设置。还没有做到这一点,尽管巨大的计算机,可以抛出这个问题指出一个完整的树搜索的难度。所以你需要考虑如果几乎是可能的,而不是理论上如此。再次,高超的编程是巨大的重要性,计算机的大小和速度你会把这个问题。
上述论点指出,最好的国际象棋玩电脑现在似乎是用一个人工智能工具来学习如何玩游戏,从头开始。他们试着移动,看看它的结果在一个胜利,对阵自己。机器学习技术的应用程序现在允许创建一个工具,学习如何玩游戏的问题。这将是完美的游戏你想解决的解决方案。编程的技巧是一个重要的事情,是理解如何建立和实施学习。你的问题,不是我的。:)
2的评论
约翰D 'Errico
约翰D 'Errico 2019年12月16日
编辑:约翰D 'Errico 2019年12月16日
这取决于你有多想要解决这个问题,你想投入多少的解决方案。我建议,一个简单的计划,检查短树所有可能的举动,玩家1和2,寻找迫使获胜将不难做。如果你保持树的深度小,那么你现在可以想出一个简单的计划,评估任何董事会的位置,缺乏强制快速取胜。这应该是可行的。打败一个世界级的connect-4球员吗?可能不会。

登录置评。

更多的答案(0)

类别

找到更多的在数字游戏帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!