我有时会编写程序来玩棋盘游戏.基本策略是标准的alpha-beta修剪或类似的搜索,有时通过终结游戏或开放的常用方法来增强.我主要使用国际象棋变体,所以当需要选择我的评估功能时,我会使用基本的国际象棋评估功能.
但是,现在我正在编写一个程序来玩一个全新的棋盘游戏.我如何选择一个好的甚至是体面的评估函数?
主要的挑战是相同的棋子总是在棋盘上,因此通常的材料功能不会根据位置而改变,并且游戏的播放次数不到一千次左右,所以人类不一定玩得太多还没有给出见解.(PS.我考虑过MoGo方法,但随机游戏不太可能终止.)
游戏细节:游戏在10×10的棋盘上进行,每侧固定6个棋盘.这些作品具有一定的运动规则,并以某种方式相互作用,但没有任何一块被捕获.游戏的目标是在棋盘上的某些特殊方块中放置足够的棋子.计算机程序的目标是提供与当前人类玩家竞争或更好的玩家.
artificial-intelligence machine-learning game-theory evaluation-function alpha-beta-pruning
学习一些关于T-SQL的知识,并认为一个有趣的练习就是用它生成一个Mandelbrot集.
原来已经有人(最近出现了).我会让其他人发布它作为答案,但我很好奇可以做出哪些优化.
或者,您会如何使代码更具可读性?
我将选择最可读(但相当紧凑)的版本作为已接受的答案(太糟糕了,我们还没有代表奖励!)除非有人真的带来了很好的优化.
奖金指向那些教我一些关于T-SQL的答案.
-亚当
截至目前,我正在使用下面的线来打印出点
fprintf( stdout, "%-40s[%d]", tag, data);
Run Code Online (Sandbox Code Playgroud)
我期待输出会像下面这样,
Number of cards..................................[500] Fixed prize amount [in whole dollars]............[10] Is this a high winner prize?.....................[yes]
如何使用fprintf/printf打印短划线或点?
我有一个程序,可以读取和写入非常大的文本文件.但是,由于这些文件的格式(它们是应该是二进制数据的ASCII表示),这些文件实际上非常容易压缩.例如,其中一些文件的大小超过10GB,但gzip的压缩率达到95%.
我无法修改程序,但磁盘空间很宝贵,所以我需要设置一种方法,它可以在透明压缩和解压缩时读取和写入这些文件.
程序只能读写文件,所以据我所知,我需要为输入和输出设置一个命名管道.有些人建议使用压缩文件系统,这似乎也适用.我该如何工作?
技术信息:我在现代Linux上.该程序读取单独的输入和输出文件.它按顺序读取输入文件,但是两次.它按顺序写入输出文件.
是否有任何UI库可以从同一来源构建文本用户界面(ncurses)和图形用户界面(GTK?QT?)?我知道debconf可以和各种前端一起使用,我想构建类似但可编程的东西.
您认为......干净的URL是后端还是前端'纪律'
这里有人经常使用Spec#吗?在我开始使用它之前,我想知道它是否足够稳定和强大.看起来语法正在影响c#4.0,这有望在4.0发布后更容易升级.思考?
我想开始修补鞋。我无法弄清一件事。将更改保存到源代码后,如何重新加载正在运行的Shoes应用程序?我已经找到了打开帮助,控制台和新应用程序的热键。
在我看来,每次进行更改时,开发人员都被迫关闭并重新启动Shoes应用程序似乎很奇怪。对于以网络为荣的开发环境,相应的“ F5键”在哪里?
也许我缺少某些东西或找错了地方。
考虑一个二维网格(平面中通常的网格).出于我的目的,模式或布置是将数字1和2分配给网格点的某个连接子集.例如,以下显示了三个单独的安排:
.......1.....1....
.222...2.....12...
.111...2.....2....
.222...22...12211.
.......1....11.1..
Run Code Online (Sandbox Code Playgroud)
如果小图案可以旋转或反射,使得它的所有数字都小于较大图案中的数字,我说小图案匹配大图案.例如,考虑这种模式:
......
.1212.
....2.
......
Run Code Online (Sandbox Code Playgroud)
它与上面最左边的排列不匹配,因为它无法旋转或反射以适合3x3的方格.它与中间排列相匹配,因为它可以旋转和反射以适合下方.然而,它不匹配最右边的布置,因为它被旋转或反射以适合最右边的布置,小图案中的数字大于大布置.(如果我的任何一个例子都不清楚或者您需要更多信息,请在评论区域提出请求.事先澄清一下:图案无法拉伸,也无法旋转,因此它与网格相对这意味着总共有四个旋转和四个反射,每个都可以被翻译.)
我想知道以下问题:
如何快速测试小图案是否与大型布置相匹配?
假设我有很多小模式.我能否以某种方式对它们进行预处理,以便快速判断它们中是否至少有一个符合排列?
我认为如果一个解决方案解决了更普遍的问题(比如任意数字 - 不仅仅是1和2 - 或允许断开连接的形状),它会很酷,但我真的只关心上面的情况.谢谢.
当指定了某些选项并给出了合适的条件时,GCC可以自动向量化循环.是否有广泛可用的其他编译器可以做同样的事情?