我正在为竞赛编写AI测试框架.参与者提交与给定界面匹配的Bot类.然后所有的机器人都玩转弯游戏.在每一个转弯,我想做以下事情:
For every bot B:
start a thread that runs at most N cycles and does B.getNextMove()
wait for all threads to complete
Make all moves (from each bot).
Run Code Online (Sandbox Code Playgroud)
我的困难在于"最多N次循环".我可以按时间限制所有机器人(比如每回合半秒),但这意味着有些人可以获得比其他人更多的处理器周期,并且不允许严格的"你的机器人应该能够做出决定:转向X时间"在比赛中的要求.
如上所述,这是Java.有任何想法吗?我一直在关注并发和锁定,但这并不是正确的方向.此外,有可能不在Parralel运行机器人,然后使用时间进行限制(假设计算机当时没有运行任何其他东西),但这是不可取的,因为它会显着降低我们的速度可能有游戏的结果.
Dim project = new Project(1)
Dim tasks = Task.GetTasks()
Return <?xml version="1.0" encoding="UTF-8"?>
<Project xmlns="http://schemas.microsoft.com/project">
<Name><%= project.name %></Name>
<Tasks>
<%= tasks.Select(Function(t) _
<Task>
<ID><%= tasks.IndexOf(t) + 1 %></ID>
</Task> _
) %>
</Tasks>
</Project>
Run Code Online (Sandbox Code Playgroud)
我试图tasks.IndexOf(t) + 1用一些更简单的东西来取代.这有什么内置功能吗?
Hrmm xml文字在这里似乎没有很好的翻译....
我正在学习WCF,LINQ和其他一些技术,从头开始编写自定义远程控制应用程序,如VNC.我在创建它时考虑到三个主要目标:
现在我正在使用WCF发送一个表示正在发送的窗口的字节数组:
using (var ms = new MemoryStream()) {
window.GetBitmap().Save(ms, ImageFormat.Jpeg);
frame.Snapshot = ms.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
GetBitmap实现:
var wRectangle = GetRectangle();
var image = new Bitmap(wRectangle.Width, wRectangle.Height);
var gfx = Graphics.FromImage(image);
gfx.CopyFromScreen(wRectangle.Left, wRectangle.Top, 0, 0, wRectangle.Size, CopyPixelOperation.SourceCopy);
return image;
Run Code Online (Sandbox Code Playgroud)
它然后通过WCF(TCPBinding,它将始终通过LAN)发送到客户端,并在没有边框的空白窗口形式重建,如下所示:
using (var ms = new MemoryStream(_currentFrame.Snapshot))
{
BackgroundImage = Image.FromStream(ms);
}
Run Code Online (Sandbox Code Playgroud)
我希望这个过程在CPU和内存使用方面尽可能高效,带宽排在第三位.我的目标是让客户端连接到5台服务器,每台服务器有10多个应用程序.
我现有的方法是最好的方法(同时继续使用这些技术)并且我能做些什么来改进它?
我正在研究的想法(但我没有经验):
在后面的代码中,我的代码与此示例非常相似三次.每次交换机切换到发送给它的选项.每次案例中的代码完全相同,除了基于案例的参数.使用开关/盒和方法最好的方法吗?我是否应该考虑使用某种类型的设计模式来避免重复开关/案例结构?
string option = dropDownList.SelectedValue.ToString();
switch (option.ToUpper())
{
case "ALPHA":
// do repeative code method here; only change is a parameter
break;
case "BRAVO":
// do repeative code method here; only change is a parameter
break;
case "CHARLIE":
// do repeative code method here; only change is a parameter
break;
case "DELTA":
// do repeative code method here; only change is a parameter
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud) 我希望Safari的表单自动填充功能可以在我的网络应用程序中处理表单.我们阻止了所有表单的提交事件,而是通过XHR(Ajax)POST将数据发送到服务器.
问题是,Safari在其自动填充(自动填充)"数据库"中创建新条目的默认值要求表单的提交事件一直触发和冒泡.从我的测试中,这是我总结并用于表单GET和POST方法.
Firefox中不存在此问题; 我们所有的表单都保留了为每个字段"提交"的先前值.这是我们在Safari中想要的行为.
在我们的应用程序中,用户将在多个会话中多次填写相同的表单.在某些情况下,浏览器可以根据用户之前提交的值自动完成(在Safari的情况下自动填充)这些字段.
我想知道是否有其他人遇到过Safari这个问题?更好的是,如果他们有一个解决方案(即使特定于Safari)告诉(或强制)Safari将表单字段值保存到其自动填充数据库中,即使表单的提交事件被阻止了?
我在DOM中尝试过preventDefault()更高版本,让提交事件冒泡到表单的父DOM节点; 行为没有区别.这可能只是Safari中的一个bug ...
使用推特显示小部件,需要添加链接到哈希标签.所以我需要一个模式替换,替换以hash/pound符号开头的每个字符串,并以twitter搜索链接结束空格.我非常笨拙w/jquery - 有人能指出我正确的方向 - 谢谢,任何人!
带我的东西:
// FROM:
<ul id="tweets">
<li>Some nutty tweet. #nutty</li>
<li>A fruity tweet here. #fruity</li>
</ul>
// TO:
<ul id="tweets">
<li>Some nutty tweet. <a href="http://twitter.com/search?q=%23nutty">#nutty</a></li>
<li>A fruity tweet here. http://twitter.com/search?q=%23fruity">#fruity</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud) 似乎人们正在为64位平台编译MRI Ruby(1.8.7).我一直在寻找和阅读一段时间而没有真正得到我想要的答案.我想知道的是,如果你们中的任何人实际上在Ruby中使用了超过4GB的内存?如果以这种方式编译,Ruby真的是64位吗?
我在源代码中发现了注释,表明它没有在64位上进行测试.例如,它说"BigDecimal尚未在64位整数系统上编译和测试." 在BigDecimal的评论中.
了解Ruby的其他实现如何以64位进行操作也很有趣.
我在UPDATE中使用子查询:
UPDATE tableA
SET x,y,z = ( (SELECT x, y, z
FROM tableB b
WHERE tableA.id = b.id
AND (tableA.x != b.x
OR tableA.y != b.y
OR tableA.z != b.z))) );
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果子查询没有返回任何行会发生什么?它会用null做更新吗?
其次,有没有更好的方法来写这个.我基本上从tableB更新tableA中的三个字段,但只有当三个字段中的任何一个不同时才会发生更新.
所以我有一个导航模板(/common/_navigation.gsp),它在Grails项目主布局文件(/layouts/main.gsp)中呈现.如何将某些变量/参数/ arg从单个视图文件传递到布局并最终传递到导航模板中?我只是希望当我在页面上时突出显示正确的选项卡.
(我们已经尝试过使用Grails Navigation Plugin.由于我们有不同的标签指向相同的控制器(相同的视图,不同的过滤器),它会崩溃.)
大家好我希望能够从内部打开时关闭fancyBox.
我尝试了以下但无济于事:
function closeFancyBox(html){
var re = /.*Element insert complete!.*/gi;
if( html.search( re ) == 0 ){
$.fancybox.close();
//alert("foo");
}
}
Run Code Online (Sandbox Code Playgroud)
foo将在对话框中打开但不会关闭.任何提示?