刚刚发现这个问题恰好通过初始化一个在java中初始化布尔数组的布尔数组来解决我的问题.然而,虽然它给了我可以工作的代码,但提问者并没有尝试我正在运行的代码,但是我实际上想知道为什么它不起作用.这是我尝试的代码:
Boolean[] array = new Boolean[5];
for(Boolean value : array) {
value = false;
}
Run Code Online (Sandbox Code Playgroud)
这是其他问题的功能代码:
Boolean[] array = new Boolean[5];
Arrays.fill(array, Boolean.FALSE);
Run Code Online (Sandbox Code Playgroud)
我只是好奇为什么for循环方法不起作用?
我正在尝试使用alpha-beta修剪为Java中的跳棋游戏实现minimax.我的minimax算法运行得很好.我的代码运行时使用了alpha-beta代码.不幸的是,当我使用标准的极小极大算法玩1000场比赛时,alpha-beta算法总是落后50场左右.
由于alpha-beta修剪不应该降低移动的质量,只需要实现它们所需的时间,因此必定是错误的.但是,我已经拿出笔和纸并绘制了假设的叶节点值,并使用我的算法来预测它是否会计算出正确的最佳移动,并且似乎没有任何逻辑错误.我使用了这个视频中的树:Alpha-Beta Pruning来跟踪我的算法.它在逻辑上应该做出所有相同的选择,因此是一个有效的实现.
我还将print语句放入代码中(它们已被删除以减少混乱),并且正确返回值,并且修剪确实发生.尽管我付出了最大的努力,但我一直无法找到逻辑错误所在.这是我实现这一点的第三次尝试,所有这些尝试都有同样的问题.
我不能在这里发布完整的代码,它太长了,所以我已经包含了与错误相关的方法.我不确定,但我怀疑这个问题可能出现在非递归的move()方法中,虽然我无法在其中找到逻辑错误,所以我只是在其中进行更多的讨论,可能是在制作东西没有押韵或理由,更糟糕而不是更好.
有没有从for循环中的递归调用中恢复多个整数值的技巧?它适用于我的minimax和negamax实现,但alpha-beta修剪似乎产生了一些奇怪的结果.
@Override
public GameState move(GameState state)
{
int alpha = -INFINITY;
int beta = INFINITY;
int bestScore = -Integer.MAX_VALUE;
GameTreeNode gameTreeRoot = new GameTreeNode(state);
GameState bestMove = null;
for(GameTreeNode child: gameTreeRoot.getChildren())
{
if(bestMove == null)
{
bestMove = child.getState();
}
alpha = Math.max(alpha, miniMax(child, plyDepth - 1, alpha, beta));
if(alpha > bestScore)
{
bestMove = child.getState();
bestScore = alpha;
}
}
return bestMove;
}
private int miniMax(GameTreeNode currentNode, int depth, int alpha, …Run Code Online (Sandbox Code Playgroud) java recursion artificial-intelligence minimax alpha-beta-pruning
我试图使用jQuery在段落的末尾添加其他文本.我的想法是产生这样的结构:
从我的答案来看,我会澄清.我需要先创建这个结构.这是我觉得困难的部分,而不是第二个最终结果.那么我该如何动态创建:
<p>old-dynamic-text<span id="add_here"></span></p>
Run Code Online (Sandbox Code Playgroud)
然后在添加新文本后,它将如下所示:
<p>old-dynamic-text<span id="add_here">new-dynamic-text</span></p>
Run Code Online (Sandbox Code Playgroud)
我一直在使用.wrapAll()方法,但我无法达到预期的效果.这是执行此操作的最佳方式(如果是这样的话),还是有另一种方法将新文本附加到现有段落的末尾(需要将其包装在某种类型的标记中,因为我需要以不同的方式设置样式) ?
这是一个家庭作业问题,所以我不是在寻找完整的代码答案.
我被给了一个班级狗
package lab12;
import java.io.Serializable;
public class Dog implements Serializable{
public Dog[] children;
public String name;
public Dog(String name)
{
this.name = name;
}
@Override
public String toString()
{
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
以及包含根狗Spot的数据文件,其子项存储在数组中.我需要编写可以打开数据文件的代码,然后单步执行树数据结构以查看输入名称是否是根(Spot)的后代.
我很自信我可以打开数据文件.我正在努力创建具有数组作为链接的节点的语法.我们的教科书只涵盖二进制树,它们可以链接到左侧或右侧,但不能链接到可变数量的链接.我找到了一个使用List方法的通用示例.
public class Tree<T>
{
private Node<T> root;
public static class Node<T>
{
private T data;
private Node<T> parent;
private List<Node<T>> children;
}
public Tree(T rootData)
{
root = new Node<T>();
root.data = rootData;
root.children = new ArrayList<Node<T>>();
}
}
Run Code Online (Sandbox Code Playgroud)
由于我必须使用数据文件,因此除了将子项存储在Dog []中之外,我无法将Node的结构更改为任何其他内容.我找不到使用基本数组来存储子节点的节点类的示例,我无法弄清楚这样做的语法.在我尝试学习它之前,我认为在没有泛型的情况下看它会有所帮助.
到目前为止,这是我的代码:
package lab12; …Run Code Online (Sandbox Code Playgroud) 我正在整理一个幻灯片程序,用于衡量用户在每张幻灯片上花费的时间.幻灯片演示了几个不同的魔术技巧.每个技巧都会显示两次.在重复之间显示临时图像.在每个技巧之间显示过渡图像.
在第一次重复技巧时,在显示下一个图像之前,点击后,JPanel颜色在屏幕上闪烁.在第二次重复相同的技巧期间不会发生这种情况.图像可能需要很长时间才能加载.
是否有一种简单的方法来预加载图像,以便第一次没有延迟?
NOTE: Original code deleted.
Run Code Online (Sandbox Code Playgroud)
编辑2013年1月10日:此代码现在适用于较慢的计算机.trashgod的第二个附录帮助最多.mouseClick控件结构定期要求SwingWorker类加载40个或更少的当前技巧,同时还将使用过的图像设置为null.我已经将我的代码简化为两个Image []并添加了一个main方法,因此它是独立的.仍然需要运行图像.现在这是非常简单的代码,如果你想用大量图片制作幻灯片,我认为这将是一个很好的起点.
注意:我想我在使用多个Image []时想出了如何正确实现SwingWorker.trashgod和kleopatra这个实现符合你的建议吗?我最终没有使用发布和进程,因为我无法弄清楚如何使用索引数组正常工作,但因为StringWorker没有加载数组中的所有图像(只有40)和代码调用StringWorker每20个图像,应该有一个相当不错的缓冲区.
编辑1/10/2013通过在Mouse类上扩展MouseAdapter来改变MouseListener.还修复了我的paintComponent方法,以包含对super.paintComponent(g)的调用.向我的SwingWorker类ImageWorker添加了发布/处理方法.添加了一个包装类ArrayWrapper,允许传递imageArray [i]及其相应的索引int i,并使用publish进行处理.
package slideshow3;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.util.List;
public class SlideShow3 extends JFrame
{
//screenImage will be replaced with each new slide
private Image screenImage;
private int width;
private int height;
//Create panel for displaying images using paintComponent()
private SlideShow3.PaintPanel mainImagePanel;
//Used for keybinding
private Action escapeAction;
//Image array variables for each trick
private …Run Code Online (Sandbox Code Playgroud) 作为家庭作业的一部分,我试图在浏览器环境中实现一个类似于 Firebug 中可用的 JavaScript 控制台。从我收集到的情况来看,eval()这似乎是最简单的方法。然而,即使是非常基本的用户输入,我的代码也会遇到一些问题。例如:
var number = 5;\nRun Code Online (Sandbox Code Playgroud)\n\n导致语法错误而不仅仅是评估undefined像 Firebug 中那样进行评估。因此,我似乎根本无法在 eval 字符串内声明变量。如果我做一些更简单的事情,例如:
3 + 4 * Math.PI\nRun Code Online (Sandbox Code Playgroud)\n\n它工作正常。我试图找到一个有人使用的例子eval()在包含变量声明的字符串上使用的示例,但我似乎找不到任何人这样做。
在将用户输入编译成新字符串之前,我是否需要使用正则表达式完全解析用户输入eval()?
能把eval()分号理解为换行符吗?我也找不到使用这些的人。
function runMiniFirebug() {\n var userInput = document.getElementById("user-input").value;\n try {\n var userOutput = eval(\'(\' + userInput + \')\');\n document.getElementById("js-output").innerHTML += \'<p class="input">>>>\' + userInput + \'<p>\';\n document.getElementById("js-output").innerHTML += \'<p class="ouput">\' + userOutput + \'<p>\';\n }\n catch(error) {\n document.getElementById("js-output").innerHTML += \'<p class="input">>>>\' + …Run Code Online (Sandbox Code Playgroud) 编辑2013年1月16日:原始问题已被删除.这似乎是mac OSX上JDK 7的一个错误.我已经向Sun(Oracle)提交了一份错误报告.
下面的文件使用awt类GraphicsEnvironment和方法setFullScreenWindow将图像显示为全屏.没有包含图像,因此运行代码时屏幕将显示为灰色.但是,密钥绑定仍然有效.
有两个键绑定.按"ENTER"键应打印"按下Enter键".到stdout.按"ESCAPE"应该将"ESC Key终止的程序"打印到stdout并退出程序.
使用Windows 7 64和JDK Java SE 6和7,这些键绑定按预期工作.
使用Mac OSX 10.7 Lion和JDK Java SE 6,这些键绑定按预期工作.
使用Mac OSX 10.7 Lion和JDK Java SE 7,这些键绑定将停止工作.
回滚到JDK Java SE 6会使它们重新开始工作.
我不知道它是否会影响其他操作系统.
我已经尝试了所有版本的JComponent.WHEN_IN_FOCUS等......并且这些选项都没有解决问题.
下面是SSCCE,只有在使用Mac OSX 10.7和JDK Java SE 7时才会重现错误.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class FullScreen extends JFrame
{
/*
* screenImage is never set in this code. It can be set to any image
* the error will still be present. Images have been …Run Code Online (Sandbox Code Playgroud) 有没有办法以递归方式遍历树并返回一个作用于该递归方法的数组?
所以我最近回答了别人关于这个话题的问题.这个问题可以在这里找到:SO问题.我的解决方案使用了递归范围之外的数组,因此该方法不能(或至少可能不应该)返回数组.但是,有没有办法编写一个遍历树的递归方法,以便返回一个数组?即使编写一个调用递归方法的初始方法也没关系,但我想不出一个好方法.
这是我之前建议的代码:
private List nodeValues = new ArrayList();
public void traversePreRecursive(BinarySearchTreeNode node)
{
if (node != null)
{
nodeValues.add(node.getValue());
traversePreRecursive(node.getLeft());
traversePreRecursive(node.getRight());
}
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,ArrayList它超出了递归范围 - 因此返回它并没有多大意义.有一个更好的方法吗?
我想使用带有原型的javascript向按钮添加一个不显眼的事件处理程序.我在下面写了一个非常简单的HTML示例,其中有两个按钮.第一个按钮在HTML中添加了onclick.第二个按钮的id为"googleButton",应该在我的javascript中附加一个事件处理程序.我尝试了许多不同形式的事件处理程序,并且所有这些形式都抛出了错误.我可以在jQuery中轻松地使用这种东西,也许我对原型语法缺少一些东西?
这是HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Assignment 10 - Part 1</title>
<script src="./js/prototype.js" type="text/javascript"></script>
<script src="./js/scriptaculous/scriptaculous.js?load=effects,controls" type="text/javascript"></script>
<script src="./js/assignment10p1.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<fieldset>
<legend>City Search</legend>
<label for="cityName1">Enter a city name: </label>
<input type="text" id="cityName1">
<input type="button" value="Google City" onclick='googleSearch("cityName1")'>
<input id="googleButton" type="button" value="Google City">
<div id="cityAutoComplete" class="autocomplete"></div>
</fieldset>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是javascript:
var cities = ["Aachen", "Aalborg", "Aarhus", "Abbeville", "Abbot", "Abbotsford",
"Aberdeen", "Abernathy", "Acadia", "Acampo", "Acra", "Adams", "Addison",
"Addy", "Adrian", "Agate", "Agua Caliente", "Aiken", …Run Code Online (Sandbox Code Playgroud) java ×6
arrays ×3
javascript ×2
recursion ×2
append ×1
awt ×1
binary-tree ×1
click ×1
command-line ×1
eval ×1
firebug ×1
image ×1
jquery ×1
key-bindings ×1
macos ×1
minimax ×1
prototypejs ×1
slideshow ×1
swingworker ×1
traversal ×1
wrapall ×1