草庐IT

tic-tac-toe

全部标签

javascript - 使用太多 'if' 语句是不是编程不好?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion我很好奇我是否使用了太多if/elseif语句。我正在使用javascript编写一个井字游戏程序,并确定计算机是否应该阻止我正在使用大约9个if语句的播放器,并且在确定是否有3个连续的语句时我使用大约9个。例如:if(r1c1V===xOrO&&r1c2V===xOrO&&r1c3V===xOrO){is3InARow=true;}elseif(r2c1V===xOrO&&r2c2V==

javascript - 简单的井字棋 AI

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我知道这个问题已经被问了很多,我已经搜索了其他代码,但我所看到的大部分内容似乎都不是完美无缺的(永远不会丢失)并且简单、优雅和高效。而且我无法确定哪种类型的解决方案符合该描述。我见过的解决方案是:(1)使用带有alpha-beta剪枝的minimax。这对我来说似乎很复杂,对于这样一个简单的游戏来说可能是不必要的?是不是太复杂了?如果不是,我是否需要进行大量硬编码,或者我是否误解了算法?(2)使用

android - 将布局定位到井字游戏应用程序时出现问题 - 从屏幕上掉下来

我是android开发新手。上个月我在优达学城参加了初级类(class)。我在正确定位我的布局时遇到了麻烦,因为屏幕上总是有一些东西没有显示,而且在不同的设备上它看起来也不同,尽管我根本没有使用特定的尺寸。对于我的井字游戏,我使用按钮来表示九个区域的十字和圆圈。我已经用这些布局尝试了几乎所有的东西,我需要你的帮助,因为我必须在7月11日之前准备好这个项目。谢谢你。这是完整的代码,因为我认为这个问题无法通过其他方式解决。 最佳答案 如果你想用权重均匀分布布局,那么你的父级必须是LinearLayout,权重不适用于RelativeLa

c# - 使用 C# 的 Tic-Tac-Toe 中的人工智能

我做了一个Tic-Tac-Toe2名玩家的游戏。现在,我想给游戏人工智能。这样游戏就可以在1位玩家和计算机之间玩了。请帮助我如何开始? 最佳答案 TicTacToe与其说是一个人工智能,不如说是一个查找表:对于每个可能的棋盘布局,找到最佳位置。XKCDhassuchalookuptable.基本上每个电路板布局都有一个唯一的ID和设置下一个标记的字段地址。维基百科有thattable另一种格式。表格是这样工作的:X在前,然后是O。X将他的X放入9个单元格之一。当O消失时,现在有9种可能的电路板布局,具体取决于哪个Cell具有X:X|

php - 有没有压缩内容的 tac 版本? (比如 zcat)

我正在编写一个PHP脚本,它需要以相反的行顺序读取日志文件。我目前在做以下事情:tmpfile.log");$rFile=fopen("tmpfile.log","r");while(!feof($rFile)){//logic}unlink("tmpfile.log");?>这很好用,因为它切换了文件中行的顺序,我从临时文件中读取。但是,日志文件会变得很大,我需要保留很长的历史记录,所以我需要gzip文件。我发现了“zcat”,我希望有一个“ztac”可以直接插入我上面的代码中……但我没能找到它。有什么想法最简单/最好的方法是不需要大量的临时文件和一大堆服务器命令吗?

java - TicTacToe minimax 算法在 4x4 游戏中返回意外结果

在我的方法newminimax499中,我有一个利用内存和alphabeta修剪的minimax算法。该方法通常适用于3x3游戏,但是当我玩4x4游戏时,我会得到奇怪的、意想不到的计算机位置选择。他仍然从不输,但他似乎并不是为了赢而比赛。为了说明这里的问题,我们使用2个3x3和4x4游戏的场景。首先是一个3x3游戏的场景,其中玩家是X并迈出第一步:这还不错,事实上,这正是人们希望计算机执行的操作。现在来看一个4x4游戏的场景。同样,O是计算机,X启动:如您所见,计算机只是将Os一个接一个地按系统顺序排列,只有在它有可能获胜时才打破该顺序来阻止X。这是非常防守的打法,不像在3x3比赛中看

java - Tic Tac Toe 的 Minimax 算法中的错误

我目前正在尝试自学Minimax算法,并尝试在井字游戏中用Java实现它。但是我的算法中有一个错误,我无法弄清楚是什么导致了它。下面是完整的源代码(对不起,文字墙!):publicclassTicTacToe{privatestaticbooleangameEnded=false;privatestaticbooleanplayer=true;privatestaticScannerin=newScanner(System.in);privatestaticBoardboard=newBoard();publicstaticvoidmain(String[]args){System.o

java - 如何暂停/恢复 Java 线程

我正在用Java制作井字棋程序,因为我正在学习Java,并且我认为一个简单的项目将是一个很好的起点。到目前为止,这是我的代码:publicclassStart{publicstaticvoidmain(String[]args){GameTicTacToegameTicTacToe=newGameTicTacToe();gameTicTacToe.windowBirth();}}还有,importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassGameTicTacToeimplementsActionLi

java - 使用 minimax 的 tic-tac-toe 可以使用多少个线程?

让我们以5x5井字游戏为例。假设轮到我的AI了。然后,我走25步(基本上每个单元格,当然,如果它是合法的移动),为每个Action创建一个线程(总共(最多)25个线程),对每一步都调用一个minimax函数,然后当所有结果都来自每个线程时,比较得分并选择得分最高的着法。这是我的问题:使用25个线程是否高效?使用25个线程意味着什么?它是否快了25倍(很可能不是)?它取决于什么?当然是在计算机上,但是我如何根据计算机的资源知道可以使用多少线程呢?如果我使用太多线程会怎样(我猜没什么……)?我的想法好吗?谢谢。 最佳答案 对于典型的计算

java - 编译问题?

我目前正在为一项作业编写井字游戏程序。我遇到的问题是当我计算我的玩家('X'玩家或'Y'玩家)时,它似乎将两个玩家都算作相同的。例如,在第三场比赛之后,它看到了三场比赛并将其计为赢家,即使一名球员只完成了两场比赛而另一名球员只完成了一场比赛。publicclassTicTacToeApp{publicstaticvoidmain(String[]args){TicTacToeViewview=newTicTacToeView();TicTacToeModelmodel=newTicTacToeModel();TicTacToeViewControllercontroller=newTi